【问题标题】:INDEX returns zero instead of blank valueINDEX 返回零而不是空白值
【发布时间】:2014-12-28 15:31:18
【问题描述】:

我有一大堆值,每个值都可以是空白或有一个有效值。零是有效值,与空白单元格不同!

在另一张表中,我有相当复杂的公式指向数组,并使用 VLOOKUP、INDEX、INDIRECT、OFFSET(或其他一些昂贵的操作)根据某些行和列索引选择值。如果数组中所需的值为空白,则应返回 -(或 NA 或类似的东西)。

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

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

一切正常,但有双重调用 INDEX。这是浪费。数组很大,这个函数显然是我的瓶颈,完整的评估需要用户等待很长时间。

如果我尝试分两步完成,例如:

A1 = INDEX(array, row, col)  

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

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

那么有没有办法在不重复调用 INDEX 函数的情况下做到这一点?

【问题讨论】:

  • @pnuts:感谢您的指出。我已经删除了 cmets。

标签: excel indexing excel-formula


【解决方案1】:

有没有办法在不重复调用 INDEX 函数的情况下做到这一点?

是的,请确保如果要返回 0,则要获取 0,如果要返回 -,则要返回 -。换句话说,解决源数据中的问题。

例如,通过选择源数据范围,HOME > Editing – Find & Select, Go To Special...,勾选 Blanks,输入-, Ctrl+Enter

如果不想显示-s,则选择源数据范围和HOME > Cells – Format, Format Cells..., Custom:

0;0;0;  

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

您知道为什么 MS 决定将空白值隐式转换为零吗?

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

【讨论】:

  • 支持修复源数据。好的数据架构应该总是出现在花哨的公式之前。
猜你喜欢
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2013-10-13
  • 2023-03-15
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多