Excel在项目列表中查找具有最大平均速率的项目

njthzxwz  于 2023-04-22  发布在  其他
关注(0)|答案(2)|浏览(179)

在Excel中,我有一个“项目ID”和“用户评论”列。只有2列(A和B),有数千行。所有这些项目都有评分为1至5的评论。我想找到项目ID,它具有所有项目的最高平均得分,并有超过100条评论。
例如,“项目ID 1”有1000个平均得分为2.5的评论,“项目ID 2”有2000个平均得分为3的评论,“项目ID 3”有50个平均得分为4的评论。我希望公式返回平均得分最高的“项目ID 2”,因为“项目ID 3”有50个评论,小于100。
| 项目ID|用户评论|
| --------------|--------------|
| 10个|1|
| 十五岁|三|

到目前为止,我有这个数组公式,它返回最大评论分数的项目的平均值,我需要添加最小100评论的条件,并返回项目ID,而不是平均值本身。

{=MAX(AVERAGEIF(A:A,A:A,B:B))}
mepcadol

mepcadol1#

考虑到你的评论没有O365,并添加了最少x-reviews的附加条件,你可以尝试以下公式(为了说明我使用最少2-reviews的观点)

=LET(A,A2:A8, B,B2:B8, ux,UNIQUE(A), avg,AVERAGEIFS(B,A,ux),
 cnts, COUNTIFS(A, ux), f,IF(cnts>=2,avg,-1),INDEX(ux, MATCH(MAX(f),f,0)))

或者使用FILTER函数:

=LET(A,A2:A8, B,B2:B8, ux,UNIQUE(A), avg,AVERAGEIFS(B,A,ux),
 cnts, COUNTIFS(A, ux), FILTER(ux,avg=MAX((cnts>=2)* avg)))

我假设所有的评论都是正面的,所以我使用IF条件来排除评论数量最少的评论,考虑负平均值。输出:

正如您所看到的,项目4具有最大的平均评论,但此项目被排除在外,因为它只有一个评论。
由于我们不知道您的Excel版本,我假设我们可以使用Excel 2021中可用的LETUNIQUEFILTER函数。

qf9go6mv

qf9go6mv2#

备选方案:

=LET(α, A2:A7, 
     β, B2:B7, 
     @SORTBY(α, AVERAGEIFS(β, α, α), -1)
)
  • 编辑**:对于旧版本的Excel,假设B2:B7中的条目是非负数 *:
=LOOKUP(1,0/FREQUENCY(0,1/AVERAGEIFS(B2:B7,A2:A7,A2:A7)),A2:A7)

相关问题