我需要从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"))
采摘
空白是空白而不是零?
答案 0 :(得分:2)
这是你在尝试什么?我已将您的公式放在TRIM()
公式中。
=TRIM(INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))))
注意:Trim()
将返回一个字符串。因此,如果单元格为空,那么您将获得一个空白,但如果单元格有一个数字,那么您将获得该数字作为字符串
参见此示例
答案 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()))
这两个都将数值保持为数字