数组公式中的 ISNUMBER() 无法将数字识别为数字

数组公式中的 ISNUMBER() 无法将数字识别为数字

我有一本工作簿(附件),用户在一张工作表(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 sheetA是可能的作物列表,Initial data collection sheetB是区域的列。

在没有包含该函数的情况下,公式运行良好,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)

相关内容