我在Excel中有一个数据集,我想要一个公式来找到每行最常见的观察(从B列到F列)。但是,如果有任何关系,则有两个打破平局,按以下顺序排列:第一个打破平局,如果数字4被绑定为任何行中最频繁的观察,则该行中的结果应为4第二个打破平局是,如果存在平局(其中4与最频繁的观察无关),则应在G列中显示该值。
在下面的图片中,我已经(左边)粗略地描绘了我现在拥有的数据和(右边)我想要的结果。
数据集图片:
我需要写什么公式才能得到我想要的结果?
提前致谢,
的Anders
答案 0 :(得分:0)
看看这是否适合你:
=IF(ISNA(MODE.MULT(MyData)),IF(ISNA(MATCH(4,MyData,0)),Fruit,4),IF(ISERR(INDEX(MODE.MULT(MyData),2)),MODE.MULT(MyData),IF(ISNA(MATCH(4,MODE.MULT(MyData),0)),Fruit,4)))
以数组公式CTRL-SHIFT-ENTER
输入。
此处MyData
是一行数据的占位符。在您的示例中,MyData
将是B-F列的单行;对于案例A,MyData = {1,1,1,1,2}。 Fruit
是占位符与G列中的对应值。您可以将MyData
替换为B2:F2
,将Fruit
替换为G2
,然后复制并粘贴到其他位置。< / p>
以下是它的工作原理。该公式使用Excel的MULT.MODE
函数,该函数返回与数据中一样多的模式值。
MULT.MODE
中没有重复元素时, N/A
会返回MyData
。这就是你的案例D和E的情况。这意味着存在N路并列,所以我们需要应用平局规则。这是通过使用MATCH
函数来查看MyData
中是否找到4来完成的。如果是,则返回4,否则返回Fruit
。
如果MyData
重复元素,MULT.MODE
将返回包含找到的模式的数组。如果没有平局,MULT.MODE
将返回单个元素,否则该数组将至少包含两个元素。为了测试关系,我们尝试使用INDEX(MULT.MODE(MyData),2)
访问数组的第二个元素。如果没有平局,这将抛出错误。
如果没有平局,请使用ISERR
检测结果错误。如果没有平局,我们会返回MULT.MODE
的结果。
如果有平局,则不会发生错误。在这种情况下,我们使用MATCH
在MULT.MODE
的结果中查找4。如果找到4,我们返回4;如果没有返回Fruit
。
希望有所帮助。
答案 1 :(得分:0)
@xidgel:这是一个很好的答案,但您还必须考虑所有观察结果相同的情况。
CTRL-SHIFT-ENTER.
以数组公式<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/<code>?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>