Об'єднати 2 таблиці Google та оновити дані на основі спільних записів

  • Поділитися Цим
Michael Brown

У сьогоднішньому блозі ми розглянемо всі способи об'єднання 2 таблиць Google. Ви будете використовувати VLOOKUP, INDEX/MATCH, QUERY і надбудову Merge Sheets, щоб оновити комірки одного аркуша на основі записів з іншого на основі збігів у спільних стовпцях.

    Об'єднати аркуші Google за допомогою функції VLOOKUP

    Перше, до чого ви можете звернутися, коли вам потрібно зіставити та об'єднати два аркуші Google, - це функція VLOOKUP.

    Синтаксис та використання

    Ця функція виконує пошук у вказаному стовпці за певним значенням ключа і витягує один із пов'язаних записів з того ж рядка в іншу таблицю або на інший аркуш.

    Хоча функція ВПЕРЕГЛЯД Google Sheets зазвичай вважається однією з найскладніших функцій, насправді вона досить проста і навіть легка у використанні, якщо з нею познайомитися ближче.

    Розглянемо коротко її складові:

    =VLOOKUP(ключ_пошуку, діапазон, індекс, [is_sorted])
    • ключ_пошуку це ключове значення, яке ви шукаєте. Це може бути будь-який текстовий рядок, число або посилання на комірку.
    • діапазон це та група комірок (або таблиця), в якій ви будете шукати ключ_пошуку і звідки ви будете брати відповідні записи.

      Примітка: VLOOKUP в Google Sheets завжди сканує перший стовпець таблиці діапазон для ключ_пошуку .

    • індекс номер стовпчика в цій колонці діапазон звідки ви хочете отримати дані.

      Наприклад, якщо діапазон пошуку - A2:E20, і вам потрібно отримати дані з колонки E, введіть 5. Але якщо діапазон пошуку - D2:E20, вам потрібно буде ввести 2, щоб отримати записи з колонки E.

    • [is_sorted] єдиний аргумент, який можна опустити. Він використовується для того, щоб вказати, відсортований стовпець зі значеннями ключа (TRUE) чи ні (FALSE). Якщо TRUE, то функція буде працювати з найближчим збігом, якщо FALSE - з повним. Якщо його опустити, то за замовчуванням використовується значення TRUE.

    Порада. У нас є докладний посібник, присвячений функції СРЗНАЧ в Google Таблицях. Будь ласка, ознайомтеся з ним, щоб дізнатися більше про функцію, її особливості та межі застосування, а також отримати більше прикладів формул.

    Враховуючи ці аргументи, давайте використаємо VLOOKUP для об'єднання двох таблиць Google.

    Припустимо, у мене є невелика таблиця з ягодами та їх ідентифікаторами на аркуші 2. Однак наявність запасів невідома:

    Назвемо цю таблицю основною, оскільки моя мета - її заповнити.

    На аркуші 1 також є ще одна таблиця з усіма даними, включаючи наявність запасів:

    Я назву її пошуковою таблицею, оскільки я буду заглядати в неї, щоб отримати дані.

    Я використаю функцію VLOOKUP Google Sheets для об'єднання цих 2 таблиць. Функція зіставить ягоди в обох таблицях і витягне відповідну інформацію про "запаси" з пошуку в основну таблицю.

    =VLOOKUP(B2,Sheet1!$B$2:$C$10,2,FALSE)

    Ось як саме ця формула об'єднує два гугл-аркуші:

    1. Він шукає значення з B2 (основний аркуш) в колонці B на аркуші 1 (аркуш пошуку).

      Примітка. Пам'ятайте, що VLOOKUP сканує 1-й стовпець вказаного діапазону - Аркуш1!$B$2:$C$10 .

      Примітка: Я використовую абсолютні посилання для діапазону, тому що я копіюю формулу вниз по стовпчику і, отже, мені потрібно, щоб цей діапазон залишався однаковим у кожному рядку, щоб результат не розбивався.

    2. FALSE в кінці означає, що дані в колонці B (в таблиці пошуку) не відсортовані, тому будуть розглянуті тільки точні збіги.
    3. Як тільки є збіг, Google Sheets VLOOKUP витягує відповідний запис з 2-го стовпчика цього діапазону (стовпчик C).

    Приховати помилки, які повертає VLOOKUP в Google Sheets - IFERROR

    Але як бути з тими помилками #N/A?

    Ви бачите їх у тих рядках, де ягодам немає пари на іншому аркуші, і повертати нічого. На щастя, є спосіб, щоб такі клітинки залишалися порожніми.

    Просто загорніть свій VLOOKUP Google Sheets в IFERROR:

    =IFERROR(VLOOKUP(B2,Sheet1!$B$2:$C$10,2,FALSE),"")

    Порада. Відстежуйте та виправляйте інші помилки, які може повернути VLOOKUP Google Sheets, використовуючи рішення з цього посібника.

    Зіставлення та оновлення записів відразу для всього стовпця - ArrayFormula

    Ще один момент, про який хотілося б згадати - як зіставити і об'єднати дані Google Sheets відразу для всієї колонки.

    Тут нічого складного, просто ще одна функція - ArrayFormula.

    Просто замініть ключовий запис з однією коміркою в VLOOKUP Google Sheets на весь стовпець і помістіть всю цю формулу всередину ArrayFormula:

    =ArrayFormula(IFERROR(VLOOKUP(B2:B10,Sheet1!$B$2:$C$10,2,FALSE),""))

    Таким чином, вам не потрібно буде копіювати формулу вниз по стовпцю. ArrayFormula відразу поверне правильний результат в кожну комірку.

    Хоча VLOOKUP в Google Sheets ідеально підходить для таких простих завдань, він має деякі обмеження. Ось один з недоліків: він не може дивитися зліва від себе. Який би діапазон ви не вказали, він завжди сканує перший стовпець.

    Таким чином, якщо вам потрібно об'єднати 2 гугл-аркуші і витягнути ідентифікатори (дані 1-го стовпчика) на основі ягід (2-го стовпчика), то VLOOKUP не допоможе. Ви просто не зможете побудувати правильну формулу.

    У таких випадках в гру вступає INDEX MATCH для Google Sheets.

    Зіставлення та об'єднання таблиць Google за допомогою дуету INDEX MATCH

    INDEX MATCH, а точніше INDEX & MATCH, насправді є двома різними функціями Google Sheets. Але коли вони використовуються разом, це як VLOOKUP наступного рівня.

    Так, вони також об'єднують гугл-аркуші: оновлюють комірки однієї таблиці записами з іншої таблиці на основі спільних ключових записів.

    Але вони роблять це набагато краще, оскільки ігнорують всі ті обмеження, які має VLOOKUP.

    Сьогодні я не буду висвітлювати всі основи, тому що я зробив це в цьому блозі. Але я дам вам кілька прикладів формул INDEX MATCH, щоб ви могли побачити, як вони працюють безпосередньо в таблицях Google. Я буду використовувати ті ж самі приклади таблиць, що були наведені вище.

    INDEX MATCH в дії в Google Таблицях

    По-перше, давайте об'єднаємо ці таблиці Google і оновимо наявність запасів для всіх відповідних ягід:

    =INDEX(Лист1!$C$1:$C$10,MATCH(B2,Лист1!$B$1:$B$10,0))

    Як працюють INDEX та MATCH, коли вони використовуються разом?

    1. MATCH дивиться на B2 і шукає точно такий же запис у стовпці B на аркуші 1. Як тільки він знайдений, він повертає номер рядка, який містить це значення - 10 у моєму випадку.
    2. INDEX також переходить до цього 10-го рядка на аркуші 1, тільки бере значення з іншого стовпчика - C.

    Тепер спробуємо протестувати INDEX MATCH проти того, що не може зробити Google Sheets VLOOKUP - об'єднати аркуші і оновити крайній лівий стовпчик необхідними ідентифікаторами:

    =INDEX(Лист1!$A$2:$A$10,MATCH(B2,Лист1!$B$2:$B$10,0))

    Легко і просто :)

    Робота з помилками, які повертає функція INDEX MATCH в Google Sheets

    Підемо далі і позбудемося тих помилок в комірках, де немає збігів. Знову допоможе IFERROR. Просто поставте в якості його першого аргументу INDEX MATCH з ваших Google Sheets.

    Приклад 1.

    =IFERROR(INDEX(Sheet1!$C$1:$C$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),"")

    Приклад 2.

    =IFERROR(INDEX(Sheet1!$A$2:$A$10,MATCH(B2,Sheet1!$B$2:$B$10,0)),"")

    Тепер, як об'єднати ці гугл-аркуші за допомогою INDEX MATCH і оновити всі комірки у всьому стовпчику одразу?

    Що ж... Є невелика проблема: ArrayFormula не працює з цими двома.

    Вам потрібно буде скопіювати формулу INDEX MATCH вниз по стовпчику або використовувати функцію QUERY в Google Sheets в якості альтернативи.

    Об'єднання аркушів Google та оновлення комірок за допомогою QUERY

    Запити в Google Таблицях - найпотужніша функція в електронних таблицях. З огляду на це, не дивно, що вона пропонує спосіб своєрідного об'єднання таблиць - зіставлення та об'єднання значень з різних аркушів.

    =QUERY(дані, запит, [заголовки])

    Порада: Якщо ви ніколи раніше не користувалися запитами в Google Таблицях, цей урок допоможе вам розібратися з їхньою специфічною мовою.

    Як повинна виглядати формула ЗАПИТУ для оновлення Акції колонку з фактичними даними?

    =QUERY(Лист1!$A$2:$C$10, "select C where&Лист4!$B2:$B$10&""")

    • Google Sheets QUERY розглядає мій лист пошуку (Sheet1 із записами, які мені потрібно витягнути в мою основну таблицю)
    • і повертає всі ті клітинки зі стовпчика C, у яких стовпчик B збігається з ягодами у моїй основній таблиці

    Дозвольте мені просто втратити ці помилки для клітинок без збігів:

    =IFERROR(QUERY(Лист1!$A$2:$C$10, "select C where&Лист4!$B2:$B$10&"""),"")

    Що ж, це вже краще :)

    Об'єднання таблиць з різних таблиць Google - функція IMPORTRANGE

    Є ще одна функція, про яку я хотів би згадати. Вона важлива тим, що дозволяє об'єднувати аркуші, які знаходяться в різних таблицях (файлах) Google.

    Функція називається IMPORTRANGE:

    =IMPORTTRANGE("адреса_таблиці", "рядок_діапазону")
    • перший - посилання на електронну таблицю, з якої ви берете дані
    • останнім йде аркуш & діапазон, який потрібно взяти з цієї таблиці

    Примітка: наполегливо рекомендую ознайомитися з гугл-документами щодо цієї функції, щоб не пропустити жодного важливого нюансу її роботи.

    Уявіть, що ваш пошуковий аркуш (з довідковими даними) знаходиться в електронній таблиці 2 (так звана пошукова таблиця). Ваш основний аркуш знаходиться в електронній таблиці 1 (основна таблиця).

    Примітка. Для того, щоб ІМПОРТРАНСЛЯЦІЯ спрацювала, необхідно з'єднати обидва файли. І хоча Google Sheet пропонує кнопку для цього відразу після того, як ви введете формулу в комірку і натиснете клавішу Увійдіть Для формул, наведених нижче, можливо, вам доведеться зробити це заздалегідь. Ця покрокова інструкція допоможе вам у цьому.

    Нижче наведено приклади об'єднання аркушів Google з різних файлів за допомогою функції ІМПОРТРАНС з кожною функцією, про яку ви дізналися сьогодні.

    Приклад 1: ІМПОРТРЕЙД + VLOOKUP

    Використовуйте IMPORTRAGE як діапазон у VLOOKUP, щоб об'єднати 2 окремі таблиці Google:

    =ArrayFormula(IFERROR(VLOOKUP(B2:B10,IMPORTTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$B$2:$C$10"),2,FALSE),""))

    Приклад 2. Збіг ІМПОРТРАНСЛЯЦІЇ + ІНДЕКС

    Що стосується ІНДЕКС СООТВЕТСТВУЮЩИЙ та ІМПОРТРАНЖ, то формула стає більш громіздкою, оскільки потрібно двічі посилатися на іншу електронну таблицю: як на діапазон для ІНДЕКСУ та як на діапазон для СООТВЕТСТВУЮЩИЙ:

    =IFERROR(INDEX(IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$A$1:$A$10"),MATCH(B2,IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$B$2:$B$10"),0)),"")

    Приклад 3. ІМПОРТРАНСЛЯЦІЯ + ЗАПИТ

    Цей тандем формул є моїм особистим фаворитом. При спільному використанні вони можуть впоратися практично з усім, що є в електронних таблицях. Об'єднання гугл-аркушів з окремих таблиць - не виняток.

    =IFERROR(QUERY(IMPORTTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$A$2:$C$10"), "select Col3 where&QUERY!$B2:$B$10&"""),"")

    Ух!

    Це все для функцій і формул.

    Ви можете обрати будь-яку функцію та побудувати власну формулу за наведеними вище прикладами...

    або...

    ...спробуйте спеціальний інструмент, який об'єднає листи Google за вас ;)

    Безформульний спосіб зіставлення та об'єднання даних - надбудова Merge Sheets для Google Sheets

    Якщо у вас немає часу на створення або навіть вивчення формул, або якщо ви просто шукаєте найпростіший спосіб об'єднати дані на основі загальних записів, Merge Sheets буде ідеальним рішенням.

    Все, що вам потрібно буде зробити - це поставити галочки у 5 зручних для користувача кроків:

    1. оберіть основний аркуш
    2. оберіть аркуш пошуку
    3. відмітити прапорцями ключові стовпці (ті, що містять записи для порівняння)
    4. вибрати стовпці для оновлення:

  • налаштувати додаткові опції, наприклад, позначати оновлені записи кольором або в колонці статусу тощо.
  • Існує навіть можливість зберегти всі обрані варіанти в сценарій і використовувати його повторно, коли це буде потрібно:

    Перегляньте це 3-хвилинне демонстраційне відео, щоб побачити, як це працює:

    Я рекомендую вам встановити таблицю злиття з магазину Google Таблиць і слідувати цим інструкціям, щоб спробувати оновити вашу власну таблицю інформацією з іншого аркуша.

    Електронна таблиця з прикладами формул

    Об'єднати гугл-аркуші та оновити дані - приклади формул (зробити копію файлу)

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.