使用数组的故障排除公式 - 数组参数的大小与 EQ 不同

Troubleshooting formula with array - array arguments are of different size to EQ

在 Google 工作表中,我有一个公式,如果其中一个单元格包含不同 sheet 中列出的任何值,则在一行中显示该项目的值。它看起来像这样:

=ARRAYFORMULA(IF(OR(L2 = ZRSKUs!$A:$Z005), O2, "0"))

如果 L2 包含 sheet ZRSKU 中的任何值,此公式将显示 O2 中保存的项目的值。如果我向下拖动公式,它会生成每一列的值,然后我可以获得该列的 SUM。我想要一种方法来执行此操作,而不必将公式拖到每一行中(此 spreadsheet 有大约 20,000 行,因此需要很长时间才能完成)。我也想让公式把它也加起来,所以都在一个单元格里完成了。

我试着编辑公式来做到这一点,这就是我想出的:

=ARRAYFORMULA(SUM(IF(OR($L3:$L = ZRSKUs!$A:$A0), $O3:$O, "0")))

但是,这给了我一个 "Array arguments to EQ are of different size" 错误。我尝试调整 ZRSKU sheet 中的行数,使其与我的另一个 sheet 中的行数完全相同,但这没有任何区别。

我不确定出了什么问题,如有任何帮助或建议,我们将不胜感激!

您收到错误是因为那不是 well-formed 数组公式,因为 $L3:$LZRSKUs!$A:$A0 的长度不相等。我们可以通过使用另一个函数进行查找来纠正这个问题,在本例中,MATCH:

=ARRAYFORMULA(SUM(IF(ISNA(MATCH($L:$L, ZRSKUs!$A:$A0, 0)), 0, $O:$O)))