一个简单的投票机制在Excel中
我有一个有三列的Excel表。 这三列可以有一些价值或者是空白的。 我必须根据这三列中的条目更新第四列。 更新第四栏的标准如下:
-
如果两列或更多列具有相同的值,则第四列将具有相同的值。
-
如果所有三个值都不同,那么第四列将有第一个非空白值。
-
如果只有一个非空值,则第四列将具有非空值。
我无法弄清楚这个标准的第四列应该是什么公式。
这是一个例子
=IFERROR(INDEX(A2:C2,,MODE(MATCH(A2:C2,A2:C2, 0))), IF(A2="", IF(B2="", C2, B2), A2))
只需将其粘贴到D2并向下拖动即可。
为了解释它,它查找范围A2:C2
的所有内容的MODE
(最常见的值)。
MODE(MATCH(A2:C2, A2:C2, 0))
这将返回最常见值返回的第一个位置,在这种情况下,我们使用INDEX
函数并获取给定索引处的值,范围为A2:C2
。
INDEX(A2:C2,,MODE(MATCH(A2:C2,A2:C2, 0)))
到目前为止,这部分是基于这里的代码
现在这个会给我们这个信,但是只有一个字母比其他字母更普遍,如果它们都有不同的值,那么它会返回一个错误。 在这种情况下,我们使用IFERROR
函数,如果第一个参数中有错误,则会计算第二个参数。 所以如果没有匹配,那么我们只想得到第一个非空白单元格。
所以检查A2
是否空白,如果检查B2
是否空白,如果是,则使用C2
的单元格值,否则使用B2
的单元格值,但是如果A2
不是空白,则使用A2
的值。
IF(A2="", IF(B2="", C2, B2), A2))
有一点点的解决方法,你可以把上面的语句变成一些可扩展的东西(谷歌中第一个非空值在行中或类似的东西)。
希望这可以帮助。
用你的例子,在单元格D2中复制下来:
=IF(COUNTA(A2:C2)=0,"",IF(MAX(INDEX(COUNTIF(A2:C2,A2:C2),))>1,INDEX(A2:C2,MATCH(MAX(INDEX(COUNTIF(A2:C2,A2:C2),)),INDEX(COUNTIF(A2:C2,A2:C2),),0)),INDEX(A2:C2,MATCH(TRUE,INDEX(A2:C2<>"",),0))))