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

问题描述 投票:0回答:2

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

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

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

谢谢!

google-sheets google-query-language
2个回答
1
投票

我已经给出了一些想法并且“只是”计算实例的数量并且返回每个国家的前三名是非常困难的。

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

=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


1
投票

你没有指定什么资格作为top(所以假设这些是第一个列出的 - 在表格的上方),并且你没有说明你的表格中没有数字的地标数量,但可能:

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

sheet for Query的B2中,复制到西装。

© www.soinside.com 2019 - 2024. All rights reserved.