Функция TEXTJOIN в Excel за обединяване на текст от няколко клетки

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

В урока е показано как да използвате функцията TEXTJOIN за обединяване на текст в Excel с практически примери.

Доскоро имаше два разпространени метода за обединяване на съдържанието на клетките в Excel: операторът за конкатенация и функцията CONCATENATE. С въвеждането на TEXTJOIN сякаш се появи по-мощна алтернатива, която ви дава възможност да обединявате текст по по-гъвкав начин, включвайки всеки разделител между тях. Но всъщност има много повече неща!

    Функция TEXTJOIN на Excel

    TEXTJOIN в Excel обединява текстови низове от няколко клетки или диапазони и разделя комбинираните стойности с всеки указан от вас разделител. Той може да игнорира или да включва празни клетки в резултата.

    Функцията е налична в Excel за Office 365, Excel 2021 и Excel 2019.

    Синтаксисът на функцията TEXTJOIN е следният:

    TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)

    Къде:

    • Разделител (задължително) - представлява разделител между всяка текстова стойност, която комбинирате. Обикновено се предоставя като текстов низ, затворен в двойни кавички, или като препратка към клетка, съдържаща текстов низ. Число, предоставено като разделител, се третира като текст.
    • Ignore_empty (задължително) - Определя дали да се игнорират празните клетки или не:
      • TRUE - игнорира всички празни клетки.
      • FALSE - включва празни клетки в получения низ.
    • Текст1 (задължително) - първата стойност за обединяване. Може да се предостави като текстов низ, препратка към клетка, съдържаща низ, или масив от низове, например диапазон от клетки.
    • Текст2 , ... (по избор) - допълнителни текстови стойности, които да бъдат обединени. Позволени са максимум 252 текстови аргумента, включително текст1 .

    Като пример, нека обединим частите на адресите от клетки B2, C2 и D2 в една клетка, като разделим стойностите със запетая и интервал:

    С функцията CONCATENATE ще трябва да посочите всяка клетка поотделно и да поставите разделител (", ") след всяка препратка, което може да е притеснително при обединяване на съдържанието на много клетки:

    =CONCATENATE(A2, ", ", B2, ", ", C2)

    С Excel TEXTJOIN посочвате разделителя само веднъж в първия аргумент, а за третия аргумент предоставяте диапазон от клетки:

    =TEXTJOIN(", ", TRUE, A2:C2)

    TEXTJOIN в Excel - 6 неща, които трябва да запомните

    За да използвате ефективно TEXTJOIN в работните си листове, трябва да обърнете внимание на няколко важни момента:

    1. TEXTJOIN е нова функция, която е налична само в Excel 2019 - Excel 365. В по-ранните версии на Excel вместо нея използвайте функцията CONCATENATE или оператора "&".
    2. В новите версии на Excel можете да използвате и функцията CONCAT за обединяване на стойности от отделни клетки и диапазони, но без опции за разделители или празни клетки.
    3. Всеки номер, предоставен на TEXTJOIN за разделител или текст аргументите се преобразуват в текст.
    4. Ако разделител не е посочен или е празен низ (""), текстовите стойности се конкатенират без разделител.
    5. Функцията може да обработва до 252 текстови аргумента.
    6. Полученият низ може да съдържа най-много 32 767 символа, което е ограничението за клетките в Excel. Ако това ограничение е надхвърлено, формулата TEXTJOIN връща грешката #VALUE!.

    Как да обединим текст в Excel - примери за формули

    За да разберем по-добре всички предимства на TEXTJOIN, нека разгледаме как да използваме функцията в реални ситуации.

    Конвертиране на колона в списък, разделен със запетая

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

    В този пример ще съберем победите и загубите на всеки отбор от таблицата по-долу. Това може да се направи със следните формули, които се различават само по обхвата на обединените клетки.

    За отбор 1:

    =TEXTJOIN(",", FALSE, B2:B6)

    За отбор 2:

    =TEXTJOIN(",", FALSE, C2:C6)

    И така нататък.

    Във всички формули се използват следните аргументи:

    • Разделител - запетая (",").
    • Ignore_empty се задава FALSE, за да се включат празните клетки, тъй като трябва да покажем кои игри не са били изиграни.

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

    Присъединяване на клетки с различни разделители

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

    Да предположим, че искате да обедините клетки, съдържащи различни части от името, и да получите резултата в този формат: Фамилия , Първо име Средно име .

    Както виждате, фамилното име и първото име са разделени със запетая и интервал (", "), а първото име и средното име - само с интервал (" "). Така че включваме тези два разделителя в масив с константа {", "," "} и получаваме следната формула:

    =TEXTJOIN({", "," "}, TRUE, A2:C2)

    Където A2:C2 са частите на името, които трябва да се комбинират.

    Алтернативно можете да въведете разделителите без кавички в някои празни клетки (например запетая и интервал в F3 и интервал в G3) и да използвате диапазона $F$3:$G$3 (моля, обърнете внимание на абсолютните препратки към клетките) за разделител аргумент:

    =TEXTJOIN($F$3:$G$3, TRUE, A2:C2)

    С помощта на този общ подход можете да обединявате съдържанието на клетките в различни форми.

    Например, ако искате да получите резултата в Първо име Среден инициал Фамилия След това използвайте функцията LEFT, за да извлечете първия символ (инициала) от клетка C2. Що се отнася до разделителите, поставяме интервал (" ") между първото име и средния инициал; точка и интервал (". ") между инициала и фамилията:

    =TEXTJOIN({" ","."}, TRUE, B2, LEFT(C2,1), A2)

    Присъединяване на текст и дати в Excel

    В конкретен случай, когато обединявате текст и дати, подаването на дати директно към формулата TEXTJOIN няма да работи. Както може би си спомняте, Excel съхранява датите като серийни номера, така че вашата формула ще върне число, представляващо датата, както е показано на снимката по-долу:

    =TEXTJOIN(" ", TRUE, A2:B2)

    За да поправите това, трябва да преобразувате датата в текстов низ, преди да я съедините. И тук функцията TEXT с желания код за формат ("mm/dd/yyyy" в нашия случай) е полезна:

    =TEXTJOIN(" ", TRUE, A2, TEXT(B2, "mm/dd/yyyy"))

    Сливане на текст с прекъсвания на редовете

    Ако желаете да обедините текст в Excel, така че всяка стойност да започва на нов ред, използвайте CHAR(10) като разделител (където 10 е символ за край на реда).

    Например, за да комбинирате текст от клетките А2 и В2, като разделите стойностите с прекъсване на реда, трябва да използвате тази формула:

    =TEXTJOIN(CHAR(10), TRUE, A2:B2)

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

    TEXTJOIN IF за обединяване на текст с условия

    Благодарение на способността на Excel TEXTJOIN да обработва масиви от низове, тя може да се използва и за условно обединяване на съдържанието на две или повече клетки. За да го направите, използвайте функцията IF, за да оцените диапазон от клетки и да върнете масив от стойности, които отговарят на условието, на текст1 аргумент на TEXTJOIN.

    Да предположим, че от таблицата, показана на екранната снимка по-долу, искате да извлечете списък на Отбор 1 За да постигнете това, вмъкнете следната декларация IF в текст1 аргумент:

    IF($B$2:$B$9=1, $A$2:$A$9, "")

    На обикновен английски език горната формула гласи: Ако колона B е равна на 1, върнете стойност от колона A в същия ред; в противен случай върнете празен низ.

    Пълната формула за Отбор 1 приема тази форма:

    =TEXTJOIN(", ", TRUE, IF($B$2:$B$9=1, $A$2:$A$9, ""))

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

    =TEXTJOIN(", ", TRUE, IF($B$2:$B$9=2, $A$2:$A$9, ""))

    Забележка: Поради наличната в Excel 365 и 2021 функция за динамични масиви тази формула работи като обикновена формула, както е показано на горната снимка. В Excel 2019 трябва да я въведете като традиционна формула за масиви, като натиснете клавишната комбинация Ctrl + Shift + Enter.

    Търсене и връщане на множество съвпадения в списък, разделен със запетая

    Както вероятно знаете, функцията VLOOKUP на Excel може да върне само първото намерено съвпадение. Но какво става, ако трябва да получите всички съвпадения за определен идентификатор, SKU или нещо друго?

    За да изведете резултатите в отделни клетки, използвайте една от формулите, описани в Как да VLOOKUP няколко стойности в Excel.

    За да потърсите и върнете всички съвпадащи стойности в една клетка като списък, разделен със запетая, използвайте формулата TEXTJOIN IF.

    За да видите как работи на практика, нека извлечем списък с продукти, закупени от даден продавач, от примерната таблица по-долу. Това може лесно да стане със следната формула:

    =TEXTJOIN(", ", TRUE, IF($A$2:$A$12=D2, $B$2:$B$12, ""))

    Където A2:A12 са имена на продавачи, B2:B12 са продукти, а D2 е продавачът, който представлява интерес.

    Горната формула отива в E2 и извежда всички съвпадения за целевия продавач в D2 (Adam). Благодарение на умелото използване на относителни (за целевия продавач) и абсолютни (за имената на продавачите и продуктите) препратки към клетките, формулата се копира правилно в долните клетки и работи добре и за другите двама продавачи:

    Забележка: Както и при предишния пример, това работи като обикновена формула в Excel 365 и 2021 и като CSE формула (Ctrl + Shift + Enter ) в Excel 2019.

    Логиката на формулата е абсолютно същата като в предишния пример:

    Изречението IF сравнява всяко име в A2:A12 с целевото име в D2 (Adam в нашия случай):

    IF($A$2:$A$12=D2, $B$2:$B$12, "")

    Ако логическият тест се оцени като TRUE (т.е. името в D2 съвпада с името в колона A), формулата връща продукт от колона B; в противен случай се връща празен низ (""). Резултатът от IF е следният масив:

    {"";"";"Bananas";"Apples";"";"";"";"Oranges";"";"Lemons";""}

    Масивът отива във функцията TEXTJOIN като текст1 аргумент. И тъй като TEXTJOIN е конфигуриран да разделя стойностите със запетая и интервал (", "), като краен резултат получаваме този низ:

    Банани, ябълки, портокали, лимони

    Excel TEXTJOIN не работи

    Когато формулата ви TEXTJOIN доведе до грешка, най-вероятно тя е една от следните:

    • Грешката #NAME? възниква, когато TEXTJOIN се използва в по-стара версия на Excel, в която тази функция не се поддържа (преди 2019 г.), или когато името на функцията е изписано неправилно.
    • Грешка #VALUE! възниква, ако полученият низ надхвърля 32 767 символа.
    • Грешка #VALUE! може да възникне и ако Excel не разпознава разделителя като текст, например ако сте въвели някакъв непечатим символ, като CHAR(0).

    Това е начинът за използване на функцията TEXTJOIN в Excel. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Налични изтегляния

    Примери за формула на Excel TEXTJOIN

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