如何获取多个匹配结果,显示按两列排序的结果(然后转置)?

How can I fetch multiple matching results, show the result sorted by two columns (and then transpose)?

我希望能够在列表中添加 urls,然后有一个公式可以获取与 url 匹配的所有结果并按 1) 位置 2) 数量排序.

我有一个半可行的解决方案,但当我尝试将其限制为三个结果时,排序已关闭。

https://docs.google.com/spreadsheets/d/1dSXTdqFKUjQokv8cbzDLnfkGughp5m3yFLciLjCmqFo/edit?usp=sharing

详细:

我有一个 sheet 有很多原始数据。这是一个 url 的列表,每个 url 都有包含

的列

在另一个 sheet 中,我希望能够添加一个 url 并有一个公式 returns 与该特定 [=47] 相关的所有主题的列表=].由于每个 url 可以有多个主题,我希望能够按 1) 位置和如果有平局 2) 按体积对结果进行排序。

我计划在我的手动列表中添加多个 url,因此我需要使用转置以便水平显示。

我已经想出了一个(某种)可行的解决方案,但我怀疑它不是最优的。

=UNIQUE(SORT(INDEX(SORTN(FILTER( 'Raw Data'!B:D, 'Raw Data'!A:A=B17),50,3,3,FALSE),,0),2,true))

我遇到的主要问题是,当我尝试将列表限制为只显示前三名时,排序是错误的。

=UNIQUE(SORT(INDEX(SORTN(FILTER( 'Raw Data'!B:D, 'Raw Data'!A:A=H17),3,2,3,FALSE),,0),2,true))

我仍在学习如何使用 Google Sheets 公式。感谢您的帮助!

在我输入的重复标签中

=SORTN(FILTER( 'Raw Data'!B:D, 'Raw Data'!A:A=H17), 3, 2, 2, 1, 3, 0)

并用于转置

=ARRAY_CONSTRAIN(TRANSPOSE(SORTN(FILTER( 'Raw Data'!B:D, 'Raw Data'!A:A=H17),3,2,2,1, 3, 0)), 1, 3)

或者,您可以使用 query()

=query( 'Raw Data'!A:D, "Select B, C, D where A = '"&H17&"' order by C asc, D desc limit 3")

=transpose(query( 'Raw Data'!A:D, "Select B where A = '"&H17&"' order by C asc, D desc limit 3"))

看看是否有效?