合并2个Excel代码

问题描述 投票:1回答:2

我在两个不同的列中有两个代码,我想将它们组合在一起。

这两个代码工作正常,但当我尝试将它们组合在一起时,我得不到正确的输出

例如,第一个代码从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

组合代码的评估如下图所示。

你能帮我吗?

excel formula
2个回答
2
投票

在两个条件中,您使用带有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括号。


0
投票

使用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)))
© www.soinside.com 2019 - 2024. All rights reserved.