1

Я пытаюсь объединить два файла Excel, вот структура файлов:

[A] [B]

Я хочу добавить столбец B из одного файла в другой в качестве столбца C, но дело в том, что у них есть несколько строк под A, которые одинаковы в каждом файле, но некоторые строки являются уникальными для каждого файла. Мне нужно, чтобы они были объединены в соответствии с записью в столбце А. Например:

File 1:  
A   | B  
One | 1  
Two | 2

File 2:  
A    | B  
Four | IV  
One  | I

Merge result file:
A    | B | C  
One  | 1 | I  
Two  | 2 |   
Four |   | IV

Таким образом, если они совместно используют аналогичную запись A, то, когда соответствующая запись B из одного файла добавляется как запись C другого файла, она должна находиться в строке общей записи A. В противном случае, если добавляемая запись не разделяет соответствующую запись A с целевым файлом, она должна быть добавлена в виде новой строки с пустой записью B.

Теперь в действительности столбец A - это фактически 3 столбца, я просто использовал один столбец в качестве примера. Мне ОЧЕНЬ нужно, чтобы первые 3 столбца рассматривались как одна запись и сравнивались таким образом. Таким образом, совпадение считается только в том случае, если в обоих файлах есть строка, в которой первые три записи столбца совпадают. В противном случае это не совпадение.

Какой самый простой способ сделать это?

1 ответ1

2

Во-первых, вам нужно создать лист, содержащий все значения, которые вы хотите включить в столбцы A каждого исходного листа. Это простая операция копирования и вставки, которую вы захотите очистить с помощью "Удалить дубликаты".

Давайте предположим, что вы поместите это в столбец A вашего нового листа, как вы описали.

Затем вам нужно, чтобы новый лист вытащил значения столбца B из ваших оригиналов в столбцы B и C нового. VLOOKUP можно настроить для работы с различными электронными таблицами, даже если они существуют в совершенно разных файлах. Я приведу несколько примеров ниже.

Для всех приведенных ниже примеров я предполагаю следующее:- строка 1 предназначена для заголовков; - столбец A на новом листе представляет собой объединение столбцов A с оригиналами; - столбец B на новом листе предназначен для включения элементов из столбец B файла 1 - столбец C на новом листе предназначен для включения элементов из столбца B файла 2

Для именования листов / файлов я буду использовать следующие соглашения:- "Результат" будет именем таблицы, которую вы хотите создать - "Источник1" - это данные из "Файла 1", как описано в вашем вопросе - "Источник2" "это данные из" файла 2 ", как описано в вашем вопросе

Следующий VLOOKUP для ячейки B2 в "Результат". Эта формула предполагает, что ваши "исходные" файлы являются отдельными рабочими книгами, хранящимися в папке на рабочем столе, ваше имя пользователя "Я", и вы работаете в Windows Vista или новее. Это также предполагает, что вы не переименовали ни один из листов в исходных рабочих книгах (сохраняя значения по умолчанию Sheet1, Sheet2 и т.д.).

=VLOOKUP(A2,'C:\Users\Me\Desktop\[Source1.xlsx]Sheet1'!A:B,2,FALSE)

Для ячейки C2 в "Результате" вы используете точно такую же формулу, но измените [Source1.xlsx] на [Source2.xlsx] . Чтобы закончить лист, скопируйте B2 и C2 до конца в соответствующие столбцы.

Если позднее вы захотите разорвать отношения между файлами, чтобы ваш лист "Результат" мог стоять независимо от исходных листов, просто скопируйте / вставьте "Только значения" в столбцах А: С этого листа.

Кроме того, вы можете иметь все три листа в одной книге. Это немного упрощает формулу, поскольку вам не нужно указывать имя исходного файла. Используя соглашение об именах, указанное выше для имен листов, формула для B2 будет иметь вид:

=VLOOKUP(A2,Source1!A:B,2,FALSE)

Опять же, формула для C2 будет такой же, но замените Source1 на Source2 . Если позже вы захотите удалить исходные листы, вам нужно будет выполнить копирование / вставку "Только значения", как описано ранее, чтобы сохранить нужные данные в "Результат".

Здесь есть небольшая оговорка. Если VLOOKUP ищет данные и не находит их, вы получите одно из этих уродливых сообщений #N/A в ячейке. Вы можете обойти это с IFERROR . Вот пример, использующий последнюю формулу выше в качестве основы:

=IFERROR(VLOOKUP(A2,Source1!A:B,2,FALSE),"")

По сути, это говорит: «Если VLOOKUP возвращает ошибку, оставьте значение этой ячейки пустым. В противном случае отобразите результат VLOOKUP . "

Если у вас возникли проблемы, я советую обратиться к справочным документам и / или Google для поиска "Удалить дубликаты", "VLOOKUP", "Специальная вставка" и / или "IFERROR" - в зависимости от того, с какой проблемой у вас возникли проблемы.

ПРИМЕЧАНИЕ. Я протестировал эти функции в Excel 2010 и имею опыт их использования в Excel 2007. Я не уверен, что все эти функции доступны в Excel 2003 или нет. Я настоятельно рекомендую вам перейти на Office 2007 или более позднюю версию в ближайшем будущем. Поддержка Office 2003 будет прекращена в 2014 году.

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