历史版本2 :贡献日历图 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 问题描述
如何实现类似GitHub的打码贡献图呢,如下:
1.3 实现思路
通过帆软公式结合单元格扩展属性来实现。
2. 示例编辑
2.1 模板设计
1)准备一份数据,含有日期和贡献度两列数据。如下:
2)单元格设计如下:
单元格 | 公式 | 扩展方向 | 公式说明 |
合并A2,A3 | array(1,2,3,4,5,6,0) | 纵向 | 创建一个数组,数组内容为周一至周日对应的数字。 |
B1 | maparray(range(12,0,-1),left(monthdelta(today(),-item),7)) | 横向 | 生成去年同期至今的所有月份 |
B2 | greparray(range(dateinweek(yeardelta(today(),-1),1),today()),weekday(item)=A2&&left(dateinweek(item,-1),7)=B1) | 横向 | 先生成去年同期至今的日期,再根据A2的周几和B1的月份筛选出符合的数据。 |
3)B3 单元格放入内置数据集的 num 字段,设置过滤属性:列名 rq 等于单元格B2
3)为单元格添加形态公式
单元格 | 形态公式 | 说明 |
A2 | "周"+IF($$$=0,"日",numto($$$)) | 将单元格的值转化为周一至周日 |
B1 | month($$$+"-01")+"月" | 将单元格的值以 "x月" 的形式显示 |
B3 | "" | 显示空值 |
在添加条件属性2,设置如下,公式 INARRAY(B2,range(yeardelta(today(),-1),today()))>0 成立时,设置边框。
5)B3 单元格设置内容提示,内容为 =format(B2,"yyyy-MM-dd")+"贡献:"+nvl($$$,0)
6)隐藏第二行单元格。
2.2 效果预览
PC 端
移动端