INDEX返回零而不是空白值

我有大量的值,其中每个值可以是空的或有一个有效的值。 零点是有效的值,与空白单元不同!

在另一个工作表中,我使用VLOOKUP,INDEX,INDIRECT,OFFSET(或其他一些昂贵的操作),使用一些行列索引来指向数组和列表值。 如果数组中的所需值是空的,它应该返回- (或NA或类似的东西)。

问题是,当我使用这个公式:

 =IF(ISBLANK(INDEX(array, row, col)),"-",INDEX(array, row, col)) 

一切正常,但有INDEX的双重呼叫。 这是浪费。 arrays相当大,这个function显然是我的瓶颈,完整的评估需要用户等待相当长的时间。

如果我尝试分两步做,例如:

 A1 = INDEX(array, row, col) 

 B1 = IF(ISBLANK(A1), "-", A1) 

它根本不起作用,因为在单元格A1中将空白值转换为0

那么有没有办法让它不需要双重调用INDEX函数呢?

有没有一种方法来使它没有双重调用INDEX函数?

是的,确保如果0被返回,则有0被提取,如果-被返回a - 。 换句话说,解决源数据中的问题。

例如,通过select源数据范围,HOME>编辑 – 查找和select,转到特殊…,select空白,input-Ctrl + Enter

如果希望不显示-s,则select源数据范围,然后selectHOME> Cells – Format,Format Cells …,Custom:

 0;0;0; 

或调整(例如小数精度)以适应。

你有什么想法为什么微软决定隐式地将空值转换为零?

不,但对我来说,这个问题似乎脱离这个话题。