今天我们来认识一个比较奇怪的问题。
表格中输入公式得到了正确结果,但随着公式下拉填充,却突然发现公式的结果为0,无法再输出正确的结果。
如下图所示,图中公式为:
=INDEX(出入库明细表!$C$2:$C$1000,MATCH(0,IF({1},COUNTIF(B$2:B362,出入库明细表!$C$2:$C$1000)),))&""
这是一个典型的index match函数组合,常用于引用某一列或区域中指定位置的值。
这个公式嵌套了if和countif函数,它们可能是造成公式结果出错的缘由,但经过检查,以及前面已输出的公式结果,发现公式结构和写法并不存在错误情况。
这时作者在表格右下角发现一段文本,“正在计算(20个线程)45%”。
这意味着表格正在执行计算,由于线程较多,执行计算的时间也比较长。
那么excel总是在出现“正在计算”与这个index公式结果离奇出错有着什么联系吗?
我们来看一个示例,重新点击上方任意一个公式结果,再次向下拖动来填充公式,却发现结果变了,变成了复制首个单元格的内容。
那是不是公式引用的结果就是相同的呢?
当然不是,因此从这个组合公式的含义来看,它就是跳过重复值来引用一列中的数据。
我们点击编辑公式栏,选择match函数表达式按下F9执行公式结果预览,可见它的结果值是467。