【问题标题】:How to search text within text in nested if condition?如何在嵌套if条件下搜索文本中的文本?
【发布时间】:2019-09-10 22:46:52
【问题描述】:

我正在尝试对列表文本进行分类,该列表文本有时需要精确的文本匹配,有时是文本的一部分,具体取决于我想要对这些文本进行分类。

我已经尝试过 iffind 函数的组合,但是在第三个 if 语句的情况下它不起作用。

=IF(G2="SILVER", "SILVER",IF(G2="COPPER", "COPPER",IF(FIND("BLACK METAL",G2),"COPPER",IF(G2="GUN METAL", "ANT. SILVER", IF(FIND("GUN METAL",G2), "ANT. SILVER", IF(G2="ANT. SILVER", "ANT. SILVER", IF(FIND("ANT. SILVER", G2), "ANT. SILVER",  IF(FIND("MATTE SILVET", G2), "MATTE SILVER", IF(FIND("ROSE GOLD", G2), "ROSE GOLD",   IF(FIND("TIN", G2), "TIN", IF(FIND("WHITE DUSTED ZINK", G2), "TIN", IF(FIND("DARK DUSTED ZINK", G2), "ZINK", IF(G2="ZINK", "ZINK",  IF(FIND("ANT. BRASS", G2), "DYEING",  IF(FIND("SUCCESS 63", G2), "DYEING", IF(FIND("WORN BRASS", G2), "DYEING",   "NONE"))))))))))))))))

finish category

因为我想添加更多类别,所以如果可能的话,我更喜欢使用vlookup 或其他东西。

【问题讨论】:

  • FIND 不返回真/假,它返回找到的文本的位置,或者当没有找到时本质上是一个错误。调整你的逻辑。
  • 如果文本存在,FIND() 将给出数字结果,因此请使用 FIND() > 0 的逻辑测试
  • 能否请您提供要分类的数据样本?
  • 基本上,我想检查 g2 单元格内的文本是什么,如果 g2 = "python" 然后返回 "python" 或者如果 g2 = "Django" 然后返回 "python" 或者如果 g2 包含“蛇”然后返回“动物”或返回“未分类”,这里 g2 有 3 个不同的值,1.python 2.Django python 3.python 蛇 1 它应该返回“python”,2 “python”,3 “动物”希望问题很清楚......注意:我需要检查至少 10 个不同的值,其中一些值将是完全匹配,而其他值将是部分匹配或关键字匹配。谢谢
  • 您能否在问题中包含至少 10 个实际值以及相应类别的分配给每个值,我已准备好答案,但想根据实际情况进行测试示例,为了确保它可以正常工作,在发布之前,只是不想在发布之后接收更改和调整。谢谢。

标签: excel vba excel-formula excel-2007


【解决方案1】:

您是否尝试过 If(Match()) 组合?

=IF(MATCH("*"&"Silver"&"*",G2,0)>=1,"Silver",0)

匹配函数将尝试在您引用的任何单元格中定位单词“Silver”,在本例中为 G2。如果它在该单元格中找到“Ant. Silver”,它将返回“Silver”。显然,这可以建立在此基础上,如果您发现它有任何用处,我可以为您做。

失败了。试试看

=INDEX(A1:A5,MATCH("*"&G2&"*",A1:A5,0),0)

您的不同值在 A1 - A5 内的位置

【讨论】:

  • 谢谢,但我想检查多个条件,有时我需要完全匹配,有时需要部分匹配。可以这样做吗?如果我删除通配符“*”,它会搜索完全匹配吗?你能给我演示一下吗...
  • 使用索引匹配检查我的编辑。这将搜索多个条件,并在适用的情况下生成完全匹配以及部分匹配。实际上....刚刚看到你最新的 1 个 cmets,这对那个没有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 2020-11-04
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
相关资源
最近更新 更多