2016-11-01 2 views
0

У меня есть две колонки с кодами, относящимися к различным продуктам. Это код из 3 частей, разделенный символом «-». Длина каждой из трех частей не является постоянной и является буквенно-цифровой.Категоризация на основе текстового кода в столбцах

Необходимость в том, что я должен классифицировать их в соответствии с 4 критериев: Сравнить каждый из кодов в В против А и наоборот, и классифицировать их все, как показано ниже, и на изображении: 1. точно соответствуют кодам 2. префиксы или суффиксы Изменение кода 3. Полностью новые коды

Однако, как представляется, являются осложнением. Коды в двух столбцах не обязательно сортируются, и в любом другом столбце может быть соответствие, есть ли способ поиска текста, а затем выполнять функцию сравнения. Я знаю, что это открывает множество осложнений - моя мысль - посмотреть на ценность, а затем передать параметры, чтобы получить категорию. Еще раз спасибо !!! - user1087661 1 час назад

Просьба помочь мне в этом. Есть ли какая-либо формула для проверки через массив и функции «Найти»? большое спасибо за поддержку.

Code Categorization

+0

Если не слишком многие из них, организовать их как матрица с первым столбцом значений вниз стороны, а вторые значений столбцов по всем верхней части, а затем использовать @ превосходную функцию Розетты, чтобы сравнить их. Я не знаю из вопроса, сколько из них существует, есть ли дубликаты, и в этом случае нужно ли только сравнивать разные значения? –

ответ

0

Это лишь частичный ответ:

Для первой части, exactely соответствующих кодов, можно использовать простую формулу подстановки, такие как SUMIFS(), где вы соответствие элементов в столбце В, чтобы весь набор в колонке А.

для двух других требований, если я хотел бы сделать это по формуле, то я бы использовать LEN(), LEFT() и RIGHT() формулы для извлечения префикс базы и SUFIX в сен аратные столбцы. Сделайте это как для групп A, так и для B.

Поиск подходящих групп должен стать довольно прямолинейным от этого момента.

+0

Спасибо за ответ! – user1087661

3

Вы можете использовать функцию split и 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 
+0

Удивительный. Спасибо!! – user1087661

+0

Еще раз спасибо за отличный ответ - однако, похоже, это осложнение. Коды в двух столбцах не обязательно сортируются, и в любом другом столбце может быть соответствие, есть ли способ поиска текста, а затем выполнять функцию сравнения. Я знаю, что это открывает множество осложнений - моя мысль - посмотреть на ценность, а затем передать параметры, чтобы получить категорию. Еще раз спасибо !!! – user1087661

+0

@ user1087661 Я в замешательстве ... вы пытаетесь выполнить поиск кода или сравнение кода? вы не можете сделать оба сразу ... – Rosetta

Смежные вопросы