Сливане на 2 листа на Google и актуализиране на данните въз основа на общи записи

  • Споделя Това
Michael Brown

Днешната публикация в блога представя всички начини за сливане на 2 листа в Google. Ще използвате VLOOKUP, INDEX/MATCH, QUERY и добавката Merge Sheets за актуализиране на клетките в един лист от записи от друг лист въз основа на съвпадения в общи колони.

    Обединяване на листове на Google с помощта на функцията VLOOKUP

    Първото нещо, към което може да се обърнете, когато трябва да съпоставите и обедините два листа на Google, е функцията VLOOKUP.

    Синтаксис & употреба

    Тази функция претърсва определена колона за определена ключова стойност и извлича един от свързаните записи от същия ред в друга таблица или лист.

    Въпреки че VLOOKUP в Google Sheets обикновено се смята за една от най-трудните функции, всъщност тя е доста проста и дори лесна, след като я опознаете.

    Нека разгледаме набързо неговите компоненти:

    =VLOOKUP(search_key, range, index, [is_sorted])
    • search_key Това може да бъде произволен текстов низ, число или препратка към клетка.
    • обхват е тази група клетки (или таблица), в която ще търсите search_key и откъде ще изтеглите свързаните записи.

      Забележка. VLOOKUP в Google Sheets винаги сканира първата колона на обхват за search_key .

    • индекс е номерът на колоната в рамките на тази обхват откъдето искате да изтеглите данните.

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

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

    Съвет: Имаме подробно ръководство, посветено на VLOOKUP в Google Sheets. Разгледайте го, за да научите повече за функцията, нейните особености & ограничения и да получите повече примери за формули.

    Имайки предвид тези аргументи, нека използваме VLOOKUP, за да обединим два листа на Google.

    Да предположим, че имам малка таблица с плодове и техните идентификатори в лист 2. Наличността на склад обаче е неизвестна:

    Нека наречем тази таблица основна, тъй като целта ми е да я попълня.

    В лист1 има и друга таблица с всички данни, включително наличността на склад:

    Ще я нарека таблица за търсене, тъй като ще погледна в нея, за да получа данните.

    Ще използвам функцията VLOOKUP на Google Sheets, за да обединя тези два листа. Функцията ще съпостави ягодите в двете таблици и ще изтегли съответната информация за "запасите" от търсенето в основната таблица.

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

    Ето как тази формула обединява точно два листа на Google:

    1. Тя търси стойността от B2 (основен лист) в колона B на лист1 (лист за търсене).

      Забележка. Не забравяйте, че VLOOKUP сканира първата колона на посочения диапазон - Лист1!$B$2:$C$10 .

      Забележка: Използвам абсолютни препратки за обхвата, защото копирам формулата надолу по колоната и следователно трябва този обхват да остане един и същ на всеки ред, за да не се наруши резултатът.

    2. FALSE в края казва, че данните в колона B (в листа за търсене) не са сортирани, така че ще се разглеждат само точните съвпадения.
    3. След като има съвпадение, Google Sheets VLOOKUP извлича свързания запис от втората колона на този диапазон (колона C).

    Скриване на грешките, връщани от VLOOKUP в Google Таблици - IFERROR

    Но какво да кажем за грешките #N/A?

    Виждате ги в онези редове, в които плодовете нямат съвпадения в друг лист и няма какво да се върне. За щастие има начин да държите такива клетки празни вместо това.

    Просто обвийте VLOOKUP на Google Sheets в IFERROR:

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

    Съвет. Улавяне и отстраняване на други грешки, които VLOOKUP в Google Sheets може да върне, като използвате решенията от това ръководство.

    Съвпадение & актуализиране на записите за цялата колона наведнъж - ArrayFormula

    Още нещо, което бих искал да спомена, е как да съпоставяте и обединявате данни от Google Sheets за цялата колона наведнъж.

    Тук няма нищо особено, само още една функция - ArrayFormula.

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

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

    По този начин няма да е необходимо да копирате формулата надолу по колоната. ArrayFormula ще върне веднага правилния резултат във всяка клетка.

    Въпреки че VLOOKUP в Google Sheets е идеален за такива прости задачи, той има някои ограничения. Ето един от недостатъците: той не може да гледа в лявата си част. Какъвто и диапазон да посочите, той винаги сканира първата си колона.

    Така, ако трябва да обедините 2 листа на Google и да изтеглите идентификатори (данни от 1-ва колона) въз основа на плодове (2-ра колона), VLOOKUP няма да ви помогне. Просто няма да можете да съставите правилна формула.

    В такива случаи в играта влиза INDEX MATCH за Google Sheets.

    Съвпадение &; сливане на листове на Google с помощта на дуо INDEX MATCH

    INDEX MATCH, или по-скоро INDEX & MATCH, всъщност са две различни функции на Google Sheets. Но когато се използват заедно, това е като следващо ниво на VLOOKUP.

    Да, те също така обединяват листове на Google: актуализират клетките в една таблица със записи от друга таблица въз основа на записи с общ ключ.

    Но те се справят много по-добре, тъй като пренебрегват всички ограничения, които има VLOOKUP.

    Днес няма да разгледам всички основни принципи, защото това направих в тази публикация в блога. Но ще ви дам няколко примера за формулата INDEX MATCH, за да видите как работят директно в електронните таблици на Google. Ще използвам същите примерни таблици от по-горе.

    INDEX MATCH в действие в Google Sheets

    Първо, нека да обединим тези листове в Google и да актуализираме наличността в склада за всички съвпадащи плодове:

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

    Как работи INDEX & MATCH, когато се използва заедно по този начин?

    1. MATCH разглежда B2 и търси абсолютно същия запис в колона B на лист 1. След като бъде намерен, той връща номера на реда, който съдържа тази стойност - 10 в моя случай.
    2. INDEX също отива към този 10-ти ред на лист 1, но взема стойността от друга колона - C.

    Сега нека се опитаме да изпробваме INDEX MATCH срещу това, което VLOOKUP в Google Sheets не може да направи - сливане на листове и актуализиране на най-лявата колона с необходимите идентификатори:

    =INDEX(Sheet1!$A$2:$A$10,MATCH(B2,Sheet1!$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)),"")

    Сега как да обедините тези листове на Google, като използвате INDEX MATCH и актуализирате всички клетки в цялата колона наведнъж?

    Ами... Не е. Има малък проблем: ArrayFormula не работи с тези две.

    Ще трябва да копирате формулата INDEX MATCH в колоната или да използвате функцията QUERY на Google Sheets като алтернатива.

    Сливане на листове Google & актуализиране на клетките с помощта на QUERY

    Google Sheets QUERY е най-мощната функция в електронните таблици. С оглед на това не е изненадващо, че тя предлага начин за обединяване на таблици - съвпадение на & обединяване на стойности от различни листове.

    =QUERY(данни, заявка, [заглавия])

    Съвет. Ако никога досега не сте използвали Google Sheets QUERY, това ръководство ще ви помогне да се справите с особеностите на езика.

    Как трябва да изглежда формулата QUERY за актуализиране на Запаси колона с действителните данни?

    =QUERY(Sheet1!$A$2:$C$10, "изберете C където&Sheet4!$B2:$B$10&"")

    • Google Sheets QUERY погледне към моя лист за търсене (Sheet1 със записите, които трябва да издърпам към основната ми таблица)
    • и връща всички клетки от колона C, в които колона B съвпада с плодове в основната ми таблица

    Нека просто изгубя тези грешки за клетките без съвпадения:

    =IFERROR(QUERY(Sheet1!$A$2:$C$10, "изберете C където&Sheet4!$B2:$B$10&""),"")

    Е, това е по-добре :)

    Сливане на таблици от различни електронни таблици на Google - функция IMPORTRANGE

    Има още една функция, която бих искал да спомена. Тя е важна, защото ви позволява да обединявате листове, които се намират в различни електронни таблици (файлове) на Google.

    Функцията се нарича IMPORTRANGE:

    =IMPORTRANGE("spreadsheet_url", "range_string")
    • първата е връзката към тази електронна таблица, от която извличате данните.
    • последният отива на лист & обхватът, който искате да вземете от тази електронна таблица

    Забележка: Препоръчвам ви да разгледате документите на Google за тази функция, за да не пропуснете някой важен нюанс от работата ѝ.

    Представете си, че вашият лист за търсене (с референтните данни) е в Spreadsheet 2 (наричан още lookup spreadsheet). Вашият основен лист е в Spreadsheet 1 (main spreadsheet).

    Забележка. За да работи IMPORTRANGE, трябва да свържете двата файла. И макар че Google Sheet предлага бутон за това, веднага след като въведете формулата си в клетка и натиснете Въведете , за формулите по-долу може да се наложи да направите това предварително. Това ръководство стъпка по стъпка ще ви помогне.

    По-долу са дадени примери за обединяване на листове на Google от различни файлове с помощта на IMPORTRANGE с всяка функция, която научихте по-рано днес.

    Пример 1. IMPORTRANGE + VLOOKUP

    Използвайте IMPORTRAGE като диапазон във VLOOKUP, за да обедините 2 отделни електронни таблици на Google:

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

    Пример 2. IMPORTRANGE + INDEX MATCH

    При INDEX MATCH & IMPORTRANGE формулата става по-обемна, тъй като е необходимо да се направи позоваване на друга електронна таблица два пъти: като обхват за INDEX и като обхват за MATCH:

    =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. IMPORTRANGE + QUERY

    Този тандем от формули е моят личен фаворит. Те могат да се справят с почти всичко в електронните таблици, когато се използват заедно. Обединяването на листове на Google от отделни електронни таблици не е изключение.

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

    Уф!

    Това е всичко за функциите & формулите.

    Имате право да изберете всяка функция & създайте своя собствена формула по примерите по-горе...

    или...

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

    Начин за сравняване и сливане на данни без формули - добавка за сливане на листове за Google Sheets

    Ако нямате време да създавате или дори да научавате формули, или ако просто търсите най-лесния начин за обединяване на данни въз основа на общи записи, Merge Sheets ще бъде идеален.

    Всичко, което трябва да направите, е да поставите отметка в квадратчетата в 5 лесни за използване стъпки:

    1. изберете основния си лист
    2. изберете лист за търсене
    3. маркиране на ключови колони (тези, които съдържат записи за сравнение) с квадратчета за отметка.
    4. изберете колони, които да актуализирате:

  • настройване на допълнителни опции, например маркиране на актуализираните записи с цвят или в колона за състоянието и др.
  • Има дори възможност да запазите всички избрани опции в сценарий и да го използвате отново, когато ви е необходимо:

    Гледайте този 3-минутен демонстрационен видеоклип, за да видите как работи:

    Препоръчвам ви да инсталирате своя Merge Sheets от магазина на Google Sheets и да следвате тези инструкции, за да опитате да актуализирате собствената си таблица с информацията от друг лист.

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

    Сливане на листове на Google & актуализиране на данните - примери за формули (направете копие на файла)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.