如何在Google Sheets中按指定季度与销售列筛选数据?
在Google Sheets中按指定季度和列筛选数据的方法
步骤1:设置参数输入单元格
先在表格空白区域指定两个单元格用来输入筛选条件:
- 比如用
F1单元格输入要筛选的季度(例如2) - 用
F2单元格输入要筛选的列名(例如"B Sales")
步骤2:使用数组公式生成目标结果
假设你的原始数据在A1:D9(表头+8行数据),在空白单元格(比如G1)输入以下公式,即可生成和示例一致的输出格式:
=LET( 原始数据,A1:D9, 目标季度,F1, 目标列,F2, 筛选行,FILTER(原始数据,INDEX(原始数据,,2)=目标季度), 列位置,MATCH(目标列,INDEX(原始数据,1,0),0), 结果数据,INDEX(筛选行,,列位置), HSTACK( IF(SEQUENCE(ROWS(结果数据))=1,目标季度,""), IF(SEQUENCE(ROWS(结果数据))=1,目标列,""), 结果数据 ) )
公式说明
LET:定义变量简化公式逻辑,方便后续修改筛选行:从原始数据中过滤出季度匹配的所有行列位置:找到目标列在原始数据表头中的位置结果数据:提取筛选行中目标列的数值HSTACK:横向拼接三部分内容,其中季度和列名仅在第一行显示,后续行留空,完全匹配你想要的输出格式
替代方案:使用QUERY函数
如果你习惯用QUERY函数,也可以用以下公式(同样基于F1和F2作为参数单元格):
=LET( 目标季度,F1, 目标列,F2, 查询语句,"SELECT B, '"&目标列&"', `"&目标列&"` WHERE B = "&目标季度&" LABEL B 'Quarter', '"&目标列&"' 'Column', `"&目标列&"` 'Result'", QUERY(A1:D9, 查询语句, 1) )
注意:这个方案会每行都显示季度值,如果你需要仅第一行显示季度和列名,优先选择第一个LET数组公式。
内容的提问来源于stack exchange,提问作者mark
相关产品推荐
相关产品推荐

