【问题标题】:Excel: Find the most common value in array given a certain value (IF, Index, Mode)Excel:给定某个值(IF,索引,模式)在数组中查找最常见的值
【发布时间】:2018-01-01 17:49:26
【问题描述】:

我试图在给定先前值的范围内找到最常见的值,例如,如果共享邮箱 (Col C) 等于 Finance,请告诉我最常见的 团队编号(Col B)访问它的用户:

到目前为止我的功能是(显然忽略了绝对单元格引用)

=INDEX($B$2:$B$20,MODE(MATCH($C$2:$C$20,$C$2:$C$20,0)))

我可以使用枢轴来执行此操作,但我需要将值插入到单元格中,并且枢轴中的 vlookup 不会削减它。还有数万行。但本质上,枢轴结果是我想要得到的,只是在一个单元格中通过一个公式。

这是一个表格示例、一个透视表以及公式和结果。

Excel image with pivot

欢迎任何和所有的帮助。 干杯 马特

【问题讨论】:

    标签: excel function if-statement indexing mode


    【解决方案1】:

    您可以使用数组公式。在if 上使用mode 函数

    {=MODE(IF($C$3:$C$18=F4,$B$3:$B$18))}
    

    以图片为例:

    【讨论】:

    • 反应很好,也很干净,谢谢。只是一个小问题,如果某个东西的计数小于 3,那么它会返回 #N/A。因此,对于具有 1 或 2 个条目的任何内容,即使它们不同或精确,响应也是 #N/A。关于将第一个条目作为默认值取回的任何想法?
    • 我认为#N/A 告诉你没有“最频繁”的团队。所有团队都有相同的贡献。
    【解决方案2】:

    您可能正在寻找这个公式:

    =MODE.SNGL(IF(C1:C999="Finance",B1:B999))
    

    CtrlShift回车

    附言您可以将硬编码的"Finance" 替换为任何单元格引用。


    编辑

    确实,如果只有一个匹配的行,或者两个具有不同值的行,MODE 将失败,因为实际上没有单一模式。然后您想返回“第一个”匹配项,因此将公式包含在 IFERROR 中,并使用 INDEX/MATCH 替代项:

    =IFERROR(MODE.SNGL(IF(C1:C999="Finance",B1:B999)),INDEX(B:B,MATCH("Finance",C:C,0)))
    

    CtrlShift回车

    【讨论】:

    • 感谢 ASH,就像下面的 @ProgSnob 一样出色而干净的响应,唯一的问题是只有一两个值(相似或不同)时它返回 #N/A,关于返回的任何想法第一个响应,或者确实是?
    • @Mchapple 然后将其包裹在IFERROR 中以使用INDEX/MATCH 替代方案。请参阅编辑。
    • 完美,正是我所需要的。感谢您和@ProgSnob 都非常好的回应。
    • @Mchapple 不客气。我代表您对 ProgSnob 的回答投了赞成票,以对他的回答给予应有的评价。 :)
    • 干杯,是的,我太新了,太狡猾了,似乎不能投票;)
    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 2016-08-25
    • 2014-08-04
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    相关资源
    最近更新 更多