我需要比较两列中的文本,以确定每列中是否出现相同的关键字。
例如
- L 列可以
Operational A, Operational B, Operational C, Community 1, Other, Standard
- 而第 N 列中的文本可以是
xxxx Operational, xxxx Community, xx Standard xx
等等(xxx 是其他词)。
因此我想弄清楚如何比较 L10 和 N10(例如),如果两者都包含单词“operational”,或者都包含“community”,或者都包含“standard”,则返回“OK”,如果不包含则返回“Change”。
谢谢
答案1
假设我读得正确,那么这应该可行:=IF(OR(AND(ISNUMBER(SEARCH("Operational",L2)),(ISNUMBER(SEARCH("Operational",N2)))),AND(ISNUMBER(SEARCH("Community",L2)),(ISNUMBER(SEARCH("Community",N2)))),AND(ISNUMBER(SEARCH("Standard",L2)),(ISNUMBER(SEARCH("Standard",N2))))),"OK","Change")
只需将 L2/N2 更改为您需要的行引用。
答案2
另一个选项用于SUMPRODUCT
根据 L 和 N 检查列表,并仅计算单词与两者匹配的情况。
=IF(SUMPRODUCT(IFERROR(FIND({"Operational","Community","Standard"},L1)*FIND({"Operational","Community","Standard"},N1),0))>0,"OK","Change")
该方法的工作原理是查找 L1 中的每个关键字并构建匹配字符索引的数组。如果未找到匹配项,则将错误值存储在数组中。因此,如果 L1 包含Operational A
,FIND({"Operational","Community","Standard"},L1)
则返回数组,{1,#VALUE!,#VALUE!}
因为在 L1 中的第一个字符索引处找到了“Operational”,未找到“Community”,也未找到“Standard”。对 N1 重复此搜索,并将得到的数组成对相乘。例如,如果 N1 为xxxx Operational
,则结果为数组{1,#VALUE!,#VALUE!}*{6,#VALUE!,#VALUE!}
,它等于{6,#VALUE!,#VALUE!}
。如果总和为零,则在两者中均未找到关键字。
IFERROR
将数组中的错误转换为0
,并对SUMPRODUCT
结果数组求和。如果总和大于 0,这是因为在 L1 和 N1 中都发现了一个关键字。