Google表格查询根据条件提取前三个实例

时间:2018-02-27 14:19:58

标签: google-sheets google-query-language

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

在工作表“查询表”中,有两列:(A)国家/地区,其中包含唯一国家/地区名称列表; (B)Landmark排名前三的城市。在B栏中,我希望有一个查询,它为每个国家/地区提供按地标数量划分的前三个城市,即查询只需要计算每个国家/地区中每个城市出现和返回的实例数量,每个国家,出现次数最多的三个城市的名称

这是我创建的示例表,用于演示我的意思:https://docs.google.com/spreadsheets/d/1IPwtAHjwjV1A03o9URws-AtDKw3h9QS9UTT0P1PeVN0/edit?usp=sharing

谢谢!

2 个答案:

答案 0 :(得分:1)

您没有指定符合top的条件(因此假设这些是第一个列出的 - 在表单的上方),并且您没有说明具有里程碑意义的的数量你的表中没有数字,但也许:

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

sheet for Query的B2中,复制到适合。

答案 1 :(得分: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个步骤的情况下获得每组的前三名

(1)对每组中的结果进行编号(各种方式,但这里是一个)

=(E1=E2)*D1+1

分组后的国家/地区名称位于E列。

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

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

enter image description here