如何在执行 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,因为这将允许我执行进一步的数据透视或按月分组类型函数

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

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

您需要使用标签构造:

"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'"))))

最新更新