Google Spreadsheets:CORREL()和MMULT()缺少案例/空白

时间:2016-10-27 14:15:26

标签: google-sheets

所以我有以下公式来关联两个范围:

=ROUND(CORREL(ARRAYFORMULA(MMULT('E0:Sample'!$D$2:$AY,TRANSPOSE(SIGN(COLUMN(('E0:Sample'!$D$2:$AY)))))),FILTER(OFFSET('E0:Sample'!$D$2:$D,0,ROW()-2),NOT(ISBLANK(OFFSET('E0:Sample'!$D$2:$D,0,ROW()-2))))),3)

只要'E0:Sample'!$D$2:$AY中没有空格,公式就可以正常工作。否则抛出错误消息Function MMULT parameter 1 expects number values. But '' is a empty and cannot be coerced to a number.

我曾尝试过滤()空行,但过滤器功能不起作用,因为范围不同。

如何在没有最佳方法的情况下解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

很难测试你的完整公式,但是我对迷你版的矩阵乘法进行了测试,看起来你可以像在Excel中一样使用N功能。这是我的迷你测试: -

= ARRAYFORMULA(MMULT(N(B1:G1)中,n(A1:A6)))

其中两个范围都包含数字,字母和空格的混合。非数字单元格被视为零。

Reference

我对此的背景并不完全清楚 - 我认为您正试图通过使用mmult从大型2D阵列获取行总和 - 如果这是正确的我认为我的答案是可以的因为空白对总和没有任何贡献。由于CORREL忽略了第二个范围内的空白,您根本不需要过滤?

我最终为您的公式设置了一些测试数据,我的公式最终结果如下: -

=ROUND(CORREL(ARRAYFORMULA(MMULT(n('E0:Sample'!$D$2:$AY),TRANSPOSE(SIGN(COLUMN(('E0:Sample'!$D$2:$AY)))))),OFFSET('E0:Sample'!$D$2:$D,0,ROW()-2)),3)