如何将Ready状态数据制作为按日期间隔分布的柱状图?
制作带合理日期间隔的ETH柱状图(Google Sheets)
问题背景
需要基于包含以下字段的数据集制作柱状图:
- ISO 8601格式日期
- 状态(仅使用ready状态数据)
- 以太坊Wei单位数值
要求X轴按日期合理间隔分布,Y轴为转换后的ETH数值。
已完成的数据处理步骤:
- 将ready状态的ISO 8601日期转换为表格兼容格式(AA列),公式:
=ARRAYFORMULA(DATEVALUE(REGEXREPLACE(FILTER(A:A, EQ(B:B, "ready")), "^(\d+).?(\d+).?(\d+)T.*$", "$2/$3/$1"))) - 将Wei转换为ETH单位(AB列),公式:
=ARRAYFORMULA(DIVIDE(FILTER(C:C, EQ(B:B, "ready")), POWER(10, 18)))
遇到的问题:
- Timeline图表能尊重日期间隔,但仅支持折线图
- 标准Column图表是柱状,但X轴日期无合理间隔(会挤在一起或忽略空日期的间隔)
实现目标柱状图的方法
可以通过调整标准Column图表的X轴设置实现,步骤如下:
- 选中AA列(转换后的日期)和AB列(ETH数值)的数据区域,插入Column图表
- 在图表编辑器中切换到「自定义」标签页
- 找到「水平轴」设置项:
- 将「类型」改为「日期」
- 调整「间隔」选项:根据数据密度选择「自动」「天」「周」或「月」,也可手动设置间隔数值
- 开启「显示刻度线」和「显示标签」,确保日期按实际间隔展示
- 确认设置后,图表会自动按日期的实际间隔显示柱状条,不会忽略空日期的间隔
更优方案建议
1. 优化日期转换公式
原日期转换公式可简化,利用Google Sheets内置的TO_DATE函数直接转换ISO 8601日期,无需正则替换:=ARRAYFORMULA(TO_DATE(FILTER(A:A, B:B="ready")))
该公式更简洁,且能准确识别标准ISO 8601格式(包括带时区的情况)
2. 预处理日期分组(可选)
如果数据日期分布零散,希望按固定周期(如每日、每周)聚合数值,可使用QUERY函数一次性完成筛选、转换和分组:=QUERY(A:C, "SELECT TO_DATE(A), SUM(C)/1000000000000000000 WHERE B='ready' GROUP BY TO_DATE(A) ORDER BY TO_DATE(A)", 1)
该公式会直接输出按日期分组的ETH总和,后续制作图表时X轴间隔会更规整
内容的提问来源于stack exchange,提问作者cilphex
相关产品推荐
相关产品推荐

