我有一本工作簿(附件),用户在一张工作表(Initial data collection sheet
)上输入不同作物的面积,然后理论上,第二张工作表会生成所有作物的清单(即列中的非零数字值Area
)。我使用的公式是:
{=IFERROR(INDEX('Initial data collection sheet'!A$40:A$103,SMALL(
IF('Initial data collection sheet'!B$40:B$103<>"",
IF('Initial data collection sheet'!B$40:B$103<>0,
IF(ISNUMBER(B$40:B$103),
ROW('Initial data collection sheet'!A$40:A$103)-ROW('Initial data collection sheet'!A$40)+1))),
ROWS('Initial data collection sheet'!A$40:'Initial data collection sheet'!A40))),
"NONE")}
其中,Initial data collection sheet
列A
是可能的作物列表,Initial data collection sheet
列B
是区域的列。
在没有包含该函数的情况下,公式运行良好,ISNUMBER()
但由于范围中间有两个文本标题,这意味着我得到的是标题列表以及现有的作物,这并不好。如果包含该函数ISNUMBER()
,它会认为不存在作物,而不管面积列中的数字是多少。
使用公式评估工具,我发现这是因为该ISNUMBER()
函数对FALSE
我的范围内的所有单元格(无论是否为数字)都进行评估。NOT(ISTEXT())
与没有子句相同ISNUMBER()
- 它也会给我标题,因为它会评估范围内的每个单元NOT(ISTEXT())
格FALSE
,而不管值如何。
我尝试手动将所有列单元格的格式更改B
为数字,以及在单元格上使用“全部清除”功能并手动重新输入每个值,但都无济于事。
有谁知道为什么ISNUMBER()
/NOT(ISTEXT())
不起作用,以及我如何才能从现有作物列表中删除这两个标题?
可以看到工作簿的精简版本这里。
答案1
这是一个简单的错误。你忘记了表格参考。
改变
ISNUMBER(B$40:B$103)
对此
ISNUMBER('Initial data collection sheet'!B$40:B$103)