Google Sheets中QUERY透视结果如何动态按最后一列排序?
动态按最后一列排序的两种可行方案
方案1:嵌套QUERY结合LET函数优化
用LET函数先存储透视结果(避免重复计算提升效率),再动态获取最后一列编号拼接排序语句:
=LET(pivot_result, QUERY('GA4 - Product Data'!A:N,"SELECT D, SUM(H) GROUP BY D PIVOT N",1), QUERY(pivot_result,"SELECT * ORDER BY Col"&COLUMNS(pivot_result)&" DESC",1))
LET(pivot_result, ...):将透视查询的结果赋值给变量pivot_result,仅计算一次COLUMNS(pivot_result):自动获取透视结果的总列数,适配每日新增的列- 拼接后的排序语句会自动指向最后一列,实现动态排序
方案2:用SORT函数替代外层QUERY
如果不需要额外的QUERY筛选逻辑,直接用SORT函数更简洁:
=LET(pivot_result, QUERY('GA4 - Product Data'!A:N,"SELECT D, SUM(H) GROUP BY D PIVOT N",1), SORT(pivot_result, COLUMNS(pivot_result), FALSE, TRUE))
SORT参数说明:第三个参数FALSE表示降序排序,第四个参数TRUE表示识别第一行为表头- 同样通过
COLUMNS(pivot_result)动态定位最后一列的位置
内容的提问来源于stack exchange,提问作者Mark Pitchford
相关产品推荐
相关产品推荐

