【问题标题】:Google Sheets query to extract the top three instances according to criteria谷歌表格查询根据条件提取前三个实例
【发布时间】:2018-08-07 05:30:24
【问题描述】:

我有一张包含两张纸的 Google 电子表格。 在“来源”表中,我有一系列国家、城市和地标——它们分别位于 A、B 和 C 列中。

在“Sheet for Query”表中,有两列: (A) Country,其中包含唯一国家名称列表; (B) Landmark 排名前 3 的城市。在 B 列中,我想要一个查询,它为每个国家/地区提供按地标数量排名前三的城市,即查询只需要计算每个国家/地区每个城市出现并返回的实例数,对于每个国家,出现次数最多的三个城市的名字

这是我为说明我的意思而创建的示例表:https://docs.google.com/spreadsheets/d/1IPwtAHjwjV1A03o9URws-AtDKw3h9QS9UTT0P1PeVN0/edit?usp=sharing

谢谢!

【问题讨论】:

  • 对不起,你是对的。已经不是了。

标签: google-sheets google-query-language


【解决方案1】:

我对此进行了一些思考,并且“仅”计算实例数量并返回每个国家/地区的前 3 名是非常困难的。

通过这样的查询,分组很简单

=query(A:C," select A,B,count(C) where A<>'' group by A,B  order by A,count(C) desc label A 'Country',B 'City', Count(C) 'Landmarks'",1)

但我不知道如何在不经过 2 个进一步步骤的情况下获得每个组的前 3 名

(1) 对每组的结果进行编号(有多种方法,但这里有一种)

=(E1=E2)*D1+1

分组后的国家名称在E列中。

(2) 过滤 D 列中小于 4 的数字的结果

=filter(E:G,D:D<4)

【讨论】:

  • 非常感谢您的帮助!
【解决方案2】:

您没有指定符合top 的条件(因此假设这些是第一个列出的 - 表格较高),并且您没有说明没有数字的地标的数量在您的工作表中,但也许:

=textjoin(", ",,query(Source!A:C,"select B where A='"&A2&"' limit 3"))

sheet for Query 的 B2 中,复制下来以适合。

【讨论】:

  • 感谢您的帮助。是的,我已将品牌所有者更改为城市。我所说的前 3 名是指地标数量最多的 3 个城市。
  • 当有不止一个城市具有相同数量的地标时,我会说字母顺序。谢谢
猜你喜欢
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多