【问题标题】:Trying to include additional columns in QUERY result on GoogleSheets尝试在 Google 表格的 QUERY 结果中包含其他列
【发布时间】:2016-04-15 22:03:01
【问题描述】:

我正在使用 Google 表格并使用以下公式没有任何问题:

=QUERY(Sheet!A:D,"select A, max(B) where not B is null group by A label A 'Client', max(B) 'Most Recent'")

显然,这是返回引用数据的 A 和 B 列 但是,我还想从 C 列返回相应的单元格。

样本数据:https://docs.google.com/spreadsheets/d/1CJKiDNPUWMMUbLLb-UDA6iRA2PBnlMHDsEB9vELe0Rk/edit?usp=sharing

使用此示例,我希望看到填充有“Pizza”(即来自 C3)的单元格 G2,等等。

我是否使用了正确的公式?我需要改变什么?

【问题讨论】:

标签: google-sheets google-query-language


【解决方案1】:

您尝试做的不是很像 SQL,因为 max(B) 不指向任何特定行:它只是所选行中 B 的最大值。这个值可以通过几行来获得,使得 C、D 的选择不明确。我不认为单个查询可以做到这一点。

这是一个带有unique 和几个query 命令的实现。

在 E2 中,输入 =unique(A:A) 以获取唯一客户端名称列表。 在 F2 中,输入

=query(A:D, "select B,C,D where A ='"&E2&"' order by B desc limit 1")

并向下拖动此公式。这将选择 A 值与 E2 匹配的所有行,并选择具有最大 B 值的行。

您不希望在这些查询的输出中包含标题行,因此请添加 label B '', C '', D '' 或在查询范围内不包含标题行。


按 C、D 分组的版本

要在单个查询中同时选择 C ​​和 D,请展开 select 子句

select A, max(B), C, D 

这将需要在group by 子句中包含这些内容:

group by A, C, D

公式为

=QUERY(A:D,"select A, max(B), C, D where not B is null group by A, C, D label A 'Client', max(B) 'Most Recent'")

这确实意味着唯一要组合在一起的行将是那些不仅 A 相等,而且 C 和 D 相等的行。

【讨论】:

  • 这几乎奏效了。问题是结果然后包括我需要将它们过滤到仅在 A 列中重复值中的 max(B) 的所有结果。这有意义吗?
  • 重复A时,C和D中的值是否也重复?如果是,它们将按此查询分组。如果不是,您希望从 C 和 D 中选择什么?
  • 使用我原始帖子中的公式,查询 A 中的重复值以获得 max(B) 并传递到输出。我想要来自 A 的每个重复项中与具有 max(B) 的行相对应的 C 和 D 的数据,仍然过滤掉不是 max(B) 的重复 A 行
  • 这仍然没有很好的定义。如果有两行达到 max(B),并且它们有不同的 C 条目怎么办?
  • 我在上面的原始帖子中添加了一个链接到带有示例数据的电子表格。我想要的是一个公式,例如,用文本“Pizza”填充单元格 G2
【解决方案2】:

一种可能的单一公式解决方案:

=ArrayFormula(IFERROR(VLOOKUP(UNIQUE(A2:A),SORT(A2:C,2,0),{1,2,3},0)))

【讨论】:

    【解决方案3】:

    这是我所做的,最终奏效了。

    在 E1 中,输入 =unique(A:A) 以获取唯一客户端名称列表。在 F2 中,输入

    =query(A$2:D101, "select B,C,D where A ='"&F2&"' order by B desc limit 1")
    

    并向下拖动此公式。这会选择 A 值与 E2 匹配的所有行,并选择 B 值最大的行。

    您不想在这些查询的输出中包含标题行,因此只需在标题行中添加所需的文本。

    【讨论】:

      猜你喜欢
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多