IMO Excel 对空单元格进行了奇怪的处理。
我正在构建一个复杂的数组公式。引用的范围之一包含单元格,这些单元格可能为空,也可能不为空,如果不为空,它们可以同时包含数值和字符串。
如果单元格不为空,我可以使用什么函数来获取单元格的值,如果单元格为空,则获取“”(或任何其他非数字,例如#N/A
)?
我想得到这样的工作:
=MIN(OFFSET(<column vector that contains text, numbers and empty cells>;<row vector of indices>-1;0))
这种形式的公式会返回一个#ARG
错误,正如对为什么这个数组公式不起作用的答案中所解释的那样?.
但是当我加上前缀OFFSET
时N
,它会将任何空单元格转换为0
,因此最终结果是0
(除非列向量中有负数)。
=MIN(L(OFFSET(<column vector>;<row vector of indices>-1;0)))
是否有任何公式,仅取消引用通过OFFSET
保留空单元格的“空性”返回的引用?或者也许有另一种解决问题的方法,比如
=MIN(IF(OFFSET(<column vector>;<row vector of indices>-1;0)="",L(OFFSET(<column vector>;<row vector of indices>-1;0)),""))
(这个例子也失败了#ARG
,因为据我所知,我还需要取消引用=
测试的数组引用)。
如果可能的话,我更愿意保留 Excel 2007 的内置函数集。而且没有VBA。
我会接受任何解决方案,它使用恒定数量的单元格,而不管每个输入数组的大小。
编辑:
作为旁白,我想知道OFFSET
无论如何返回的数组有什么问题?这个简单的例子完美地工作:
...而返回的数组以OFFSET
某种方式希望在公式中独处。