【问题标题】:How to maintain the original header name when performing Google Sheets Query执行 Google Sheets Query 时如何保持原始标题名称
【发布时间】:2018-11-13 07:58:12
【问题描述】:

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

=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

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

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

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

【问题讨论】:

  • 啊,我实际上做的是用我想要的功能填充不同的单元格,例如单元格 F1 具有内容计数 (1),引用该单元格并更改值 1。反引号确保 BY 和 OR 列不会中断查询。很抱歉,如果这造成了混乱。

标签: google-sheets


【解决方案1】:

你需要使用标签构造:

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

【讨论】:

  • 这很有效,我花了一天左右的时间在我的脚本中实现它,但绝对有效,干杯。
  • 对不起 Max,这对我完全有用,但找不到如何接受答案。刚刚点击了勾号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
相关资源
最近更新 更多