显示出现次数最多、第二多和第三多的值

Showing the most, second most, and third most occurring values

哪个公式显示 A 列的唯一(文本)值,以及 B 列中相应的最常出现的值(文本),并根据不同列的出现程度对它们进行排序?

我已经知道如何只显示第一个出现次数最多的值,而不显示第二个、第三个等等。

只显示第一个出现次数最多的值的公式:

=ArrayFormula(VLOOKUP(UNIQUE(FILTER(A:A;A:A<>""));QUERY({A:B\A:A};"select Col1, Col2, count(Col3) where Col1 <> '' group by Col1, Col2 order by count(Col3) desc");{1};0))

Test Sheet

已编辑(在对问题进行澄清并进行一些改进以确保答案独立,不参考外部传播sheets)

我使用“FILTER()”、“UNIQUE()”和“SORT()”的组合以及计算出的频率(使用 COUNTIFS 确定)。请参阅下面的示例 sheet,taken from yours

不是单格公式,但是简单易懂

点差sheet 结构如下:

频道在 A 列中,相关媒体在 B 列中,给定(频道,媒体)对的频率在 C 列中(例如,在 C2 中)

=countifs($B:$B;"=" &B2;$A:$A;"=" & A2)

然后使用 =UNIQUE(B2:B) 列出独特的媒体。与给定的独特介质相邻(例如,在单元格 F13 中),然后我确定与该所选介质相关的所有配对,并创建一个按最频繁的此类配对排序的数组:

=transpose(unique(transpose(array_constrain(transpose(sort(filter($A:$C;$B:$B=F13);3;FALSE));1;10))))

这通过过滤掉所选媒体(在 F13 中选择)的所有对(具有对频率),按对频率(即第 1、第 2、第 3 个最经常出现的媒体)对列表进行排序,修剪数组只显示媒体,然后删除重复的条目(因为每次给定的配对重复时我们都有一个重复的条目,即不止一次看到)。使用 Transpose 是因为 Unique 不适用于行数组,仅适用于列数组。

该公式适用于分别添加到 A 列和 B 列的任何其他渠道和媒体。

公式中的“10”是指array_constrain()期间保留的列数,可以任意高

对原始发布的修改: 为了完成这项工作,我不得不在原始答案中相互交换媒体和频道列,然后添加一个 C 列,这是该配对的频率,我后来用它来对第一个、第二个等进行排序.. 最受欢迎的频道。

此外,对于单个单元格公式,请尝试 query()

=query(A:B; "select A, count(B) where A<>'' group by A label count(B) 'Frequency'"; 1)

尝试组合使用 QUERY 和 INDEX

=iferror(index(query($A:$C0, "select B,count(C) where A contains '"&$E2&"' group by B order by count(C) desc",1) ,columns($AA:AB),1),"")

媒体类型在 E2 中。