我在两个不同的列中有两个代码,我想将它们组合在一起。
这两个代码工作正常,但当我尝试将它们组合在一起时,我得不到正确的输出
例如,第一个代码从CELL C6获取值,代码是
=AND(B3<=VLOOKUP(C6,Sheet3!A2:C35,3,FALSE),B3>=VLOOKUP(C6,Sheet3!A2:C35,2,FALSE))
它应该返回TRUE或FALSE,它可以正常工作。
第二个代码从CELL D6获取值,代码是
=AND(B3<=VLOOKUP(D6,Sheet3!A2:C35,3,FALSE),B3>=VLOOKUP(D6,Sheet3!A2:C35,2,FALSE))
它应该返回TRUE或FALSE,它可以正常工作。
但是当我尝试将它们与OR语句组合在一起时,代码不起作用。
合并后的代码是
=OR(AND(B3<=VLOOKUP(C6,Sheet3!A2:C35,3,FALSE),B3>=VLOOKUP(C6,Sheet3!A2:C35,2,FALSE)),AND(B3<=VLOOKUP(D6,Sheet3!A2:C35,3,FALSE),B3>=VLOOKUP(D6,Sheet3!A2:C35,2,FALSE)))
使用组合代码,如果单元格C6或单元格D6为真,我希望它返回true,但是当单元格C6和单元格D6都为真时,代码返回奇怪的输出,这不是我想要的。
问题是输出不会检索TRUE,除非单元格单元格c6和d6都为真,否则它甚至不会检索到错误,输出将只是N \ A
组合代码的评估如下图所示。
你能帮我吗?
在两个条件中,您使用带有False参数的Vlookup作为第四个参数。
如果VLookup找不到完全匹配,它将返回#N / A!
您需要将每个Vlookup包装成IFError以将该错误转换为空字符串,因此比较不会返回错误,而是返回“false”。
=OR(AND(B3<=iferror(VLOOKUP(C6,Sheet3!A2:C35,3,FALSE),""),B3>=iferror(VLOOKUP(C6,Sheet3!A2:C35,2,FALSE),""),AND(B3<=iferror(VLOOKUP(D6,Sheet3!A2:C35,3,FALSE),""),B3>=iferror(VLOOKUP(D6,Sheet3!A2:C35,2,FALSE),"")))
我只是在你的公式中自由交配了Iferror编辑。您可能希望使用公式语法助手正确放置Iferror括号。
使用IFERROR提供极端值,永远不会覆盖未找到匹配的情况。
=OR(AND(B3<=iferror(VLOOKUP(C6, Sheet3!A2:C35, 3, FALSE), -1e99),
B3>=iferror(VLOOKUP(C6, Sheet3!A2:C35, 2, FALSE), 1e99)),
AND(B3<=iferror(VLOOKUP(D6, Sheet3!A2:C35, 3, FALSE), -1e99),
B3>=iferror(VLOOKUP(D6, Sheet3!A2:C35, 2, FALSE), 1e99)))