Excel – IF函数列表中的模态值

我想在列表中find最常见的值,并按名称匹配最常见的结果。

我知道它围绕着一个带有模式和匹配function的索引,其中有一个IF函数。 但不能把它弄下来。

原始数据

USER NAME Items James Ile Flat White James Ile Flat White Michael Pane Latte Lily Wilk Iced Drinks Louise Coset Millionaire Shortbread Louise Wyli Flat White Louise Wyli Millionaire Shortbread Louise Wyli English Breakfast Louise Cosett Cheese Toastie Louise Wyli Flat White Louise Cosett Pineapple Sunset James Court Espresso 

期望的结果

 USER James Ile Flat white Michael Pane Latte Lily Wilk Iced Drinks Louise Cosett Cheese Toastie Louise Wyli Flat white James Court Espresso 

作为一名Excel Formula的爱好者,考虑到这个问题并没有引起太多反响,我试图通过结合使用Mode.Multfunction, IndexMatchfunction来获得结果。

  1. Mode.Mult可从Excel 2010起。 模式function可用于较早的版本,但如果模式值有联系,可能会出错。
  2. Mode.Mult函数返回数组或数据范围中最频繁出现或重复值的垂直数组。 对于水平arrays,使用TRANSPOSE(MODE.MULT(number1,number2,...)). 如果有多种模式,这将返回多个结果。 因为这个函数返回一个值的数组,它必须作为一个数组公式input。 参数可以是数字或名称,数组或包含数字的引用。如果数组或引用参数包含文本,逻辑值或空单元格,则这些值将被忽略; 但是,包含值为零的单元格。 Mode.Multfunction
  3. 通过使用IF条件,Mode.Mult函数已被用于文本string。

我已经部分成功地获得了期望的结果,从某种意义上说,如果有多个模式值出现,将在结果中显示。 尽pipe如此,我仍在发表我的答案,希望有更多有经验的人士指导和帮助克服我的不足之处。

结果C2中的数组公式被复制下来

 =IFERROR(INDEX( $B$2:$B$13,INDEX(MODE.MULT(IF($A$2:$A$13=$A2,MATCH($B$2:$B$13,$B$2:$B$13,0))),ROWS($C2:C2)) ),"") 

用Ctrl + Shift + Enter确认,而不仅仅是Enter。

结果