使用单个公式列出唯一的项目,按降序对数字进行计数和排序,然后对具有相同计数的项目按字母顺序排序

Ver*_*ous 1 spreadsheet google-sheets google-sheets-formula

正如标题所说,我需要使用一个公式来列出一列中原始列表中的唯一项目,对它们进行计数并按降序对它们进行数字排序,然后按字母顺序对具有相同计数的项目进行排序,最后还排除一些诸如“ITEMS”之类的单词。

这应该有助于理解: 在此输入图像描述

这可行吗?我使用复杂的公式对左列进行排序,然后在右列的每个单元格中使用 COUNT 公式进行排序,但它不优雅,效率不高,并且由于某种原因,某些项目没有正确计数。我尝试了 QUERY、UNIQUE、ARRAYFORMULA、COUNT 等的组合,但无法让它按照我想要的方式工作。

虚拟文件: https://docs.google.com/spreadsheets/d/12hjkNMV3eHOBxiF9ENLZBYdJfnY-0bLDMJSnZTBFeG0/edit ?usp=sharing

任何人都可以提供有关如何执行此操作的任何指示吗?

Har*_*4HR 5

在 google-sheet 上您可以使用QUERY()函数。

=QUERY(A4:A,"select A, count(A) where A is not null group by A order by count(A) DESC label count(A) ''")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 完美的答案。我以为你必须按 count(A) desc 排序,然后按 A 排序,但我认为发生的情况是 group by 已经按字母顺序排序,并且任何进一步的排序都会保留字母顺序,其中另一个排序键上有联系。 (2认同)
  • 为了解决这个问题,可以使用“matches()”。例如: `=QUERY(B3:B,"Select B, count(B) where B matches '^(?!ITEMS$).+' group by B order by count(B) DESC label count(B) '' ”)`。一般来说,通过交替扩展模式: `^(?!(?:ExcludeA|ExcludeB|ExcludeC)$).+` @Verminous (2认同)