Выборочно найти дубликаты по столбцам


0

Столбец А имеет идентификатор продукта. Есть 102 других столбца с другими данными. Столбец А будет уникальным, если только некоторые данные не были изменены. В этом случае будет 2 строки с 99% идентичных столбцов, за исключением изменения.

Есть ли способ указать, какие столбцы отличаются в пределах одного и того же идентификатора продукта?

В приведенном ниже примере для идентификатора 2 столбец C является дифференцированием. Для ID: 5 столбец E - это.

spreadsheet screenshot


Вы имеете в виду способ указать, какие строки отличаются? Вопрос не совсем сформулирован, но из вашей ситуации трудно разобраться.
Wutnaut

Я знаю, какие строки являются дубликатами, так как идентификатор совпадает. Нам нужны какие КОЛОННЫ разные. Добавлю изображение выше для уточнения.
Joe Z

Я знаю, как сделать это для 2 столбцов, не знаю, как заставить это работать для 102 столбцов ... В любом случае я делаю это, выделяя 2 столбца, затем в верхней ленте выбираю Условное форматирование - & gt; Выделите правила для ячеек - & gt; Больше правил ... - & gt; Форматировать только уникальные или повторяющиеся значения (выберите уникальные из выпадающего списка). Я надеюсь, что этой информации достаточно, чтобы вы выбрали правильный путь, потому что я быстро достигаю своей глубины превосходства.
Wutnaut

@Wutnaut, похоже, не входит в сферу действия ID. Также есть 13171 ряд.
Joe Z

Ну, если это возможно, это через условное форматирование. 102 столбца с 13 тысячами строк, и вы хотите показать, какие уникальные ... удачи
Wutnaut

Ответы:


0

Так что это зависит от того, как вы хотите получить свои выходные данные, но что бы я сделал в вашей ситуации, если нет причины, по которой вы не можете, это написать простой макрос в VBA, который просматривает все столбцы и возвращает местоположение другого столбца, создает ссылку на эту ячейку или выделяет различные значения.

Макрос может выглядеть следующим образом:

  1. Получить значение в текущей ячейке
  2. Проверяйте ячейки выше и ниже, пока не появится другое значение. Это дает вам ваш диапазон строк
  3. Для каждого столбца после первого сравните эти строки
  4. Если есть разница, выделите эти ячейки (например, вы также можете вернуть букву или номер столбца, например, D = 4)

В идеале я хотел бы получить вывод в виде другого столбца (103-го), в котором будут перечислены заголовки столбцов, которые содержат различия. Таким образом, в столбце F будет указан список [null, C, C, null, null, E, E]
Joe Z

Хорошо. Поэтому было бы достаточно просто написать макрос для этого. Я дам вам этот как пища для размышлений, но если вы решите пойти по этому пути и у вас есть вопросы, дайте мне знать
Aliden

Что мы сделали, импортировали это в SQL и запустили GROUP BY для ID, затем CONCAT отыскал уникальные значения в каждой группе, используя определенный символ. Любое место, где есть этот символ, означает объединение разных данных. Определенно не путь Exel, но для меня самый быстрый путь к решению. Было бы интересно увидеть, как это делается в VBA.
Joe Z

0

Нажмите в ячейке B2, Создайте условный формат с формулой

=OR(AND($A1=$A2,B1<>B2), AND($A2=$A3,B2<>B3))

как это:

formatting rule

и примените его ко всей вашей области данных:

Rules Manager (shows “Applies To”)

Вот результат:

the worksheet


Это практично для размера таблицы (102 строки, 13 тысяч строк)?
Joe Z

Я думаю, это будет. Я был бы шокирован, если бы 102 колонки были проблемой; тысячи строк - возможно. Но посмотрите на то, что делает формула - она ​​просто смотрит на ячейку над текущей ячейкой, ячейку ниже и соответствующие три ячейки (та же строка ± 1) в столбце А. Шесть ячеек, четыре сравнения и три логических (логическое значение ) операции - нет причин для этого задыхаться.
Scott

в одном случае (конкретный идентификатор) имеется 175 повторяющихся строк, поэтому каждая проверка должна проверять все остальные 174 строки
Joe Z

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

1
Попробуй уже ... шееш ...
Mike Honey
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.