2010-11-11 2 views
25

У меня есть два CSV-файла с общим столбцом, и я хочу «Объединить» таблицы вместе с общим столбцом.Соедините две таблицы в общем столбце в Excel или OpenOffice

Например: Присоединиться к 'A' с 'B' равен 'Результат'. Если одна таблица имеет ключевое значение, которое не существует в другой таблице, оно просто остается пустым.

== Table A ==  == Table B ==  == Table result == 
Name ,Age   Name ,Sex   Name ,Age ,Sex 
Bob ,37  +  Bob ,Male  => Bob ,37 ,Male 
Steve ,12   Steve ,Male   Steve,12 ,Male 
Kate , 7         Kate , 7 , 
        Sara ,Female  Sara , ,Female 

Я знаю, как сделать это с помощью базы данных SQL, но я никогда не делал это с «Excel» или «OpenOffice.org Calc»

предложения?

ответ

28

В Excel vlookup может выполнять часть того, что вы просите. В частности, вы можете использовать vlookup для выполнения левого или правого внешнего соединения, но не полного внешнего соединения (например, результат вашей таблицы).

Чтобы сделать внешнее соединение для примера выше, добавьте следующую строку в С2 «Таблица B» (или скопировать «Таблица B», а затем сделать это):

=vlookup(
    a2, # the cell value from the current table to look up in the other table 
    table_a!$1:$174832718, # the other table 
          # don't manually type this--select the entire 
          # other table while the cursor is editing this 
          # cell, then add the "$"s--Excel doesn't 
          # automatically add them 
          # (the syntax here is for different sheets in 
          # the same file, but Excel will fill this in 
          # correctly for different files as well) 
    2, # the column to get from the other table (A=1, B=2, etc.) 
    FALSE) # FALSE=only get exact matches TRUE=find approx. matches if no exact match 

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

+1

Чтобы выполнить полное внешнее соединение, вы можете выполнить операцию VLOOKUP в обоих направлениях, поэтому объедините таблицу 1 в таблице 2 и таблице 2 в таблице 1. Затем с помощью макроса или вручную (скопировать пасту) объедините обе таблицы в одну таблицу и использовать функцию удаления дубликатов в результирующей таблице. – Jan

+0

просто упомянуть, что первая переменная (a2 в его случае) должна быть в первом столбце, чтобы vlookup работал. –

6

В Excel вы используете для этого VLOOKUP.
Предположим, что у вас есть данные в таблице A, перечисленные в столбцах A и B в Excel.
И данные в списке Таблица B в колонках E и F.
Теперь перейдите к первой строке в столбце C и введите:

=VLOOKUP(A:A,E:F,2,FALSE) 

Это говорит ему, чтобы попытаться соответствовать колонке А с колонке Е, и возьмите все, что находится во 2-м столбце около того, где мы его нашли, и поместим его в столбец C.
Теперь автозаполнение остальных строк в столбце C соответствует остальным данным.

2

Если вы можете использовать Excel, есть запрос из Excel функции Файлы:

  • Определить имя главной таблицы - таблица A (вкладка Формулы -> Определить имя)
  • Определить имя вспомогательной таблицы - Таблица B
  • Перейти на вкладке Данные, выберите «из других источников», и из выпадающего меню выберите «из Microsoft Query»
  • Выберите файл CSV и подтвердить, что вы хотите, чтобы объединить столбцы вручную
  • в в следующем окне «Запрос из файлов Excel» перетащите & в столбце «Имя» таблицы A в столбец «Имя» таблицы B - будет создана связь между этими столбцами.
  • Перейти в меню «Файл», выберите «Возврат данных в MS Office» Excel», диалоговое Импорт данных выскочит
  • Выберите лист, в который вы хотели бы совпавшие импортировать данные
  • Нажмите кнопку ОК - вы должны увидеть совпавшие данные со столбцами из обеих таблиц

Или если вы не возражаете загружать свои CSV-файлы в онлайн-службу, вы можете использовать, например, http://www.exmerg.com/data-merging и присоединиться к spre adsheets using drag & drop (Отказ от ответственности: я автор инструмента).

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

Смежные вопросы