IF(ISNUMBER(A1:A100),A1:A100,"")
是数组公式吗?如果不是,它是什么?
我从一个网站上复制了一个假期列表并将其粘贴到 Excel 中。原始数据有四列 (日期、假期名称、工作日、注释)。粘贴到 Excel 后,所有内容都出现在 A 列中,如下所示:
date
name of the holiday
weekday
note
date
name of the holiday
.....
.....
我尝试了几种方法来查看数据是否可以粘贴到列中无济于事。所以,我需要将日期提取到另一列。在列 B 中,我输入了这个公式=IF(ISNUMBER(A1:A100),A1:A100,"")
。它可以将日期从列 A 提取到列 B。
我不确定它是否是一个数组公式,与其他数组公式不同,它不需要 Ctrl-Shift-Enter。然而,ISNUMBER 通常将单元格作为参数,而不是数组,IF 通常不返回数组。
IF 和 ISNUMBER 不是数组函数,但它们可以在数组公式中使用。
在数组公式之外,它们仅接受单个输入值并返回单个输出值。
在数组公式中,它们可以接受输入值的数组,并将返回输出值的数组。
如果不按 CTRL-SHIFT-ENTER,则指定的公式不是数组函数。
您所看到的是当期望单个值的函数被赋予一个范围并在不按 CTRL-SHIFT-ENTER 的情况下输入时的行为,但输入范围与放置公式的行重叠。
当预期输入单个值时,如果公式重叠,则输入范围将返回输入公式的同一行的范围中的值,否则将返回错误。
您获得输出只是因为您将公式放在被引用的行旁边;它给出的结果与您正常输入公式然后填写的结果相同:即将=IF(ISNUMBER(A1),A1,"")
放在单元格 B1 中并填写。
请注意,如果您在单元格 B2 而不是单元格 B1 中输入=IF(ISNUMBER(A1:A100),A1:A100,"")
,然后向下填充,则值仍然显示在同一行中,并且不会像您预期的那样向下移动一行。
与将=IF(ISNUMBER(A1),A1,"")
放在单元格 B2 中并向下填充相比,然后您可以按预期向下移动一行。
如果您在单元格 B101(输入范围下方)中再次输入原始公式并填写,则根本不会获得任何值(即使单元格旁边有数据),因为输入范围不再与当前单元格重叠。实际上,如果您从“公式”选项卡中使用了“计算公式”工具,则会看到范围 A1:A100 立即返回 # VALUE 错误。
此行为令人困惑,应不惜一切代价避免。仅当函数需要一个范围时,或者当使用 CTRL-SHIFT-ENTER 有意创建数组公式时,才输入范围。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(85条)