如何识别不包含*任何其他字符串列表的字符串


0

我有A列和B列带文字。我想将列A复制到列C并删除在列B 中等于或包含值的行。

我有这个公式,但它不会删除包含行,只匹配:

=ARRAYFORMULA(IF(ISNA(MATCH(A:A,B:B,0)),A:A,""))

任何公式/查询?

屏幕截图

(请注意,我想C2是空白的,因为A2sevdaa包括 sevdaB3)。)


快速浏览一下,它是A列中的“sevdaa”和B列中的“sevda”,这也是它在C列中显示的原因。
T0t3sMcG0t3s

@ T0t3sMcG0t3s我知道。我不希望“sevdaa”被复制,因为它包含“sevda”
goksel 2015年

Answers:


1

类型

=IF(AND(A1<>"", PRODUCT(--ISERROR(FIND(B$1:B$3,A1)))>0), A1, "")

进入C1并输入Ctrl+ Shift+ Enter。然后拖动/填充。

  • FIND(B$1:B$3,A1)检查细胞的每个单词/名称是否B1通过B3 在单元的字/名称中找到A1。如果匹配则将评估为整数偏移量,如果不匹配则评估为#VALUE!错误。
  • ISERROR(…) 如果内部公式是错误(即,如果没有匹配)则评估为TRUE,否则评估为FALSE(即,如果匹配)。
  • --true转换为1,FALSE为0所以--ISERROR(FIND(B$1:B$3,A1))将全1,如果A1不包含B1B2B3,但如果有任何字符串都会举行一些0 B1:B3出现在A1
  • 所以PRODUCT(…)是1,如果所有的数字都是那些,和0,如果其中任何一个都是零。
  • 因此,如果A1不是空白,但它不包含任何B字符串,则在Column中显示该单词/名称C
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.