我在 MS Excel/LibreOffice Calc/Google Spreadsheets 中有两列数字。我想计算两列中具有相同值的行数。
在以下示例中:
Column A | Column B
1 | 4
2 | 2
3 | 5
3 | 3
5 | 3
有两行数字相等:第 2 行 (2=2) 和第 4 行 (3=3)。我希望有类似的解决方案=SUM(A1:A5=B1:B5)
;不幸的是,没有。
更新
我知道如果我要创建第三列,逐行比较每对值(如 Dave 和 Joe 所建议的,使用例如=IF(A1=B1, 1, 0)
),解决方案会很简单;但是,我正在寻找一行代码,因为我不想让中间结果弄乱电子表格。
答案1
你几乎是对的。你可以稍微调整一下你的公式,如下所示:
{=SUM(IF(A1:A5=B1:B5,1,0))}
输入此公式(不带花{}
括号),然后按Ctrl+ Shift+ Enter,这样 Excel 就知道这是一个数组公式。花括号表示这是一个数组公式。
答案2
在 Excel 中,你可以SUMPRODUCT
按照与 Andi 的解决方案类似的方式使用函数,但要避免“数组输入”:
=SUMPRODUCT(0+(A1:A5=B1:B5))
这也将计算任何空白行(就像 Andi 的一样),所以如果您想避免对此版本进行更改:
=SUMPRODUCT((A1:A5<>"")*(A1:A5=B1:B5))
答案3
我会用 IF Else 语句使其更简单,以便它可以应用于数字和字符
在 C1 中,添加以下内容
=IF(A1=B1, 1, 0)
然后,将公式拖到表格下方,对整个单元格求和
=SUM(C1:C10) // enter correct row numbers!
答案4
如果可以使用另一列来存储部分结果,则可以按照以下步骤操作:
Column A | Column B | Column C (equal condition)
1 | 4 | =IF(A1=B1;1;0)
2 | 2 | =IF(A2=B2;1;0)
3 | 5 | =IF(A3=B3;1;0)
3 | 3 | =IF(A4=B4;1;0)
5 | 3 | =IF(A5=B5;1;0)
在单元格 C6 中输入以下公式=SUM(C1:C5)