Google Sheets 查询以根据条件提取前三个实例
Google Sheets query to extract the top three instances according to criteria
我有一个带有两个 sheet 的 Google Spreadsheet。
在 sheet "Source" 中,我有一系列国家、城市和地标 - 这些分别位于 A、B 和 C 列中。
在sheet"Sheet for Query"中,有两列:(A)Country,有一个唯一的国家名称列表; (B) Landmark 排名前 3 的城市。在 B 列中,我想有一个查询,为每个国家/地区提供地标数量排名前三的城市,即查询只需要计算每个国家/地区每个城市出现的实例数 return,对于每个国家,出现次数最多的三个城市的名字
这是我创建的示例 sheet 以证明我的意思:https://docs.google.com/spreadsheets/d/1IPwtAHjwjV1A03o9URws-AtDKw3h9QS9UTT0P1PeVN0/edit?usp=sharing。
谢谢!
您没有指定符合 top
条件的内容(因此假设这些是第一个列出的 - 更高的 sheet),并且您没有说明 的数量landmark 其中 sheet 中没有数字,但也许:
=textjoin(", ",,query(Source!A:C,"select B where A='"&A2&"' limit 3"))
在 sheet for Query
的 B2 中,向下复制以适应。
我对此进行了一些思考,'just' 计算了实例的数量,return 每个国家/地区的前 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)
我有一个带有两个 sheet 的 Google Spreadsheet。 在 sheet "Source" 中,我有一系列国家、城市和地标 - 这些分别位于 A、B 和 C 列中。
在sheet"Sheet for Query"中,有两列:(A)Country,有一个唯一的国家名称列表; (B) Landmark 排名前 3 的城市。在 B 列中,我想有一个查询,为每个国家/地区提供地标数量排名前三的城市,即查询只需要计算每个国家/地区每个城市出现的实例数 return,对于每个国家,出现次数最多的三个城市的名字
这是我创建的示例 sheet 以证明我的意思:https://docs.google.com/spreadsheets/d/1IPwtAHjwjV1A03o9URws-AtDKw3h9QS9UTT0P1PeVN0/edit?usp=sharing。
谢谢!
您没有指定符合 top
条件的内容(因此假设这些是第一个列出的 - 更高的 sheet),并且您没有说明 的数量landmark 其中 sheet 中没有数字,但也许:
=textjoin(", ",,query(Source!A:C,"select B where A='"&A2&"' limit 3"))
在 sheet for Query
的 B2 中,向下复制以适应。
我对此进行了一些思考,'just' 计算了实例的数量,return 每个国家/地区的前 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)