Google Sheets动态构建数组:跨表数据汇总及日期筛选技术问询
Google Sheets 动态汇总表解决方案
1. 用ARRAYFORMULA扩展至多列计算
ARRAYFORMULA支持多列输出,只需将多列的计算逻辑用大括号{}包裹,列与列之间用逗号分隔,即可一次性生成动态多列结果,自动适配源数据行数变化。
示例(假设源数据在源数据!A:C,需计算3个汇总列):
=ARRAYFORMULA(IF(源数据!A2:A="",,{ 源数据!A2:A + 源数据!B2:B, // 第一列汇总:A+B 源数据!A2:A * 源数据!C2:C, // 第二列汇总:A*C 源数据!B2:B / 源数据!C2:C // 第三列汇总:B/C }))
IF(源数据!A2:A="",, ...)用于跳过源数据中空行的计算- 大括号内的每一个表达式对应目标表的一列,自动向下填充所有行
2. 新增timestamp列后按日期范围生成目标表
推荐使用QUERY函数,它能同时完成日期筛选和多列汇总计算,公式更简洁且易维护,完全无需复制粘贴。
固定日期范围示例
假设timestamp列在源数据!D:D,筛选2024年1月的数据并生成汇总:
=QUERY(源数据!A:D, "SELECT A,B,C,A+B,A*C,B/C WHERE D >= date '2024-01-01' AND D <= date '2024-01-31' AND A != ''", 1)
- 最后一个参数
1表示源数据第一行为表头,会保留到结果中 A != ''用于过滤源数据中无内容的行
灵活日期范围(用单元格输入日期)
若将开始日期放在E1、结束日期放在E2,可动态调整筛选范围:
=QUERY(源数据!A:D, "SELECT A,B,C,A+B,A*C,B/C WHERE D >= date '"&TEXT(E1,"yyyy-mm-dd")&"' AND D <= date '"&TEXT(E2,"yyyy-mm-dd")&"' AND A != ''", 1)
内容的提问来源于stack exchange,提问作者aName
相关产品推荐
相关产品推荐

