Как сравнить список строк с другим списком строк в Excel?

Я пытаюсь выяснить, существуют ли какие-либо различия между списком данных с другим. Чтобы строка данных соответствовала другой строке, строка должна иметь одинаковые значения в соответствующем столбце. Строки сами по себе не должны быть в каком-либо конкретном порядке. В частности, я имею дело с списком деталей, где есть номера деталей, описания и т. Д. Я пытаюсь выяснить, отличны ли какие-либо строки данных от строк данных из другого списка.

Я нашел Сравнить два листа с использованием массивов , которые могут иметь ответ на мою проблему, но мне трудно понять, как адаптироваться к моему коду из-за неопытности в Visual Basic.

Я смог заставить его работать для одного столбца данных, сравнивая один столбец данных с одного листа на другой, но не может заставить его сравнивать целые строки данных.

Вот пример того, как я хочу, чтобы это работало:

Sheet 1 Sheet 2 Column 1 Column 2 Column 1 Column 2 Row 1 22a 33 11 11 Row 2 22a 33a 22a 33 Row 3 55 22b 55 23b 

Код в ссылке скажет вам, что не на листе 1, а на листе 2 и наоборот. В этом примере я хотел бы, чтобы код сказал мне, что Лист 1 Строка 2 и Лист 1 Строка 3 не указаны в Листе 2, а Лист 2 Строка 1 и Лист 2 Строка 3 не указаны в Листе 1 (Лист 1 Ряд 1 и Лист 2 Строка 2).

Если это нормально, вы можете сделать это без VBA, используя следующую формулу:

 ={IF(IFERROR(MATCH(A1&"|"&B1;Sheet7!$A$1:$A$3&"|"&Sheet7!$B$1:$B$3;0);-1)=-1;"Unique";"")} 

Предполагая, что каждая из ваших таблиц начинается в A1 (чтобы таблицы с тремя записями охватывали A1: B3), и вводя эту формулу в C1 (и копируя ее), нажмите CTRL + SHIFT + ENTER, когда вводите формулу для создания массива формула, это покажет слово «Unique» в столбце C, если пара в этой строке на этом листе не находится ни в одной из пар строк на листе 2.

Затем вы можете использовать условное форматирование, чтобы выделять уникальные строки, фильтровать таблицы, чтобы они включали только уникальные строки или какой-либо другой способ делать то, что вам нужно.

ПРИМЕЧАНИЕ 1: Я ввел свои номера в Sheet6 и Sheet7 вместо 1 и 2. Формула, написанная выше, переходит в Sheet6.

ПРИМЕЧАНИЕ 2. Использование моего языка; а не как разделитель функций, поэтому, если вы используете, вам нужно это изменить.

ПРИМЕЧАНИЕ 3. Вам нужно будет расширить диапазоны Sheet7! $ A $ 1: $ A $ 3 и Sheet7! $ B $ 1: $ B $ 3, если ваш набор растет (это произойдет автоматически, если новые строки будут вставлены между старыми). Лучшим по-прежнему является создание именованных диапазонов для каждого из 4 столбцов, обмен ссылками с ними и управление именованными диапазонами вместо формул.

ПРИМЕЧАНИЕ 4. Если ваш набор данных содержит символ «|», вам также необходимо изменить его, чтобы соответствовать некоторому символу, которого вы точно не имеете.


В качестве альтернативы вы можете в столбце C на каждом вводе ввести (при первом вводе в C1)

 =A1&"|"&B1" 

и скопируйте это, затем запустите решение из вашего скопированного примера, используя этот столбец C вместо A1 и B1.

Interesting Posts

добавление библиотеки для создания файла excel

Excel индекс соответствует нескольким результатам ряда

как выбрать ячейку ниже на другом листе, чтобы заполнить ячейку рядом с одной на вашем листе

Как я могу объединить формулу INDEX MATCH с одного листа, основанного на другом?

Перемещение объекта с ошибкой в ​​функции VBA

VBA Excel WebBrowser, как сбросить ReadyState до. Нажмите из кода?

Как копировать столбцы с одного листа на другой с помощью VBA в Excel?

Как разбирать строку ячейки Excel с помощью регулярного выражения в макросе VBA

Использование VBA для скрытия строк в Excel, если значение возвращает 0

Средство для тестирования алгоритмов?

Вычисление медианы с использованием агрегата

Ошибка выполнения VBA Excel VBA '1004'

Импортируйте * txt в рабочий лист и назовите его с именем файла * txt

Действительно ли pandas read_excel открывает excel?

Область поиска в поисках нескольких терминов затем продолжит

Давайте будем гением компьютера.