excel 电子表格|根据多个模式选项匹配两列的组合

ar7v8xwq  于 2023-02-10  发布在  其他
关注(0)|答案(2)|浏览(128)

我想检查表中两列的组合是否符合特定模式。
所有有效组合均记录在相应的参考表中。
列1需要与引用表中的值完全匹配,而列2只需要包含引用表中的字符串

  • 要检查的表 *

| 色谱柱1|色谱柱2|图案_已满|
| - ------|- ------|- ------|
| A类|异叶草|正确|
| A类|静坐|错误|
| 乙|异叶草|错误|
| 乙|静坐|正确|
| ...|...|...|

  • 参考表 *

| 列1_模式(列A)|列2_模式(B列)|
| - ------|- ------|
| A类|伊普苏姆|
| A类|阿梅特|
| 乙|悲痛|
到目前为止,我使用的是下面的公式,它需要为引用表(位于选项卡"REF_Tab"中)的每一行提供一个手动OR组件:

OR(
AND([@[Column1]]='REF_Tab'!$A$2;ISNUMBER(SEARCH('REF_Tab'!$B$2;[@[Column2]])));
AND([@[Column1]]='REF_Tab'!$A$3;ISNUMBER(SEARCH('REF_Tab'!$B$3;[@[Column2]])));
AND([@[Column1]]='REF_Tab'!$A$4;ISNUMBER(SEARCH('REF_Tab'!$B$4;[@[Column2]])));
)

是否有一种方法可以使这个公式更有效,例如,通过查询引用表的列而不是查询每行的单个字段,或者通过使用矩阵公式?
挑战在于,公式需要检查Column1中相同值的多个模式(如示例引用表中所示),因此简单的VLOOKUPVLOOKUP无法工作。

bxfogqkk

bxfogqkk1#

可以试试-

=OR(COUNTIFS(B2,"*"&FILTER($F$2:$F$4,$E$2:$E$4=A2)&"*"))

对于动态溢出输出,请尝试-

=MAP(A2:A5,B2:B5,LAMBDA(x,y,OR(COUNTIFS(y,"*"&FILTER($F$2:$F$4,$E$2:$E$4=x)&"*"))))

为避免误报,请使用***搜索***方法。

=MAP(A2:A5,B2:B5,LAMBDA(x,y,OR(ISNUMBER(SEARCH(FILTER($G$2:$G$4,$F$2:$F$4=x),y)))))

krcsximq

krcsximq2#

一个选项是XLOOKUP(),使用通配符Assert子字符串is具有前导/尾随空格:

C2中的公式:

=OR(XLOOKUP(" *"&F$2:F$4&" *"," "&B2&" ",A2,0,2)=E$2:E$4)

或者使用BYROW()一次性动态地将其溢出,以考虑两列:

C2中的公式:

=BYROW(A2:B5,LAMBDA(x,OR(XLOOKUP(" *"&F2:F4&" *"," "&DROP(x,,1)&" ",TAKE(x,,1),0,2)=E2:E4)))

相关问题