2015-06-18 4 views
2

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

Я нашел Compare two sheets using arrays, который может иметь ответ на мою проблему, но мне трудно понять, как адаптироваться к моему коду из-за неопытности в 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).

+0

Я разместил 2 решения ниже. Один не использует VBA, другой - это простая работа с использованием кода в примере. Чтобы сделать это, изменив код для проверки парных строк, я ДУМАЮ, что вам придется использовать код в вопросе, а не в принятом ответе. В принятом ответе используется Match, whitch, я считаю, нужно ссылаться на реальный диапазон excel. Если вы используете код ответа на вопрос, он будет работать медленно на большом наборе данных (как и мое решение формулы), но его можно изменить для работы с парами столбцов. Я должен сделать это еще на один день, если вам это действительно нужно. – gudal

+0

И если вы удовлетворены, не забудьте отметить как принятый ответ :) – gudal

ответ

1

Если это нормально вами, вы можете сделать это без 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.

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

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

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

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

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


В качестве альтернативы вы можете в столбце С на каждом cheet ввести (предполагая, что первая запись в С1)

=A1&"|"&B1" 

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

+0

Надеюсь, что @gudal позволит мне исправить этот тонкий ответ формулы (+1), чтобы два выхода читались по запросу в OP. Замените '' unique "," ")' на '' Не в листе 2 "," Матчи лист 2, строка "и MATCH (A1 &" | "& B1, Sheet2! $ A $ 1: $ A $ 3 &" | "& Sheet2! $ B $ 1: $ B $ 3,0)) 'Снова помните, чтобы нажимать' Ctrl' + 'Shift' +' Enter' – Clif

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