基于列中文本代码的分类

我有两列代码涉及各种产品。 这是一个用“ – ”分隔的三部分代码。 3个部分中的每一个的长度都不是恒定的,并且是字母数字的。

需要的是我必须根据4个标准对它们进行分类:将B中的每个代码与A进行比较,反之亦然,并将它们分类如下,并在图像中:1.完全匹配的代码2.前缀或后缀更改代码3.完全新代码

但似乎有一个复杂的。 在两列中的代码不一定是sorting的,在另一列中的任何地方都可以匹配,是否有方法查找文本,然后执行比较function。 我知道这会带来很多麻烦 – 我的想法是查找值,然后传递参数来获得类别..再次感谢! – user1087661 1小时前

请帮我实现这一点。 有没有任何公式检查数组和查找function? 非常感谢支持。

代码分类

你可以使用splitfunction并select case来处理你的问题。 我假设你知道如何使用UDF。

 Function CompareCode(Text1, Text2, Optional Delim = "-") Dim T1, T2, CC T1 = Split(Text1, Delim) T2 = Split(Text2, Delim) CC = (T1(0) <> T2(0)) * 100 + (T1(1) <> T2(1)) * 10 + (T1(2) <> T2(2)) * 1 CC = Format(-CC, "000") Select Case CC Case "000": CompareCode = "Same code" Case "100": CompareCode = "Prefix changed" Case "010": CompareCode = "Base changed" Case "110": CompareCode = "Prefix and base changed" Case "001": CompareCode = "Suffix changed" Case "101": CompareCode = "Prefix and suffix changed" Case "011": CompareCode = "Base and suffix changed" Case "111": CompareCode = "Totally new code" Case Else: End Select End Function 

这只是一个部分的答案:

对于第一部分,完全匹配的代码,您可以使用一个简单的查找公式,例如SUMIFS() ,您将B列中的项目与列A中的整个集合相匹配。

对于其他两个要求,如果我想通过公式来做到这一点,那么我将使用LEN()LEFT()RIGHT()公式将前缀,基本和后缀提取到单独的列中。 为A组和B组做这个。

从这个angular度来看,find你的配对组应该变得相当简单。