У меня есть файл Excel, который содержит два листа. Оба содержат некоторые данные. Я должен найти общие записи двух листов (т.е. записи, которые присутствуют на обоих листах). Я могу сделать это вручную, но есть ли инструменты / функции, которые существуют для этого?
8 ответов
Возможно, вы сможете использовать VLOOKUP в зависимости от сложности вашей ключевой структуры.
(Выполните поиск на веб-сайте поддержки Microsoft Office для VLOOKUP.)
Вы можете скрыть это .csv, и есть много вариантов
Если у вас есть доступ к Unix, вы можете запустить diff <file1> <file2>
или sdiff <file1> <file2>
Если у вас есть доступ к TortoiseSVN
TortoiseGit
или Eclipse
, вы можете различить эти два файла, и различия будут отображены на экране. Для Tortoise
выберите два файла и нажмите Diff
. Для eclipse
перетащите эти два файла в графический интерфейс, выберите и выберите diff
Если файлы не очень большие, попробуйте - http://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.html Вы можете поместить свой текст в два поля и запустить diff, используя проверенный алгоритм diff [Myer diff]
Если вы Windows, вы можете использовать WinDiff или WinMerge - http://winmerge.org/ . Я лично использую WinMerge, поскольку он может различать каталоги.
Надеюсь это поможет.
Если ячейки будут находиться в одном и том же месте на каждом листе, вы можете использовать третий лист, а затем заполнить и указать следующую формулу:
=IF('Sheet1'!A1<>'Sheet2'!A1,"Different", "-")
сравнить изменения, где "Лист1" и "Лист2" - это имена ваших листов.
Есть несколько формул, которые вы можете использовать в Excel, в зависимости от того, что вы хотите сделать. Для всех формул требуется ключ с одним столбцом в обеих таблицах, которые они используют для сопоставления строк. Если у вас нет ключа с одним столбцом, вам нужно его создать. Например, если ваши данные находятся в диапазоне от B2 до H500, а ключ - это первые три столбца, создайте ключ в один столбец в ячейке A2 с =B2&"-"&C2"-"&D2
и скопируйте его в другие строки. Сделайте это в обеих таблицах, и теперь у вас есть ключевой столбец для использования.
Основные две формулы, которые я бы использовал в Excel, - это =COUNTIF(range, criteria)
и =VLOOKUP(lookup_value, table_array, col_index_num, FALSE)
. COUNTIF
подсчитывает, сколько раз criteria
в таблице1 находится в range
table2. Если результат больше нуля, строка находится в обеих таблицах. VLOOKUP
ищет lookup_value
table1 в table_array
table2 и возвращает значение в столбце col_index_num
. Если VLOOKUP
не находит соответствия, он возвращает NA()
.
Если вы хотите увидеть информацию из таблицы 2 в таблице 1, используйте VLOOKUP
. Если вы просто хотите узнать, есть ли строка в обеих таблицах, используйте COUNTIF
.
Если вы не хотите ничего добавлять или изменять существующие таблицы Excel, вы можете связать их с ними в Access и выполнить там базовый запрос. (Дайте мне знать, если вам нужны подробности о том, как это сделать.)
Есть специализированный инструмент. Excel Diff выводит результат визуально. http://www.suntrap-systems.com/ExcelDiff/
Попробуйте рассмотреть, потому что есть пробная версия.
НТН
Просто мои два цента, так как никто здесь не упомянул об этом, вы также можете попробовать Excel Compare от Formula Software (это платное программное обеспечение, но с бесплатным пробным периодом).
В любом случае, на мой взгляд, лучшее решение, возможно, уже указано в комментариях к вашему вопросу: экспортируйте в CSV, а затем используйте любой инструмент сравнения, который вам нравится сравнивать, просто! (список diff-инструментов здесь)
Это не бесплатно и может быть излишним для ваших нужд, но Beyond Compare проделал большую работу по сравнению листов Excel для меня.
Этот инструмент CompareIt хорошо показывает визуальные различия. Он знает Excel изначально.