【问题标题】:Excel: Return value if cell contains a certain textExcel:如果单元格包含特定文本,则返回值
【发布时间】:2016-05-19 22:08:45
【问题描述】:

有 2 个单元格。

一个包含字符串

“AA BB CC DD”

第二个

“AABBCCCDD”

当单元格包含“BB”时,我想制作返回值“true”的公式。如果我使用查找或搜索公式,它会为所有公式返回 true。然而,还有另一个条件。我想用这个:

=IF(IS.NUMBER(SEARCH("BB".....

搜索由 2 个主要参数 -> 内容和位置组成。我想将 2 个值添加到“什么”中。比如:

如果单元格包含“BB”或“BeBe”,那么...

我希望它很清楚。

谢谢

【问题讨论】:

  • 你试过AND():=AND(ISNUMBER(SEARCH(...)),ISNUMBER(SEARCH(...)))吗?
  • 我本来打算建议=IF(OR(SEARCH("bb",A1),SEARCH("bebe",A1)),"Yes","No"),但是当找不到bbbebe 时,它会给出#Value 错误。所以你可以考虑到这一点,也许可以使用IfError()

标签: excel excel-formula


【解决方案1】:

您可以通过传递字符串数组{} 并包装在AND() 中来搜索多个字符串:

=AND(ISNUMBER(SEARCH({"AA","BB"},A1)))

或者,如果您需要至少一个匹配项,而不是全部匹配项,则可以将其包装在 OR() 中:

=OR(ISNUMBER(SEARCH({"AA","BB"},A1)))

【讨论】:

  • 这比我的好,打字少。我会选择这个。干得好。
  • 我不知道它会正确地迭代数组,我首先在我的数据上尝试了 AND 并得到了我认为应该的结果,然后我进一步观察并意识到你是 100% 正确的,因此我学到了一些东西。希望我能给超过 1 票,只是为了让我学到一些东西。
【解决方案2】:

将其包装在 SUMPRODUCT 中:

=SUMPRODUCT(1*(ISNUMBER(SEARCH({" BB ","BeBe"},A1))))>0

SEARCH() 不区分大小写,因此它会为“BEBE”返回 true 如果您想区分大小写,请使用 FIND:

=SUMPRODUCT(1*(ISNUMBER(FIND({" BB ","BeBe"},A1))))>0

【讨论】:

  • 为什么这个公式在没有找到条件之一时不会抛出错误?在我上面的评论中,使用Or() 进行两次搜索,如果没有找到,将返回#VALUE
  • @the ISNUMBER() 这样做,如果它抛出一个错误,它不是一个数字,因此是 FALSE,当乘以 1 时返回 0。
  • @MartinJanáč 如果是我,我会使用另一个答案,它打字更少,效果也很好。
猜你喜欢
  • 2023-03-13
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 2021-01-11
相关资源
最近更新 更多