![Excel 中双参数函数的输入单元格范围不连续](https://linux22.com/image/1573635/Excel%20%E4%B8%AD%E5%8F%8C%E5%8F%82%E6%95%B0%E5%87%BD%E6%95%B0%E7%9A%84%E8%BE%93%E5%85%A5%E5%8D%95%E5%85%83%E6%A0%BC%E8%8C%83%E5%9B%B4%E4%B8%8D%E8%BF%9E%E7%BB%AD.png)
我无法使输入单元格的不连续范围(例如(A2:A2;A4:A5)
在 Excel 中的双参数(也许是多参数)函数中工作)起作用:以下内容不会产生任何错误消息,但会产生#VALUE
=COVARIANCE.S((A2:A2;A4:A5);(B2:B2;B4:B5))
我怎样才能让它工作?
答案1
您可以创建一个具有 Index 数组形式的数组或数字:
INDEX(A:A,N(IF(A2:A5<>"",ROW(A2:A5))))
这会将每个非空单元格 A2:A5 作为数组返回到公式中。
这对某些公式有效,但不是全部。
它确实在Slope
和Intercept
=INTERCEPT(INDEX(A:A,N(IF(A2:A5<>"",ROW(A2:A5)))),INDEX(B:B,N(IF(A2:A5<>"",ROW(A2:A5)))))
=SLOPE(INDEX(A:A,N(IF(A2:A5<>"",ROW(A2:A5)))),INDEX(B:B,N(IF(A2:A5<>"",ROW(A2:A5)))))
(第二组显示正确的输出)
正如您所看到的,它跳过了99
B3 中的,而仅返回了1,2,3
其他单元格中的。
我们还可以调整它以跳过非数字:
INDEX(A:A,N(IF(ISNUMBER(A2:A5),ROW(A2:A5))))
其思想是创建一个行号数组并将其提供给 INDEX,然后返回该行中的所有数字。
作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter。