首页 > 解决方案 > 执行 Google 表格查询时如何保持原始标题名称

问题描述

嗨,我有这个工作查询,它​​遍历任意范围的数据并产生我需要的结果:

=arrayformula(QUERY(Crew!A:DY,"SELECT E,A," & join(",", substitute("Count(`1`)", "1",substitute(address(1, column(Crew!F:DY), 4), "1", ""))) & "GROUP BY E,A", 1))

不幸的是,这会产生这样标记的列:

count 18/12/2017 count 25/12/2017 count 01/01/2018

我需要强制显示原始列名,如果可能,还需要显示格式,例如 18/12/2017,因为这将允许我执行进一步的透视或按月类型功能分组

我已经尝试了在查询末尾添加标签的不同方法,在不使用数组公式的情况下将查询简化为数据测试,并通过 queryLanguage Docs 进行搜索,但所有引用似乎都与应用不同的文本字符串有关,而不是比保留列标题“原始”

我怀疑主要问题是我缺乏经验,我不知道要搜索的正确术语?我如何实现这一目标?干杯。

标签: google-sheets

解决方案


您需要使用标签构造:

"select ... where ... group by ... label ..."

参考:

https://developers.google.com/chart/interactive/docs/querylanguage#label

您可能会得到带有公式的标签文本:

="label "&ArrayFormula(join(", ",substitute("count(`1`) ", "1",substitute(address(1, column(F1:G1), 4), "1", ""))&text(F1:G1," 'dd/mm/yyy'")))

更改F1:G1为您的范围。

公式的较短版本Regex

="label "&ArrayFormula(join(", ",REGEXREPLACE(ADDRESS(1,COLUMN(F1:G1),4),"(.*)\d+$","count(`$1`) "&TEXT(F1:G1,"'dd/mm/yyy'"))))

推荐阅读