【问题标题】:How can I fetch multiple matching results, show the result sorted by two columns (and then transpose)?如何获取多个匹配结果,显示按两列排序的结果(然后转置)?
【发布时间】:2022-01-13 13:23:12
【问题描述】:

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

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

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

详细说明:

我有一张包含大量原始数据的表格。这是一个 url 列表,每个 url 都有列

  • 主题
  • 位置
  • 音量
  • 其他数据

在另一张表中,我希望能够添加一个 url 并有一个公式,该公式返回与该特定 url 相关的所有主题的列表。由于每个 url 可以有多个主题,我希望能够按 1) 位置和是否有平局 2) 按音量对结果进行排序。

我打算在我的手动列表中添加多个 url,所以我需要使用 transpose 使其水平显示。

我已经设法为此提出了一个(某种)可行的解决方案,但我怀疑它不是最佳的。

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

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

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

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

【问题讨论】:

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    在我输入的重复标签中

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

    转置

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

    或者,您可以使用 query()

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

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

    看看有没有用?

    【讨论】:

    • 感谢@JPV!这就像一个魅力!而且干净多了!
    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多