一个简单的投票机制在Excel中

我有一个有三列的Excel表。 这三列可以有一些价值或者是空白的。 我必须根据这三列中的条目更新第四列。 更新第四栏的标准如下:

  1. 如果两列或更多列具有相同的值,则第四列将具有相同的值。

  2. 如果所有三个值都不同,那么第四列将有第一个非空白值。

  3. 如果只有一个非空值,则第四列将具有非空值。

我无法弄清楚这个标准的第四列应该是什么公式。

这是一个例子 在这里输入图像说明

=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))))