Я хотел бы сравнить две таблицы Excel
Оба имеют одинаковые столбцы в одинаковом порядке, но не одинаковые строки.
У меня есть электронная таблица с 1000 строк и 50 столбцами, включая уникальный идентификатор для каждой строки и личные данные (адрес, номер телефона и т. Д.).
Я хочу сравнить его с той же базой, извлеченной год назад.
Моя цель - знать все изменения (например, кто-то, кто изменил свой адрес).
Я попытался с электронной таблицей (как объяснено здесь: Сравните два файла Excel ), но это не работает, потому что в моем «новом» файле у меня есть новые строки, и у меня есть несколько строк в старом файле, которых нет в новом.
Таблица сравнивается с номером строки Excel. Можно ли сравнить с первым столбцом (уникальный идентификатор)?
Вот очень упрощенный пример: https://filebin.net/g4w98251y9mfwug6
Есть два листа, представляющие мои две таблицы.
Как вы можете видеть, оба имеют одинаковые столбцы, но:
- На обоих листах есть строки без изменений (все строки одинаковые)
- Есть строки, которые есть на обоих листах, но есть изменения (в моем примере оранжевым цветом)
- Есть строки, которые есть только в декабрьском листе (мне не нужно определять эти строки)
- Есть строки, которые есть только в январском листе (оранжевым на моем примере)
Оранжевый цвет - именно то, что я хочу, но в этом примере я могу сделать это вручную: сравнивая декабрь и январь. В реальных таблицах я не могу сделать это вручную, так как слишком много изменений, данных, строк, столбцов и т. Д., И я буду делать это ежемесячно.
Существует только один столбец, который никогда не может измениться: столбец А.
Ответы:
Удобно, что ваша электронная таблица использует 50 столбцов, потому что это означает, что доступны столбцы № 51, № 52,…. Ваша проблема довольно легко решается с помощью «вспомогательного столбца», который мы можем поместить в столбец
AZ
(который является столбцом № 52). Я буду считать , что строка 1 на каждом из листов содержит заголовки (на словаID
,Name
,Address
и т.д.) , поэтому вам не нужно сравнивать те (так как ваши столбцы в том же порядке , в обоих листах). Я также предполагаю, чтоID
(уникальный идентификатор) находится в столбцеA
. (Если это не так , то ответ становится немного немного более сложным, но все же довольно легко.) В ячейкеAZ2
(доступной колонки, в первой строке , используемой для передачи данных), введитеперечисляя все клетки от до
B2
концаAX2
.&
является оператором конкатенации текста, поэтому, еслиB2
содержитAndy
иC2
содержитNew York
, тоB2&C2
будет оцениваться вAndyNew York
. Аналогично, приведенная выше формула объединит все данные для строки (исключаяID
), что даст результат, который может выглядеть примерно так:Формула является длинной и громоздкой для ввода, но вам нужно сделать это только один раз (но прежде чем вы это сделаете, см. Примечание ниже). Я показал это,
AX2
потому что КолонкаAX
- это колонка № 50. Естественно, формула должна охватывать все столбцы данных, кромеID
. Более конкретно, он должен включать каждый столбец данных, который вы хотите сравнить. Если у вас есть столбец для возраста человека, то он (автоматически?) Будет разным для всех, каждый год, и вы не захотите, чтобы об этом сообщали. И, конечно, вспомогательный столбец, содержащий формулу объединения, должен находиться где-то справа от последнего столбца данных.Теперь выберите ячейку
AZ2
и перетащите ее вниз через все 1000 строк. И сделать это на обоих листах.Наконец, на листе, где вы хотите, чтобы изменения были выделены (я думаю, из того, что вы говорите, что это более свежий лист), выберите все ячейки, которые вы хотите выделить. Я не знаю, является ли это просто столбцом
A
, или просто столбцомB
, или всей строкой (т. Е.A
СквознойAX
). Выберите эти ячейки в строках со 2 по 1000 (или там, где ваши данные могут в конечном итоге достичь), перейдите в «Условное форматирование» → «Новое правило ...», выберите «Использовать формулу для определения, какие ячейки форматировать», и введитев «Формат значения, где эта формула истинная коробка». Он берет
ID
значение из текущей строки текущего («января 2018 года») листа (в ячейке$A2
), ищет его в столбцеA
предыдущего («декабря 2017 года») листа, получает объединенное значение данных из этой строки и сравнивает его к объединенному значению данных в этой строке. (Конечно,AZ
это вспомогательный столбец,52
это номер столбца вспомогательного столбца и1000
последняя строка на листе «Декабрь 2017», которая содержит данные - или несколько выше; например, вы можете ввести,1200
а не беспокоиться о точности.) Затем нажмите «Формат» и укажите необходимое условное форматирование (например, оранжевая заливка).Я сделал пример с несколькими строками и несколькими столбцами данных со вспомогательным столбцом в столбце
H
:Обратите внимание, что ряд Энди окрашен в оранжевый цвет, потому что он переехал из Нью-Йорка в Лос-Анджелес, а ряд Дебры окрашен в оранжевый цвет, потому что она - новая запись.
Примечание. Если строка может иметь значения, такие как
the
иreact
в двух последовательных столбцах, и это может измениться в следующем году наthere
иact
, это не будет отражено как разница, потому что мы просто сравниваем объединенное значение, и этот (thereact
) одинаково на обоих листах. Если вас это беспокоит, выберите символ, который вряд ли когда-либо будет в ваших данных (например,|
), и вставьте его между полями. Таким образом, ваш столбец помощника будет содержатьв результате получаются данные, которые могут выглядеть так:
и об изменении будет сообщено, потому что
the|react
≠there|act
. Вы, вероятно, должны быть обеспокоены этим, но, исходя из того, каковы ваши столбцы на самом деле, у вас может быть причина быть уверенным, что это никогда не будет проблемой.Как только вы это заработаете, вы можете скрыть вспомогательные столбцы.
источник
Перейдите на вкладку «Вид» и нажмите «Новое окно». Перейдите в новое окно и нажмите рядом. Вы можете синхронизировать прокрутку, нажав Синхронная прокрутка. Проверьте прикрепленное изображение:
Синхронная прокрутка дает вам преимущество одновременной прокрутки различных таблиц. Переключение кнопки позволит вам одновременно просматривать и прокручивать только один лист.
источник
Итак, вы можете сделать одну из двух вещей.
1.- Решение OOTB состоит в том, чтобы перейти к «Данные» -> «Инструменты данных» -> «Удалить (это прямой перевод с испанского) Дубликаты». Таким образом, вы должны добавить обе таблицы, и вы получите только те данные, которые были изменены, и только уникальные. Поэтому, чтобы отфильтровать использование
CountIf
ваших уникальных идентификаторов, отмените выбор того, что было засчитано как 1. Упорядочить по уникальному идентификатору, и вы четко увидите, что было изменено.2.-Используйте эту формулу
IF(Index("rangetoreturn";Match("CellofUniqueID";"Rangeofuniqueidtolookinto";0))<>"OneOftheCellthatcontainsthesameasRangeToReturn";"Info Has Changed";"InfoHasNotChanged")
Эту формулу можно перетащить вправо и вниз. Таким образом, вы получите таблицу с условием if с тем же количеством строк, что и у таблицы CellofUniqueID. Позиция «Информация изменилась», скажет вам, какая ячейка в другой таблице изменила свое содержание. Поэтому используйте эту формулу на новом листе и создайте новую таблицу. Затем посмотрите на фильтры и отмените выбор «InfoHasNotChanged» (или любое другое слово, которое вы хотите использовать).
«rangetoreturn» и «Rangeofuniqueidtolookinto» взяты из одной таблицы (или листа), а «CellofUniqueID» - из другой таблицы.
ура
источник
CountIf
и фильтровать по 2 вхождениям, если у вас 1 вхождение означает, что информация не изменилась. Наконец, закажите свой уникальный идентификатор. Также добавьте флаг в новый столбец столбцов, чтобы вы знали, из какой таблицы пришла ваша информация. Теперь вы можете ясно увидеть, в чем различия