如何在excel范围内为空格切换零?

时间:2013-10-07 16:12:02

标签: excel

我需要从sheet1中选择一列,所选列与目标单元格的行匹配。我有这个代码

INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1")))

但它选择空白值(空单元格)作为空单元格的零!

我尝试用

之类的东西修复它
IF(
    (
        INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))
    )=0;
    "";
    (INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))))

当然不起作用,因为我试图将条件应用于范围而不是值。

有没有办法选择范围  INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))采摘 空白是空白而不是零?

2 个答案:

答案 0 :(得分:2)

这是你在尝试什么?我已将您的公式放在TRIM()公式中。

=TRIM(INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))))

注意Trim()将返回一个字符串。因此,如果单元格为空,那么您将获得一个空白,但如果单元格有一个数字,那么您将获得该数字作为字符串

参见此示例

enter image description here

答案 1 :(得分:0)

我发现您可能不再需要答案,但我注意到您的原始尝试可行 - 您可以将IF应用于范围,即

=IF(INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))="";"";INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1")))

....但可能不需要INDIRECT / ADDRESS组合,您可以使用此公式返回原始数组

=INDEX(Sheet1!$2:$101;0;ROW())

然后只应用一个简单的IF函数,即

=IF(INDEX(Sheet1!$2:$101;0;ROW())="";"",INDEX(Sheet1!$2:$101;0;ROW()))

这两个都将数值保持为数字