比较MS Excel中的列
以下是Excel电子表格的示例。 要求是比较每列(比如B)和C列,并计算B和C都有数字的行数。 例如,B和C在第一行和第二行都有值,但是在第三行只有B有一个值,所以输出应该是2。
我试图用如果条件如下:
if(and(isnumber(b2),isnumber(c2)),1,0)
但它只适用于一行而不是所有的行。
我如何在MS Excel中实现这个结果?
╔═══╦════════╦═══╦═══╦═══╦═══╦═══╗ ║ ║ A ║ B ║ C ║ D ║ E ║ F ║ ╠═══╬════════╬═══╬═══╬═══╬═══╬═══╣ ║ 1 ║ ║ 4 ║ 5 ║ ║ 6 ║ 5 ║ ║ 2 ║ ║ 2 ║ 5 ║ ║ 2 ║ ║ ║ 3 ║ ║ 1 ║ ║ 2 ║ 6 ║ 7 ║ ║ 4 ║ ║ ║ ║ ║ ║ ║ ║ 5 ║ Output ║ 2 ║ ║ 0 ║ 2 ║ 1 ║ ╚═══╩════════╩═══╩═══╩═══╩═══╩═══╝
把这个公式放在任何你想查看结果的地方
=COUNTIFS(B1:B4,"<>",C1:C4,"<>")
"<>"
只计算非空白单元格,但会计数#NAME?
, #DIV/0
和#REF
如果通过增加两个标准, 零也不是可接受的值 , 则可以避免这种情况
=COUNTIFS(B1:B4,"<>",C1:C4,"<>",B1:B4,">0",C1:C4,">0"!)
如果您需要比较所有列组合,则可以使用SUMPRODUCT
:
=SUMPRODUCT(--(ISNUMBER(INDIRECT($A6&"$1:"&$A6&"$3"))),--(ISNUMBER(B$1:B$3)))
有关“使用SUMPRODUCT作为数组公式”的说明,请参阅此链接 。