我正在尝试以下 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
。
您有两个选择:
- 比较单元格
A4
与单元格'Weekly Input Data'!B$3
- 查找单元格是否
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)