【问题标题】:Replace text in a Google Sheets Query Formula替换 Google 表格查询公式中的文本
【发布时间】:2021-11-30 21:59:02
【问题描述】:

我有一个查询公式 示例:Query(A:AF, "Select A, B")

其中一个列值根据季度值返回 Q1、Q2、Q3 或 Q4。 我希望只提取 1、2、3 或 4 的值。

有没有办法单独在“Select A, B”语句中做到这一点?

我无法更改 DataSource (A:AF) 部分,因为它是从具有多个数据范围匹配的 AppScript 运行的。

【问题讨论】:

  • 如果您只需要前两列的数据作为返回值,为什么还要查询范围A:AF?我感觉您的示例与您的实际 QUERY 公式并不接近。在这种情况下,如果您共享 full 公式会有所帮助,以便这里的志愿者贡献者拥有完整的上下文。 (如果真的像两列那么简单,有一个简单的解决方案;但如果您真的想要返回 15 列,则解决方案将发生巨大变化。)还请包括每个返回列所涉及的数据类型(即数字、字符串, 布尔值)。
  • 嘿@ErikTyler!很抱歉这个问题不够清楚。我不想分解列数据类型或解释数据范围。我的问题是有没有办法将“Quarter”列中的值从“Q1”、“Q2”、“Q3”、“Q4”转换为 1、2、3、4 这是查询 =QUERY( '所有数据'!A:AF,"SELECT A, M, SUM(S), SUM(T), SUM(T)/SUM(S) WHERE A is NOT NULL GROUP BY A, M,-1) A - > (STRING) UserName M -> (STRING) Quarter 再次提及它以帮助理解,我希望当前具有“Q1”、“Q2”、“Q3”、“Q4”值的 M 表示为 1、2 , 3, 4
  • 您似乎仍在强调,即使上面的公式也是一个示例,而不是实际公式。请澄清。如果您问是否可以使用 QUERY“Select”子句来实现您的目标,不,您不能。但是有一些方法可以预处理馈送到 QUERY 的数据以完成此操作。我只需要知道确切的公式。
  • =ARRAYFORMULA(QUERY({'Q3''16 数据'!A4:O,N('Q3''16 数据'!P4:AF)},"SELECT Col"&MATCH("季度",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("年份",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("Adv计划",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("频道",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("子频道",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("团队",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH ("Pod",'Q3''16 Data'!A3:AF3,0)&", SUM(Col"&MATCH("Rev A Quota $",'Q3''16 Data'!A3:AF3,0)& "), SUM(Col"&MATCH("Rev A Attainment $",'Q3''16 Data'!A3:AF3,0)&"), SUM(Col"&MATCH("Rev B Quota $",'Q3' '16 数据'!A3:AF3,0)&"),
  • SUM(Col"&MATCH("Rev B Attainment $",'Q3''16 Data'!A3:AF3,0)&") WHERE Col"&MATCH("Quarter",'Q3' '16 Data'!A3:AF3,0)&" IS NOT NULL GROUP BY Col"&MATCH("Quarter",'Q3''16 Data'!A3:AF3,0)&", Col"&MATCH("Year" ,'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("Adv Plan",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("频道",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("子通道",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH( "团队",'Q3''16 数据'!A3:AF3,0)&", Col"&MATCH("Pod",'Q3''16 数据'!A3:AF3,0)&"

标签: google-apps-script google-sheets google-sheets-formula


【解决方案1】:

实际上并没有办法在查询中执行此操作。格式化选项和数据操作功能主要针对numbers and dates

但是,如果有任何类型的日期列对应于您的 Q1-Q4 值,您可以使用 quarter() 标量函数查询该列,例如:

SELECT A, quarter(B)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多