【发布时间】:2018-12-12 09:46:37
【问题描述】:
我在一个 Excel 电子表格中有两个列表。
第一个列表有字符串,如
1234 blue 6 abc
xyz blue/white 1234
abc yellow 123
另一个列表包含第一个列表的子字符串
yellow
blue/white
blue
结果
1234 blue 6 abc blue
xyz blue/white 1234 blue/white
abc yellow 123 yellow
现在我需要某种匹配公式来将第二个列表中的正确值分配给第一个。问题是,没有特定的模式来确定颜色子字符串的位置。另一个问题是,这些值并不是完全唯一的。正如我上面的示例所示,查找需要按顺序进行(在检查“蓝色”之前检查“蓝/白”)。
我使用match、find 等公式,也使用wildcards *,但没有得出任何结果。
在 SO 上提出的类似问题涵盖了相反的情况 How to find if substring exists in a list of strings (and return full value in list if so)
如有任何帮助,我们将不胜感激。一个公式会很酷,但使用 vba 也可以。
【问题讨论】:
-
你尝试过 VBA 吗?
-
您可以使用
find()工作表函数来确定子字符串(如blue或yellow是否存在于完整字符串中(如1234 blue 6 abc或abc yellow 123)。跨度> -
@Error1004 是的,VBA 可以轻松解决这个问题,我只是想知道公式解决方案会是什么样子。我没有想到
AGGREGATE函数,因为 user10779473 使用了它。我可以将 VBA 代码作为单独的答案发布。
标签: excel string excel-formula substring match