A1ͼֽ:这是一个数组公式 IF(ISNUMBER(A1:A100) A1:A100“”)

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 通常不返回数组。

2

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 有意创建数组公式时,才输入范围。

0

如果将数据粘贴到 Excel 工作表后看起来像,那么您可以使用以下公式。

enter image description here

如上面的屏幕截图所示,用户的公式到C1单元格,然后根据需要向下和向右拖动。

=INDIRECT("A"&(ROW()-1)*4+COLUMNS($A$1:A$1))

此公式将为空单元格生成0 (zero)。要隐藏零(0),请使用IF()条件,如下所示。

=IF(INDIRECT("A"&(ROW()-1)*4+COLUMNS($A$1:A$1))=0,"",INDIRECT("A"&(ROW()-1)*4+COLUMNS($A$1:A$1)))

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(237)
Dell服务代码:删除dell优化器服务-powershell
上一篇
Corona意思:在CoronaSDK lua中闪烁文本
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(61条)