vba: сравнить две строки (две ячейки), каждая из которых содержит перечисленные элементы, разделенные запятой - PullRequest
0 голосов
/ 01 октября 2018

Я импортирую SQL-экстракт в Excel.После импорта в Excel есть пять столбцов, а column2 содержит строку (перечисленные элементы, разделенные запятой).Пример:

Column0 | Column1 | Column2      | Column3 | Column4          | Column5
Name    | Group   | ItemsPlanned | Item    | AllGroupItemsRun | Status
Base1   | ABC1    | 1,2,3        | 1       | 1,2              | OK
Base1   | ABC1    | 1,2,3        | 2       | 1,2              | NOK
Base0   | DEF0    | -            | -       | -                | UNKNOWN
Base4   | GHI3    | 9            | 9       | 9                | OK
Base8   | LMN5    | 4            | 8       | 8                | OK
Base2   | XYZ7    | 4,6          | 4       | 4,5              | NOK
Base2   | XYZ7    | 4,6          | 5       | 4,5              | OK

Мне нужно выяснить:

Какие элементы отсутствуют? -> Столбец6

Какие элементы могут бытьнайден дополнительно? -> Column8

Обе ячейки (Column6 и Column8) указывают на один и тот же вопрос: Как сравнить две ячейки, каждая из которых содержит перечисляемые элементы, разделенные запятой?

Итак, вот пример (вывод) Cell6 и Cell8:

Column0 | Column1 | Column2      | Column3 | Column4          | Column5       | Column6     | Column7      | Column8         | Column9
Name    | Group   | ItemsPlanned | Item    | AllGroupItemsRun | ItemStatus    | MissingItem | Coverage [%] | AdditionalItems | AdditionalCoverage [%]
Base1   | ABC1    | 1,2,3        | 1       | 1,2              | OK            | 3           | 67%          |                 | 0%
Base1   | ABC1    | 1,2,3        | 2       | 1,2              | NOK           | 3           | 67%          |                 | 0%
Base0   | DEF0    | -            | -       | -                | UNKNOWN       | -           | 100%         | -               | -
Base4   | GHI3    | 9            | 9       | 9                | OK            |             | 100%         |                 | 0%
Base8   | LMN5    | 4            | 8       | 8                | OK            | 4           | 0%           | 8               | 100%
Base2   | XYZ7    | 4,5          | 4       | 4,5              | NOK           | 5           | 50%          | 6               | 50%
Base2   | XYZ7    | 4,5          | 6       | 4,5              | OK            | 5           | 50%          | 6               | 50%

В настоящее время у меня есть несколько функций, которые понадобятся для каждого цикла около 1/2 часа на 2000 строк... Что привело к моей проблеме: это слишком долго .

Я не присоединяю свое собственное решение, потому что оно слишком длинное, но я могу предоставить свой код для Column4, Column6-Column9всякий раз, когда вы ищете это.

Я не нашел ничего похожего, что уже обсуждалось здесь.

Большое спасибо заранее за вашу поддержку и ваши усилия, которые вы вложили в эту тему.

Ура!

...