我想检查表中两列的组合是否符合特定模式。
所有有效组合均记录在相应的参考表中。
列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中相同值的多个模式(如示例引用表中所示),因此简单的VLOOKUP
或VLOOKUP
无法工作。
2条答案
按热度按时间bxfogqkk1#
可以试试-
对于动态溢出输出,请尝试-
为避免误报,请使用***搜索***方法。
krcsximq2#
一个选项是
XLOOKUP()
,使用通配符Assert子字符串is具有前导/尾随空格:C2
中的公式:或者使用
BYROW()
一次性动态地将其溢出,以考虑两列:C2
中的公式: