Excel IF 公式不起作用

Excel IF 公式不起作用

我正在尝试以下 excel 公式,我需要工作表上的单元格 C4 返回值 0,因为 A4 等于 B3。以下是我尝试过的:

=IF(A4='Weekly Input Data'!B$3:B$4,0,1)并且它的返回值为 1,但是由于 A4 = B3,所以我需要它返回值 0。我做错了什么?

答案1

使用公式时

=IF(A4='Weekly Input Data'!B$3:B$4,0,1)

您正在将单元格A4与范围进行比较'Weekly Input Data'!B$3:B$4,而不是与单元格进行比较'Weekly Input Data'!B$3

您有两个选择:

  1. 比较单元格A4与单元格'Weekly Input Data'!B$3
  2. 查找单元格是否A4与范围内的任何单元格匹配'Weekly Input Data'!B$3:B$4

对于 1. 公式为:=IF(A4='Weekly Input Data'!B$3, 0, 1)

对于 2.,公式为:=IF(ISNUMBER(MATCH(A4, 'Weekly Input Data'!B$3:B$4, 0)), 0, 1)

答案2

尝试改用MATCH

=IF(ISNUMBER(MATCH(A4, 'Weekly Input Data'!B$3:B$4, 0)), 0, 1)

MATCH将尝试从您的范围中找到一个匹配的值,如果找到,它将返回一个数字。


我刚刚意识到你实际上甚至可以删除 IF:

=ISERROR(MATCH(A4, 'Weekly Input Data'!B$3:B$4, 0))*1

如果MATCH匹配,则ISERROR返回 false,即 0 和 0*1 给出 0。(如果 A4 在 B3:B4 中,则您确实期望 0)。

如果MATCH没有任何匹配,ISERROR则返回 true,即 1 加 1*1 得出 1。


编辑:根据空白范围的更新,您可以使用它:

=IF(COUNTBLANK('Weekly Input Data'!B$3:B$4)=ROWS('Weekly Input Data'!B$3:B$4),0,ISERROR(MATCH(A4,'Weekly Input Data'!B$3:B$4,0))*1)

我使用COUNTBLANK并使ROWS公式更灵活地适应不同的范围,而无需使其成为数组公式。

答案3

在单元格 C4 上:

=IF(A4=B3,0,1)

如果您的 A4 (和/或 B3)在不同的纸张上,则:

=IF(A4='Weekly Input Data'!B$3,0,1)

编辑:既然您现在提到您需要比较数据范围(1 个单元格到多单元格数据)

这是我在这个网站上找到的http://www.mrexcel.com/forum/excel-questions/87031-formula-compare-value-one-cell-range-5-cells.html- DRJ 的回答(已更新以符合您的查询):

=IF(ISNA(INDEX('Weekly Input Data'!B3:B7,MATCH(A4,'Weekly Input Data'!B3:B7,0))),0,1)

相关内容