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

  • Поделись Этим
Michael Brown

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

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

    Функция Excel TEXTJOIN

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

    Функция доступна в Excel для Office 365, Excel 2021 и Excel 2019.

    Синтаксис функции TEXTJOIN следующий:

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

    Где:

    • Разделитель (обязательно) - это разделитель между каждым текстовым значением, которое вы объединяете. Обычно он предоставляется в виде текстовой строки, заключенной в двойные кавычки, или ссылки на ячейку, содержащую текстовую строку. Число, предоставленное в качестве разделителя, рассматривается как текст.
    • Игнорировать_пустоту (требуется) - Определяет, игнорировать ли пустые ячейки или нет:
      • 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)

    И так далее.

    Во всех формулах используются следующие аргументы:

    • Разделитель - запятая (",").
    • Игнорировать_пустоту имеет значение 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 - символ перевода строки).

    Например, чтобы объединить текст из ячеек A2 и B2, разделив значения переносом строки, можно использовать следующую формулу:

    =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.

    Поиск и возврат нескольких совпадений в списке, разделенном запятыми

    Как вы, вероятно, знаете, функция Excel VLOOKUP может вернуть только первое найденное совпадение. Но что, если вам нужно получить все совпадения для определенного ID, 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. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.