如何用XLookup实现含或逻辑的多条件匹配查询?
用XLOOKUP布尔数组法实现含OR逻辑的多条件查询
完全可行,只需在布尔数组中组合**按位与(*)和按位或(+)**逻辑即可,具体实现如下:
假设你的商品表数据范围对应关系:
- Item列:A2:A100
- Size列:B2:B100
- Color列:C2:C100
- Color2列:D2:D100
- Price列:E2:E100
对应的查询公式为:
=XLOOKUP(1,(A2:A100="Hoodie")*(B2:B100="Medium")*--((C2:C100="Blue")+(D2:D100="Blue")),E2:E100)
公式逻辑拆解
(A2:A100="Hoodie")*(B2:B100="Medium"):用*实现AND逻辑,仅当Item为"Hoodie"且Size为"Medium"时,该位置返回1,否则为0(C2:C100="Blue")+(D2:D100="Blue"):用+实现数组层面的OR逻辑,Color或Color2任意一个为"Blue"时,该位置返回1或2(两列均为Blue时返回2),否则为0--(...):双负号将非零值(1或2)统一转换为1,零值保持0,确保整个条件数组中符合要求的位置都为1,与XLOOKUP的查找值1匹配- XLOOKUP默认返回第一个符合所有条件的行对应的Price值
补充说明
若存在多个符合条件的记录,需要返回最后一个匹配结果,可在公式末尾添加匹配模式参数:
=XLOOKUP(1,(A2:A100="Hoodie")*(B2:B100="Medium")*--((C2:C100="Blue")+(D2:D100="Blue")),E2:E100,,,-1)
内容的提问来源于stack exchange,提问作者Jeff Reddy
相关产品推荐
相关产品推荐

