3

У меня есть файл Excel, который содержит два листа. Оба содержат некоторые данные. Я должен найти общие записи двух листов (т.е. записи, которые присутствуют на обоих листах). Я могу сделать это вручную, но есть ли инструменты / функции, которые существуют для этого?

8 ответов8

2

Возможно, вы сможете использовать VLOOKUP в зависимости от сложности вашей ключевой структуры.

(Выполните поиск на веб-сайте поддержки Microsoft Office для VLOOKUP.)

2

Вы можете скрыть это .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, поскольку он может различать каталоги.

Надеюсь это поможет.

2

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

    =IF('Sheet1'!A1<>'Sheet2'!A1,"Different", "-")

сравнить изменения, где "Лист1" и "Лист2" - это имена ваших листов.

1

Есть несколько формул, которые вы можете использовать в 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 и выполнить там базовый запрос. (Дайте мне знать, если вам нужны подробности о том, как это сделать.)

0

Есть специализированный инструмент. Excel Diff выводит результат визуально. http://www.suntrap-systems.com/ExcelDiff/

Попробуйте рассмотреть, потому что есть пробная версия.

НТН

0

Просто мои два цента, так как никто здесь не упомянул об этом, вы также можете попробовать Excel Compare от Formula Software (это платное программное обеспечение, но с бесплатным пробным периодом).


В любом случае, на мой взгляд, лучшее решение, возможно, уже указано в комментариях к вашему вопросу: экспортируйте в CSV, а затем используйте любой инструмент сравнения, который вам нравится сравнивать, просто! (список diff-инструментов здесь)

0

Это не бесплатно и может быть излишним для ваших нужд, но Beyond Compare проделал большую работу по сравнению листов Excel для меня.

0

Этот инструмент CompareIt хорошо показывает визуальные различия. Он знает Excel изначально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .