【问题标题】:Excel: Compare 2 cell values; If 5 or more consecutive characters matches [closed]Excel:比较 2 个单元格值;如果 5 个或更多连续字符匹配 [关闭]
【发布时间】:2020-11-24 12:31:00
【问题描述】:

我正在尝试将一个单元格与其他值列表进行比较。

单元格 A2 = 斯德哥尔摩

与列表 = 斯德哥尔摩 斯德哥尔摩 斯德哥尔摩C

该单元格基于用户输入,因此有时基于个人用途可能会显示 Stockh 或 Stockholm City。因此,如果单元格 A2 和列表之间至少有 5 个连续字符匹配,我想要一个可以比较并给我 TRUE 的函数。

例如Stockh 在本例中与所有这些匹配。

这有什么好的功能吗?还是我需要做一个 hack/bodge 才能让它工作?

【问题讨论】:

  • 使用 VBA,您可以创建一个 UDF 来做您想做的事。使用普通的 excel 公式,您可以只比较 A2 中的整个字符串或特定的 5 字符字符串,但不是所有可能的 5 字符字符串,

标签: excel excel-formula compare


【解决方案1】:

这是我根据您提到的内容草拟的一个简单示例:

E1中的公式:

=IF(LEN(A1)>4,SUMPRODUCT(--ISNUMBER(SEARCH(LEFT(A1,5),C1:C3)))>0)

或者,根据您的评论,我们可以还原逻辑并从单元格A1 中的列表中查找所有子字符串:

=SUMPRODUCT(--ISNUMBER(FIND(LEFT(C1:C3,5),A1)))>0

其中WAAR 代表TRUE

【讨论】:

  • 谢谢!如果效果好!我可以将其调整为不只是从左侧看吗?有时用户输入“(斯德哥尔摩)”或“->斯德哥尔摩”。它可以在单元格中的任何地方查找,而不仅仅是从左侧吗?
  • 好吧,在这种情况下,我们可以恢复理论并在单元格A1 中查找列表的前 5 个字符。我已经编辑了答案以反映@JerryOnmalm。
  • 看起来不错,还为 (C1:C3) 和 A1 添加了一个 UPPERCASE() 以放弃区分大小写,现在看起来非常好。谢谢您的帮助! :D
  • @JerryOnmalm。要放弃区分大小写,您应该使用SEARCH() 而不是FIND()。此外,如果这已经回答了您的问题,您应该通过单击答案左侧的复选标记来接受它。
  • 谢谢,网站新手,所以我不知道。再次感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 2019-12-22
相关资源
最近更新 更多