Excel строки в ячейку через запятую

Бывает, что необходимо какой-то список слов, фраз или других данных, расположенных списком в столбик преобразовать в последовательность строкой через запятую или наоборот из списка через запятую сформировать столбец, где каждая отделенная запятой фраза идет с новой строки. Мне, например, это бывает нужно при работе со списками ключевых слов в SEO-задачах или при работе с системами контекстной рекламы.

Есть, как минимум, три способа выполнить поставленную задачу:

  1. Преобразовать программе Notepad++
  2. Cтолбец в строку Excel через запятую
  3. Использовать Онлайн-скрипт

Содержание

  1. Преобразование в программе Notepad++ с помощью регулярных выражений
  2. Преобразование столбца в строку через запятую в Excel
  3. Столбик через запятую и обратно онлайн
  4. Список через запятую > в столбик
  5. Столбик > список через запятую

Преобразование в программе Notepad++ с помощью регулярных выражений

Эта программа известна практически всем, кто занимался редактированием сайтов или работал с кодом. Если у вас ее еще нет, советую скачать и поставить.

Вставляем в программу список для преобразования.
Преобразование списка через запятую в столбик в Нотпад
Для примера я взял набор фраз через запятую. Нажимаем комбинацию клавиш Ctrl+H (поиск с заменой), в открывшемся окне ставим метку Режим поиска — Расширенный, Найти: , (запятая и пробел), Заменить на: n Заменить все. Получаем список столбиком.

Если нужно из столбика сделать список через запятую, тогда то же самое, только Найти: rn и Заменить на: , (запятая и пробел).
Если что-то заменилось не так, как надо, делаем отмену Ctrl+Z и пробуем по-другому, например, ищем только n.

Преобразование столбца в строку через запятую в Excel

Используем формулу «лесенка».
Скачать готовый файл можно здесь: 4memo-ru-stolbik-zapyataya.xls
Запятую в самой первой ячейке можно заменить, на что-то другое, если нужно.
Формулу во втором столбце растягиваем вниз, насколько потребуется.
Если полученный список нужно вставить в другой лист эксель, то не забываем избавиться от формул, вставив предварительно данные в блокнот.

Столбик через запятую и обратно онлайн

Этот вариант подойдет для тех, кому нужно срочно, прямо на этой странице, решить задачу конвертации списка — за вас все сделает скрипт.

Список через запятую > в столбик

Разделитель-запятую можно заменить каким-нибудь другим, например, точкой с запятой, только про пробел не забудьте, если он вам нужен.

Столбик > список через запятую

Лично для меня из всех трех способов перестроения списка наиболее удобным является самый первый — через Нотпад, а вы выберите тот, который удобен вам.
Надеюсь, кому-то эта страница облегчит жизнь.

Содержание

  1. Слова через запятую сделать списком в столбик и наоборот — 3 способа
  2. Преобразование в программе Notepad++ с помощью регулярных выражений
  3. Преобразование столбца в строку через запятую в Excel
  4. Столбик через запятую и обратно онлайн
  5. Список через запятую > в столбик
  6. Столбик > список через запятую
  7. Как сцепить много ячеек в excel через запятую
  8. Работа с функцией СЦЕПИТЬ в Microsoft Excel
  9. Применение оператора СЦЕПИТЬ
  10. Способ 1: объединение данных в ячейках
  11. Способ 2: применение функции с пробелом
  12. Способ 3: добавление пробела через окно аргументов
  13. Способ 4: объединение колонок
  14. Способ 5: добавление дополнительных символов
  15. 3 способа склеить текст из нескольких ячеек
  16. Способ 1. Функции СЦЕПИТЬ, СЦЕП и ОБЪЕДИНИТЬ
  17. Способ 2. Символ для склеивания текста (&)
  18. Способ 3. Макрос для объединения ячеек без потери текста.
  19. Функция СЦЕПИТЬ в Excel: синтаксис и примеры использования
  20. Синтаксис функции СЦЕПИТЬ
  21. Как пользоваться функцией СЦЕПИТЬ в Excel
  22. Обратная функция СЦЕПИТЬ в Excel

Слова через запятую сделать списком в столбик и наоборот — 3 способа

Бывает, что необходимо какой-то список слов, фраз или других данных, расположенных списком в столбик преобразовать в последовательность строкой через запятую или наоборот из списка через запятую сформировать столбец, где каждая отделенная запятой фраза идет с новой строки. Мне, например, это бывает нужно при работе со списками ключевых слов в SEO-задачах или при работе с системами контекстной рекламы.

Есть, как минимум, три способа выполнить поставленную задачу:

Преобразование в программе Notepad++ с помощью регулярных выражений

Эта программа известна практически всем, кто занимался редактированием сайтов или работал с кодом. Если у вас ее еще нет, советую скачать и поставить.

Вставляем в программу список для преобразования.

Для примера я взял набор фраз через запятую. Нажимаем комбинацию клавиш Ctrl+H (поиск с заменой), в открывшемся окне ставим метку Режим поиска — Расширенный, Найти: , (запятая и пробел), Заменить на: n Заменить все. Получаем список столбиком.

Если нужно из столбика сделать список через запятую, тогда то же самое, только Найти: rn и Заменить на: , (запятая и пробел).
Если что-то заменилось не так, как надо, делаем отмену Ctrl+Z и пробуем по-другому, например, ищем только n.

Преобразование столбца в строку через запятую в Excel

Используем формулу «лесенка».
Скачать готовый файл можно здесь: 4memo-ru-stolbik-zapyataya.xls
Запятую в самой первой ячейке можно заменить, на что-то другое, если нужно.
Формулу во втором столбце растягиваем вниз, насколько потребуется.
Если полученный список нужно вставить в другой лист эксель, то не забываем избавиться от формул, вставив предварительно данные в блокнот.

Столбик через запятую и обратно онлайн

Этот вариант подойдет для тех, кому нужно срочно, прямо на этой странице, решить задачу конвертации списка — за вас все сделает скрипт.

Список через запятую > в столбик

Разделитель-запятую можно заменить каким-нибудь другим, например, точкой с запятой, только про пробел не забудьте, если он вам нужен.

Столбик > список через запятую

Лично для меня из всех трех способов перестроения списка наиболее удобным является самый первый — через Нотпад, а вы выберите тот, который удобен вам.
Надеюсь, кому-то эта страница облегчит жизнь.

Ничего не получилось

А что именно «не получилось»?

Б — это второй вариант с эксель?
Только что проверил, скачав файл, добавив данных в первый столбец и протянув формулу во втором столбце — все работает.
Напишите подробно, как Вы делали пошагово, тогда можно будет понять, где ошибка.

Все работает! Спасибо!
Все способы сверху даже не стал использовать. А зачем? Если есть то же самое, но он-лайн.
Давно искал. Сохраню страницу в рабочие закладки.
Еще раз Спасибо!

Пожалуйста! Рад, что Вам пригодилось.

Всем доброго времени суток! В первую очередь спасибо автору за труды! Реально на работе нужна и пригодилась функция «Список через запятую > в столбик», которая через скрипт на сайте. Вот только не всегда есть возможность зайти на Ваш сайт для этого. С готовым файлом «4memo-ru-stolbik-zapyataya.xls» я так и не понял как это реализовать. Все таки как это сделать в файле excel, чтобы было примерно как на сайте, в какую-нибудь ячейку ввел данные с запятыми, а excel автоматически или по нажатию кнопки распределил их в столбик, чтоб можно было скопировать и пр. Только уже готовый файл, если можно?

Этот файл предназначен для преобразования только из столбца в список через запятую (или другой разделитель).
Вашу задачу (список через запятую или другой разделитель > в столбик) можно решить в следующие два этапа:
1. Открываем чистый лист Excel, вставляем в первую ячейку ваш список, потом идем в меню Данные > Текст по столбцам, в открывшемся диалоговом окне выбираем Формат данных > С разделителями, жмем Далее, выбираем разделитель «запятая», жмем Далее и потом Готово. Все, что между запятыми должно распределиться по отдельным столбцам.
2. Теперь то, что у нас распределено по горизонтали в столбцах, нужно распределить по вертикали в строках. Для этого выделяем, все ячейки, в которых есть данные, либо целиком строку, копируем Ctrl+C, опускаем курсор в свободную ячейку ниже, клик правой кнопкой мыши и в контекстном меню выбираем: Специальная вставка > Транспонировать.
Чтобы все это срабатывало по нажатию кнопки, как Вы хотите, наверное можно написать какой-нибудь макрос, но я сейчас не готов этим заниматься.

Если Вы или кто-то еще напишет такой макрос, то я готов разместить файл с ним в статье с указанием авторства.

Источник

Как сцепить много ячеек в excel через запятую

Работа с функцией СЦЕПИТЬ в Microsoft Excel

Одной из интересных функций приложения Microsoft Excel является функция СЦЕПИТЬ. Её основной задачей является соединение содержимого двух или нескольких ячеек в одной. Данный оператор помогает решить некоторые задачи, которые с помощью других инструментов воплотить невозможно. Например, с его помощью удобно производить процедуру объединения ячеек без потерь. Рассмотрим возможности данной функции и нюансы её применения.

Применение оператора СЦЕПИТЬ

Функция СЦЕПИТЬ относится к группе текстовых операторов Excel. Её основная задача — объединение в одной ячейке содержимого нескольких ячеек, а также отдельных символов. Начиная с версии Excel 2016, вместо данного оператора используется функция СЦЕП. Но в целях сохранения обратной совместимости оператор СЦЕПИТЬ тоже оставлен, и его можно использовать наравне со СЦЕП.

Синтаксис этого оператора выглядит следующим образом:

В качестве аргументов могут выступать, как текст, так и ссылки на ячейки, которые его содержат. Количество аргументов может варьироваться от 1 до 255 включительно.

Способ 1: объединение данных в ячейках

Как известно, обычное объединение ячеек в Эксель приводит к потере данных. Сохраняются только данные расположенные в верхнем левом элементе. Для того, чтобы объединить содержимое двух и более ячеек в Эксель без потерь можно применить функцию СЦЕПИТЬ.

    Выделяем ячейку, в которой планируем разместить объединенные данные. Кликаем на кнопку «Вставить функцию». Она имеет вид пиктограммы и размещена слева от строки формул.

Способ 2: применение функции с пробелом

Существуют возможности исправить данный недочет, вставив пробелы между аргументами оператора.

  1. Выполняем задачу по тому же алгоритму, который описан выше.
  2. Двойным щелчком левой кнопки мыши по ячейке с формулой активируем её для редактирования.

Как видим, на месте вставки пробелов с кавычками в ячейке появились разделения между словами.

Способ 3: добавление пробела через окно аргументов

Конечно, если преобразуемых значений не много, то вышеприведенный вариант разрыва склейки прекрасно подойдет. Но его будет затруднительно быстро воплотить, если существуют множество ячеек, которые нужно объединить. Тем более, если эти ячейки не находятся в едином массиве. Значительно упростить расстановку пробела можно, воспользовавшись вариантом его вставки через окно аргументов.

  1. Выделяем двойным кликом левой кнопки мыши любую пустую ячейку на листе. С помощью клавиатуры устанавливаем внутри неё пробел. Желательно, чтобы она находилась подальше от основного массива. Очень важно, чтобы эта ячейка никогда после этого не заполнялась никакими данными.

Как видим, после этого в целевой ячейке образовалась объединенная запись, включающая содержимое всех элементов, но с пробелами между каждым словом.

Внимание! Как видим, вышеуказанный способ значительно ускоряет процедуру корректного объединения данных в ячейках. Но следует учесть, что данный вариант таит в себе и «подводные камни». Очень важно, чтобы в элементе, который содержит пробел, со временем не появились какие-то данные или он не был сдвинут.

Способ 4: объединение колонок

С помощью функции СЦЕПИТЬ можно быстро объединять данные нескольких колонок в одну.

    С ячейками первой строки объединяемых колонок проделываем на выбор те действия, которые указаны во втором и третьем способе применения аргумента. Правда, если вы решили воспользоваться способом с пустой ячейкой, то ссылку на неё нужно будет сделать абсолютной. Для этого, перед каждым знаком координат по горизонтали и вертикали этой ячейки ставим знак доллара ($). Естественно, что лучше всего это сделать в самом начале, чтобы в другие поля, где содержится этот адрес, пользователь мог копировать его, как содержащий постоянные абсолютные ссылки. В остальных полях оставляем относительные ссылки. Как всегда, после выполнения процедуры, жмем на кнопку «OK».

Способ 5: добавление дополнительных символов

Функцию СЦЕПИТЬ можно также использовать для добавления дополнительных символов и выражений, которых не было в первоначальном объединяемом диапазоне. Более того, можно с помощью данной функции внедрять и другие операторы.

    Выполняем действия по добавлению значений в окно аргументов функции любым из способов, который был приведен выше. В одно из полей (при необходимости их может быть и несколько) добавляем любой текстовый материал, который пользователь считает нужным добавить. Данный текст обязательно должен быть заключен в кавычки. Жмем на кнопку «OK».

Оператор СЦЕПИТЬ – единственная возможность объединения ячеек без потерь в Excel. Кроме того, с его помощью можно соединять целые столбцы, добавлять текстовые значения, проводить некоторые другие манипуляции. Знание алгоритма работы с этой функцией позволит облегчить решение многих вопросов для пользователя программы.

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

3 способа склеить текст из нескольких ячеек

Надпись на заборе: «Катя + Миша + Семён + Юра + Дмитрий Васильевич +
товарищ Никитин + рыжий сантехник + Витенька + телемастер Жора +
сволочь Редулов + не вспомнить имени, длинноволосый такой +
ещё 19 мужиков + муж = любовь!»

Способ 1. Функции СЦЕПИТЬ, СЦЕП и ОБЪЕДИНИТЬ

В категории Текстовые есть функция СЦЕПИТЬ (CONCATENATE) , которая соединяет содержимое нескольких ячеек (до 255) в одно целое, позволяя комбинировать их с произвольным текстом. Например, вот так:

Нюанс: не забудьте о пробелах между словами — их надо прописывать как отдельные аргументы и заключать в скобки, ибо текст.

Очевидно, что если нужно собрать много фрагментов, то использовать эту функцию уже не очень удобно, т.к. придется прописывать ссылки на каждую ячейку-фрагмент по отдельности. Поэтому, начиная с 2016 версии Excel, на замену функции СЦЕПИТЬ пришла ее более совершенная версия с похожим названием и тем же синтаксисом — функция СЦЕП (CONCAT) . Ее принципиальное отличие в том, что теперь в качестве аргументов можно задавать не одиночные ячейки, а целые диапазоны — текст из всех ячеек всех диапазонов будет объединен в одно целое:

Для массового объединения также удобно использовать новую функцию ОБЪЕДИНИТЬ (TEXTJOIN) , появившуюся начиная с Excel 2016. У нее следующий синтаксис:

=ОБЪЕДИНИТЬ( Разделитель ; Пропускать_ли_пустые_ячейки ; Диапазон1 ; Диапазон2 . )

  • Разделитель — символ, который будет вставлен между фрагментами
  • Второй аргумент отвечает за то, нужно ли игнорировать пустые ячейки (ИСТИНА или ЛОЖЬ)
  • Диапазон 1, 2, 3 . — диапазоны ячеек, содержимое которых хотим склеить

Способ 2. Символ для склеивания текста (&)

Это универсальный и компактный способ сцепки, работающий абсолютно во всех версиях Excel.

Для суммирования содержимого нескольких ячеек используют знак плюс «+«, а для склеивания содержимого ячеек используют знак «&» (расположен на большинстве клавиатур на цифре «7»). При его использовании необходимо помнить, что:

  • Этот символ надо ставить в каждой точке соединения, т.е. на всех «стыках» текстовых строк также, как вы ставите несколько плюсов при сложении нескольких чисел (2+8+6+4+8)
  • Если нужно приклеить произвольный текст (даже если это всего лишь точка или пробел, не говоря уж о целом слове), то этот текст надо заключать в кавычки. В предыдущем примере с функцией СЦЕПИТЬ о кавычках заботится сам Excel — в этом же случае их надо ставить вручную.

Вот, например, как можно собрать ФИО в одну ячейку из трех с добавлением пробелов:

Если сочетать это с функцией извлечения из текста первых букв — ЛЕВСИМВ (LEFT) , то можно получить фамилию с инициалами одной формулой:

Способ 3. Макрос для объединения ячеек без потери текста.

Имеем текст в нескольких ячейках и желание — объединить эти ячейки в одну, слив туда же их текст. Проблема в одном — кнопка Объединить и поместить в центре (Merge and Center) в Excel объединять-то ячейки умеет, а вот с текстом сложность — в живых остается только текст из верхней левой ячейки.

Чтобы объединение ячеек происходило с объединением текста (как в таблицах Word) придется использовать макрос. Для этого откройте редактор Visual Basic на вкладке Разработчик — Visual Basic (Developer — Visual Basic) или сочетанием клавиш Alt + F11 , вставим в нашу книгу новый программный модуль (меню Insert — Module) и скопируем туда текст такого простого макроса:

Теперь, если выделить несколько ячеек и запустить этот макрос с помощью сочетания клавиш Alt + F8 или кнопкой Макросы на вкладке Разработчик (Developer — Macros) , то Excel объединит выделенные ячейки в одну, слив туда же и текст через пробелы.

Функция СЦЕПИТЬ в Excel: синтаксис и примеры использования

Чтобы объединить значения (текстовые, цифровые) из разных ячеек в одну, используется функция СЦЕПИТЬ. Ее аналог – & (амперсанд). Знак справляется с простейшими задачами. Но для объединения множества строк не подходит.

Синтаксис функции СЦЕПИТЬ

Функция входит в группу «текстовые». Синтаксис: (текст 1; текст 2;…). Можно включить до 255 текстовых строк. Первый аргумент – «текст 1» – является обязательным. Любые аргументы можно указать в виде текста, цифр или ссылок на ячейки.

Общие правила использования функции СЦЕПИТЬ:

  1. Для разделения аргументов применяется точка с запятой. Пропуск или использование других знаков приведет к отображению в ячейке с результатом кавычек.
  2. Текстовые аргументы обязательно заключать в кавычки. В противном случае появляется ошибка – #ИМЯ? Числа и ссылки на ячейки – не нужно.
  3. Чтобы соединяемые элементы в строке результата отобразились с пробелом, пробелы нужно добавлять в формулу с функцией. С помощью двойных кавычек с пробелом внутри (“ “) или с помощью пробела после текстового аргумента (“Иванов ”;…).

Как пользоваться функцией СЦЕПИТЬ в Excel

Начнем с простейших примеров.

Данные для объединения:

Ставим курсор в ячейку Е2 и вызываем мастер функций (кнопка fx). В категории «Текстовые» находим функцию СЦЕПИТЬ. Аргументы – ссылки на ячейки А2, В2, С2 и пробелы:

Результат объединения значений в ячейках:

Такой же результат получим с помощью амперсанда:

Один из аргументов – текст. Формула: =СЦЕПИТЬ(«слесарь»; » «;A2;» «;B2;» «;C2). Результат:

И с более сложными задачами справится функция СЦЕПИТЬ в Excel. Примеры:

  1. Соединим текст с датой. Данные находятся в отдельных ячейках. Для столбца «Дата» установлен формат «Дата». Если использовать только функцию СЦЕПИТЬ, дата отобразится в числовом формате. Поэтому добавим функцию ТЕКСТ для форматирования чисел. Формула: Второй аргумент функции ТЕКСТ – формат представления даты. Результат:
  2. Соединим сразу много ячеек в строке. Если писать формулу с функцией СЦЕПИТЬ, получится долго и малоэффективно. Используем маленькую хитрость. Вот наша строка со значениями в отдельных ячейках. В ячейку Н1 ставим знак «равно». Выделяем диапазон со значениями А1:F1. Вводим амперсанд & и пробел “ “. Жмем F9. В строке формул появится формула массива. Ставим курсор в строку формул после знака «равно». Пишем название функции. Фигурные скобки заменяем на круглые и жмем ВВОД. Получаем нужный результат.
  3. Соединим значения через косую черточку («-», «&» и т.п.). Формула будет выглядеть так: = СЦЕПИТЬ (ссылка на ячейку 1; «/»; ссылка на ячейку 2).
  4. Соединим несколько значений в столбце. Функция подходит для значений в строках. Описанный выше способ с формулой массива тоже не сработает.

Преобразуем вертикальный диапазон в горизонтальный с помощью функции ТРАНСП. А затем воспользуемся формулой массива для быстрого соединения значений. В ячейку В1 ставим знак «равно». Пишем ТРАНСП. Указываем диапазон А1:А6. Вводим & и пробел (« »). Жмем F9.

Теперь преобразуем формулу массива, добавив функцию и заменив скобки.

Обратная функция СЦЕПИТЬ в Excel

Стандартной функции, которая разделяла бы значения одной ячейки, нет. Для выполнения ряда подобных задач можно использовать другие функции:

  • ЛЕВСИМВ (отображает заданную часть символов с начала строки);
  • ПРАВСИМВ (отображает заданную часть символов с конца строки);
  • ПСТР (отображает указанную часть символов, начиная с заданной позиции) и другие.
  1. Извлечем первое слово из строки, применив функцию ЛЕВСИМВ. Аргументы – «текст» (ссылка на строку с искомым значением), «количество знаков» (число символов, которые нужно извлечь).
  2. Извлечем последнее слово из строки с помощью функции ПРАВСИМВ. Синтаксис похожий (как в предыдущем примере). Только количество знаков считается с конца.
  3. Извлечем из записи в строке фамилию (второе слово) с помощью функции ПСТР. Аргументы – «текст» (ссылка на строку), «начальная позиция» (номер символа, с которого программа начнет считать число знаков); «количество знаков». В примере: Е2 – «текст», с 9 знака функция вернет 8 символов.

Для выполнения более сложных задач используются более сложные формулы, составляются пользовательские функции.

Источник

Склеивание текста по условию

Про то, как можно быстро склеивать текст из нескольких ячеек в одну и, наоборот, разбирать длинную текстовую строку на составляющие я уже писал. Теперь же давайте рассмотрим близкую, но чуть более сложную задачу — как склеивать текст из нескольких ячеек при выполнении определенного заданного условия. 

Допустим, что у нас имеется база данных по клиентам, где одному названию компании может соответствовать несколько разных email’ов ее сотрудников. Наша задача состоит в том, чтобы собрать все адреса по названиям компаний и сцепить их (через запятую или точку с запятой), чтобы сделать потом, например, почтовую рассылку по клиентам, т.е. получить на выходе что-то похожее на:

склеивание (сцепка) текста по условию

Другими словами, нам нужен инструмент, который будет склеивать (сцеплять) текст по условию — аналог функции СУММЕСЛИ (SUMIF), но для текста.

Способ 0. Формулой

Не очень изящный, зато самый простой способ. Можно написать несложную формулу, которая будет проверять отличается ли компания в очередной строке от предыдущей.  Если не отличается, то приклеиваем через запятую очередной адрес. Если отличается, то «сбрасываем» накопленное, начиная заново:

Сцепка текста по условию формулой

Минусы такого подхода очевидны: из всех ячеек полученного дополнительного столбца нам нужны только последние по каждой компании (желтые). Если список большой, то чтобы их быстро отобрать придется добавить еще один столбец, использующий функцию ДЛСТР (LEN), проверяющий длину накопленных строк:

Отбор строк

Теперь можно отфильтровать единички и скопировать нужные склейки адресов для дальнейшего использования.

Способ 1. Макрофункция склейки по одному условию

Если исходный список не отсортирован по компаниям, то приведенная выше простая формула не работает, но можно легко выкрутиться с помощью небольшой пользовательской функции на VBA. Откройте редактор Visual Basic нажатием на сочетание клавиш Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer). В открывшемся окне вставьте новый пустой модуль через меню Insert — Module и скопируйте туда текст нашей функции:

Function MergeIf(TextRange As Range, SearchRange As Range, Condition As String)
    Dim Delimeter As String, i As Long
    Delimeter = ", " 'символы-разделители (можно заменить на пробел или ; и т.д.)
    
    'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой
    If SearchRange.Count <> TextRange.Count Then
        MergeIf = CVErr(xlErrRef)
        Exit Function
    End If
    
    'проходим по все ячейкам, проверяем условие и собираем текст в переменную OutText
    For i = 1 To SearchRange.Cells.Count
        If SearchRange.Cells(i) Like Condition Then OutText = OutText & TextRange.Cells(i) & Delimeter
    Next i
    
    'выводим результаты без последнего разделителя
    MergeIf = Left(OutText, Len(OutText) - Len(Delimeter))
End Function

Если теперь вернуться в Microsoft Excel, то в списке функций (кнопка fx в строке формул или вкладка Формулы — Вставить функцию) можно будет найти нашу функцию MergeIf в категории Определенные пользователем (User Defined). Аргументы у функции следующие:

функция сцепить если выполняется условие

Способ 2. Сцепить текст по неточному условию

Если заменить в 13-й строчке нашего макроса первый знак = на оператор приблизительного совпадения Like, то можно будет осуществлять склейку по неточному совпадению исходных данных с критерием отбора. Например, если название компании может быть записано в разных вариантах, то мы можем одной функцией проверить и собрать их все:

склейка по приблизительному условию

Поддерживаются стандартные спецсимволы подстановки:

  • звездочка (*) — обозначает любое количество любых символов (в т.ч. и их отсутствие)
  • вопросительный знак (?) — обозначает один любой символ
  • решетка (#) — обозначает одну любую цифру (0-9)

По умолчанию оператор Like регистрочувствительный, т.е. понимает, например, «Орион» и «оРиОн» как разные компании. Чтобы не учитывать регистр можно добавить в самое начало модуля в редакторе Visual Basic строчку Option Compare Text, которая переключит Like в режим, когда он невосприимчив к регистру.

Таким образом можно составлять весьма сложные маски для проверки условий, например:

  • ?1##??777RUS — выборка по всем автомобильным номерам 777 региона, начинающимся с 1
  • ООО* — все компании, название которых начинается на ООО
  • ##7## — все товары с пятизначным цифровым кодом, где третья цифра 7
  • ????? — все названия из пяти букв и т.д.

Способ 3. Макрофункция склейки текста по двум условиям

В работе может встретиться задача, когда сцеплять текст нужно больше, чем по одному условию. Например представим, что в нашей предыдущей таблице добавился еще один столбец с городом и склеивание нужно проводить не только для заданной компании, но еще и для заданного города. В этом случае нашу функцию придется немного модернизировать, добавив к ней проверку еще одного диапазона:

Function MergeIfs(TextRange As Range, SearchRange1 As Range, Condition1 As String, SearchRange2 As Range, Condition2 As String)
    Dim Delimeter As String, i As Long
    Delimeter = ", " 'символы-разделители (можно заменить на пробел или ; и т.д.)
    
    'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой
    If SearchRange1.Count <> TextRange.Count Or SearchRange2.Count <> TextRange.Count Then
        MergeIfs = CVErr(xlErrRef)
        Exit Function
    End If
    
    'проходим по все ячейкам, проверяем все условия и собираем текст в переменную OutText
    For i = 1 To SearchRange1.Cells.Count
        If SearchRange1.Cells(i) = Condition1 And SearchRange2.Cells(i) = Condition2 Then
            OutText = OutText & TextRange.Cells(i) & Delimeter
        End If
    Next i
    
    'выводим результаты без последнего разделителя
    MergeIfs = Left(OutText, Len(OutText) - Len(Delimeter))
End Function

Применяться она будет совершенно аналогично — только аргументов теперь нужно указывать больше:

склейка по нескольким условиям

Способ 4. Группировка и склейка в Power Query

Решить проблему можно и без программирования на VBA, если использовать бесплатную надстройку Power Query. Для Excel 2010-2013 ее можно скачать здесь, а в Excel 2016 она уже встроена по умолчанию. Последовательность действий будет следующей:

Power Query не умеет работать с обычными таблицами, поэтому первым шагом превратим нашу таблицу в «умную». Для этого ее нужно выделить и нажать сочетание Ctrl+T или выбрать на вкладке Главная — Форматировать как таблицу (Home — Format as Table). На появившейся затем вкладке Конструктор (Design) можно задать имя таблицы (я оставил стандартное Таблица1):

Умная таблица

Теперь загрузим нашу таблицу в надстройку Power Query. Для этого на вкладке Данные (если у вас Excel 2016) или на вкладке Power Query (если у вас Excel 2010-2013) жмем Из таблицы (Data — From Table):

Загрузка в Power Query

В открывшемся окне редактора запросов выделяем щелчком по заголовку столбец Компания и сверху жмем кнопку Группировать (Group By). Вводим имя нового столбца и тип операции в группировке — Все строки (All Rows):

Группировка в Power Query

Жмем ОК и получаем для каждой компании мини-таблицу сгруппированных значений. Содержимое таблиц хорошо видно, если щелкать левой кнопкой мыши в белый фон ячеек (не в текст!) в получившемся столбце:

Содержимое таблиц группировки

Теперь добавим еще один столбец, где с помощью функции склеим через запятую содержимое столбцов Адрес в каждой из мини-таблиц. Для этого на вкладке Добавить столбец жмем Пользовательский столбец (Add column — Custom column) и в появившемся окне вводим имя нового столбца и формулу сцепки на встроенном в Power Query языке М:

Пользовательский столбец с функцией склейки

Обратите внимание, что все М-функции регистрочувствительные (в отличие от Excel). После нажатия на ОК получаем новый столбец со склееными адресами:

Результат

Осталось удалить ненужный уже столбец ТаблАдресов (правой кнопкой мыши по заголовку — Удалить столбец) и выгрузить результаты на лист, нажав на вкладке Главная — Закрыть и загрузить (Home — Close and load):

Выгрузка результатов на лист

Важный нюанс: в отличие от предыдущих способов (функций), таблицы из Power Query не обновляются автоматически. Если в будущем произойдут какие-либо изменения в исходных данных, то нужно будет щелкнуть правой кнопкой в любое место таблицы результатов и выбрать команду Обновить (Refresh).

Ссылки по теме

  • Как разделить длинную текстовую строку на части
  • Несколько способов склеить текст из разных ячеек в одной
  • Использование оператора Like для проверки текста по маске

Работа с функцией СЦЕПИТЬ в Microsoft Excel

Функция СЦЕПИТЬ в Microsoft Excel

Одной из интересных функций приложения Microsoft Excel является функция СЦЕПИТЬ. Её основной задачей является соединение содержимого двух или нескольких ячеек в одной. Данный оператор помогает решить некоторые задачи, которые с помощью других инструментов воплотить невозможно. Например, с его помощью удобно производить процедуру объединения ячеек без потерь. Рассмотрим возможности данной функции и нюансы её применения.

Применение оператора СЦЕПИТЬ

Функция СЦЕПИТЬ относится к группе текстовых операторов Excel. Её основная задача — объединение в одной ячейке содержимого нескольких ячеек, а также отдельных символов. Начиная с версии Excel 2016, вместо данного оператора используется функция СЦЕП. Но в целях сохранения обратной совместимости оператор СЦЕПИТЬ тоже оставлен, и его можно использовать наравне со СЦЕП.

Синтаксис этого оператора выглядит следующим образом:

В качестве аргументов могут выступать, как текст, так и ссылки на ячейки, которые его содержат. Количество аргументов может варьироваться от 1 до 255 включительно.

Способ 1: объединение данных в ячейках

Как известно, обычное объединение ячеек в Эксель приводит к потере данных. Сохраняются только данные расположенные в верхнем левом элементе. Для того, чтобы объединить содержимое двух и более ячеек в Эксель без потерь можно применить функцию СЦЕПИТЬ.

    Выделяем ячейку, в которой планируем разместить объединенные данные. Кликаем на кнопку «Вставить функцию». Она имеет вид пиктограммы и размещена слева от строки формул.

Переход в Мастер функций в Microsoft Excel

Мастер функций в Microsoft Excel

Аргументы функции СЦЕПИТЬ в программе Microsoft Excel

Результат функции СЦЕПИТЬ в Microsoft Excel

Способ 2: применение функции с пробелом

Существуют возможности исправить данный недочет, вставив пробелы между аргументами оператора.

  1. Выполняем задачу по тому же алгоритму, который описан выше.
  2. Двойным щелчком левой кнопки мыши по ячейке с формулой активируем её для редактирования.

Активация ячейки для редактирования функции СЦЕПИТЬ в Microsoft Excel

Изменения внесены в Microsoft Excel

Пробелы в функции СЦЕПИТЬ в Microsoft Excel установлены

Как видим, на месте вставки пробелов с кавычками в ячейке появились разделения между словами.

Способ 3: добавление пробела через окно аргументов

Конечно, если преобразуемых значений не много, то вышеприведенный вариант разрыва склейки прекрасно подойдет. Но его будет затруднительно быстро воплотить, если существуют множество ячеек, которые нужно объединить. Тем более, если эти ячейки не находятся в едином массиве. Значительно упростить расстановку пробела можно, воспользовавшись вариантом его вставки через окно аргументов.

  1. Выделяем двойным кликом левой кнопки мыши любую пустую ячейку на листе. С помощью клавиатуры устанавливаем внутри неё пробел. Желательно, чтобы она находилась подальше от основного массива. Очень важно, чтобы эта ячейка никогда после этого не заполнялась никакими данными.

Ячейка с пробелом в Microsoft Excel

Добавление пустого аргумента СЦЕПИТЬ в Microsoft Excel

Аргументы функции СЦЕПИТЬ в Microsoft Excel

Как видим, после этого в целевой ячейке образовалась объединенная запись, включающая содержимое всех элементов, но с пробелами между каждым словом.

Результат обработки данных функцией СЦЕПИТЬ в Microsoft Excel

Внимание! Как видим, вышеуказанный способ значительно ускоряет процедуру корректного объединения данных в ячейках. Но следует учесть, что данный вариант таит в себе и «подводные камни». Очень важно, чтобы в элементе, который содержит пробел, со временем не появились какие-то данные или он не был сдвинут.

Способ 4: объединение колонок

С помощью функции СЦЕПИТЬ можно быстро объединять данные нескольких колонок в одну.

    С ячейками первой строки объединяемых колонок проделываем на выбор те действия, которые указаны во втором и третьем способе применения аргумента. Правда, если вы решили воспользоваться способом с пустой ячейкой, то ссылку на неё нужно будет сделать абсолютной. Для этого, перед каждым знаком координат по горизонтали и вертикали этой ячейки ставим знак доллара ($). Естественно, что лучше всего это сделать в самом начале, чтобы в другие поля, где содержится этот адрес, пользователь мог копировать его, как содержащий постоянные абсолютные ссылки. В остальных полях оставляем относительные ссылки. Как всегда, после выполнения процедуры, жмем на кнопку «OK».

Абсолютные ссылки в аргументах функции СЦЕПИТЬ в Microsoft Excel

Маркер заполнения в Microsoft Excel

Столбцы объединены функцией СЦЕПИТЬ в Microsoft Excel

Способ 5: добавление дополнительных символов

Функцию СЦЕПИТЬ можно также использовать для добавления дополнительных символов и выражений, которых не было в первоначальном объединяемом диапазоне. Более того, можно с помощью данной функции внедрять и другие операторы.

    Выполняем действия по добавлению значений в окно аргументов функции любым из способов, который был приведен выше. В одно из полей (при необходимости их может быть и несколько) добавляем любой текстовый материал, который пользователь считает нужным добавить. Данный текст обязательно должен быть заключен в кавычки. Жмем на кнопку «OK».

Добавление текстового материала с помощью функции СЦЕПИТЬ в Microsoft Excel

Текстовый материал добавлен с помощью функции СЦЕПИТЬ в Microsoft Excel

Оператор СЦЕПИТЬ – единственная возможность объединения ячеек без потерь в Excel. Кроме того, с его помощью можно соединять целые столбцы, добавлять текстовые значения, проводить некоторые другие манипуляции. Знание алгоритма работы с этой функцией позволит облегчить решение многих вопросов для пользователя программы.

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

3 способа склеить текст из нескольких ячеек

Надпись на заборе: «Катя + Миша + Семён + Юра + Дмитрий Васильевич +
товарищ Никитин + рыжий сантехник + Витенька + телемастер Жора +
сволочь Редулов + не вспомнить имени, длинноволосый такой +
ещё 19 мужиков + муж = любовь!»

Способ 1. Функции СЦЕПИТЬ, СЦЕП и ОБЪЕДИНИТЬ

В категории Текстовые есть функция СЦЕПИТЬ (CONCATENATE) , которая соединяет содержимое нескольких ячеек (до 255) в одно целое, позволяя комбинировать их с произвольным текстом. Например, вот так:

Склейка текста функцией СЦЕПИТЬ

Нюанс: не забудьте о пробелах между словами — их надо прописывать как отдельные аргументы и заключать в скобки, ибо текст.

Очевидно, что если нужно собрать много фрагментов, то использовать эту функцию уже не очень удобно, т.к. придется прописывать ссылки на каждую ячейку-фрагмент по отдельности. Поэтому, начиная с 2016 версии Excel, на замену функции СЦЕПИТЬ пришла ее более совершенная версия с похожим названием и тем же синтаксисом — функция СЦЕП (CONCAT) . Ее принципиальное отличие в том, что теперь в качестве аргументов можно задавать не одиночные ячейки, а целые диапазоны — текст из всех ячеек всех диапазонов будет объединен в одно целое:

Склейка функцией СЦЕП

Для массового объединения также удобно использовать новую функцию ОБЪЕДИНИТЬ (TEXTJOIN) , появившуюся начиная с Excel 2016. У нее следующий синтаксис:

=ОБЪЕДИНИТЬ( Разделитель ; Пропускать_ли_пустые_ячейки ; Диапазон1 ; Диапазон2 . )

  • Разделитель — символ, который будет вставлен между фрагментами
  • Второй аргумент отвечает за то, нужно ли игнорировать пустые ячейки (ИСТИНА или ЛОЖЬ)
  • Диапазон 1, 2, 3 . — диапазоны ячеек, содержимое которых хотим склеить

Склейка текста функцией ОБЪЕДИНИТЬ

Способ 2. Символ для склеивания текста (&)

Это универсальный и компактный способ сцепки, работающий абсолютно во всех версиях Excel.

Для суммирования содержимого нескольких ячеек используют знак плюс «+«, а для склеивания содержимого ячеек используют знак «&» (расположен на большинстве клавиатур на цифре «7»). При его использовании необходимо помнить, что:

  • Этот символ надо ставить в каждой точке соединения, т.е. на всех «стыках» текстовых строк также, как вы ставите несколько плюсов при сложении нескольких чисел (2+8+6+4+8)
  • Если нужно приклеить произвольный текст (даже если это всего лишь точка или пробел, не говоря уж о целом слове), то этот текст надо заключать в кавычки. В предыдущем примере с функцией СЦЕПИТЬ о кавычках заботится сам Excel — в этом же случае их надо ставить вручную.

Вот, например, как можно собрать ФИО в одну ячейку из трех с добавлением пробелов:

Сцепка текста амперсандом

Если сочетать это с функцией извлечения из текста первых букв — ЛЕВСИМВ (LEFT) , то можно получить фамилию с инициалами одной формулой:

Склейка ФИО

Способ 3. Макрос для объединения ячеек без потери текста.

Имеем текст в нескольких ячейках и желание — объединить эти ячейки в одну, слив туда же их текст. Проблема в одном — кнопка Объединить и поместить в центре (Merge and Center) в Excel объединять-то ячейки умеет, а вот с текстом сложность — в живых остается только текст из верхней левой ячейки.

Чтобы объединение ячеек происходило с объединением текста (как в таблицах Word) придется использовать макрос. Для этого откройте редактор Visual Basic на вкладке Разработчик — Visual Basic (Developer — Visual Basic) или сочетанием клавиш Alt + F11 , вставим в нашу книгу новый программный модуль (меню Insert — Module) и скопируем туда текст такого простого макроса:

Теперь, если выделить несколько ячеек и запустить этот макрос с помощью сочетания клавиш Alt + F8 или кнопкой Макросы на вкладке Разработчик (Developer — Macros) , то Excel объединит выделенные ячейки в одну, слив туда же и текст через пробелы.

Чтобы объединить значения (текстовые, цифровые) из разных ячеек в одну, используется функция СЦЕПИТЬ. Ее аналог – & (амперсанд). Знак справляется с простейшими задачами. Но для объединения множества строк не подходит.

Синтаксис функции СЦЕПИТЬ

Функция входит в группу «текстовые». Синтаксис: (текст 1; текст 2;…). Можно включить до 255 текстовых строк. Первый аргумент – «текст 1» – является обязательным. Любые аргументы можно указать в виде текста, цифр или ссылок на ячейки.

Общие правила использования функции СЦЕПИТЬ:

  1. Для разделения аргументов применяется точка с запятой. Пропуск или использование других знаков приведет к отображению в ячейке с результатом кавычек.
  2. Текстовые аргументы обязательно заключать в кавычки. В противном случае появляется ошибка – #ИМЯ? Числа и ссылки на ячейки – не нужно.
  3. Чтобы соединяемые элементы в строке результата отобразились с пробелом, пробелы нужно добавлять в формулу с функцией. С помощью двойных кавычек с пробелом внутри (“ “) или с помощью пробела после текстового аргумента (“Иванов ”;…).

Как пользоваться функцией СЦЕПИТЬ в Excel

Начнем с простейших примеров.

Данные для объединения:

Данные для объединения.

Ставим курсор в ячейку Е2 и вызываем мастер функций (кнопка fx). В категории «Текстовые» находим функцию СЦЕПИТЬ. Аргументы – ссылки на ячейки А2, В2, С2 и пробелы:

СЦЕПИТЬ.

Результат объединения значений в ячейках:

Результат.

Такой же результат получим с помощью амперсанда:

Результат 1.

Один из аргументов – текст. Формула: =СЦЕПИТЬ(«слесарь»; » «;A2;» «;B2;» «;C2). Результат:

Результат 2.

И с более сложными задачами справится функция СЦЕПИТЬ в Excel. Примеры:

  1. Соединим текст с датой. Данные находятся в отдельных ячейках. Для столбца «Дата» установлен формат «Дата». Если использовать только функцию СЦЕПИТЬ, дата отобразится в числовом формате. Поэтому добавим функцию ТЕКСТ для форматирования чисел. Формула: Второй аргумент функции ТЕКСТ – формат представления даты. Результат: Результат 3.
  2. Соединим сразу много ячеек в строке. Если писать формулу с функцией СЦЕПИТЬ, получится долго и малоэффективно. Используем маленькую хитрость. Вот наша строка со значениями в отдельных ячейках. В ячейку Н1 ставим знак «равно». Выделяем диапазон со значениями А1:F1. Вводим амперсанд & и пробел “ “. Жмем F9. В строке формул появится формула массива. Ставим курсор в строку формул после знака «равно». Пишем название функции. Фигурные скобки заменяем на круглые и жмем ВВОД. Получаем нужный результат. Результат 4.
  3. Соединим значения через косую черточку («-», «&» и т.п.). Формула будет выглядеть так: = СЦЕПИТЬ (ссылка на ячейку 1; «/»; ссылка на ячейку 2). Результат 5.
  4. Соединим несколько значений в столбце. Функция подходит для значений в строках. Описанный выше способ с формулой массива тоже не сработает.

Преобразуем вертикальный диапазон в горизонтальный с помощью функции ТРАНСП. А затем воспользуемся формулой массива для быстрого соединения значений. В ячейку В1 ставим знак «равно». Пишем ТРАНСП. Указываем диапазон А1:А6. Вводим & и пробел (« »). Жмем F9.

ТРАНСП.

Теперь преобразуем формулу массива, добавив функцию и заменив скобки.

Формула массива.

Обратная функция СЦЕПИТЬ в Excel

Стандартной функции, которая разделяла бы значения одной ячейки, нет. Для выполнения ряда подобных задач можно использовать другие функции:

  • ЛЕВСИМВ (отображает заданную часть символов с начала строки);
  • ПРАВСИМВ (отображает заданную часть символов с конца строки);
  • ПСТР (отображает указанную часть символов, начиная с заданной позиции) и другие.
  1. Извлечем первое слово из строки, применив функцию ЛЕВСИМВ. Аргументы – «текст» (ссылка на строку с искомым значением), «количество знаков» (число символов, которые нужно извлечь). ЛЕВСИМВ.
  2. Извлечем последнее слово из строки с помощью функции ПРАВСИМВ. Синтаксис похожий (как в предыдущем примере). Только количество знаков считается с конца. ПРАВСИМВ.
  3. Извлечем из записи в строке фамилию (второе слово) с помощью функции ПСТР. Аргументы – «текст» (ссылка на строку), «начальная позиция» (номер символа, с которого программа начнет считать число знаков); «количество знаков». В примере: Е2 – «текст», с 9 знака функция вернет 8 символов.

Для выполнения более сложных задач используются более сложные формулы, составляются пользовательские функции.

Выборка значений из столбцов в одну ячейку через запятую

glebanidze

Дата: Среда, 22.05.2019, 14:06 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

Добрый день! Уважаемые знатоки! Подскажите пожалуйста, как собрать из столбца по условию (другой столбец) все значения в одну ячейку с разделителем «,»
Файл во вложении.
Формула должна просматривать столбец А и пока не сменится значение, все данные из массива столбцов B,C,D скомпилировать в одну строку, но по ячейкам.
То есть должна остаться одна строка с ячейками «цена, ссылки на фото через запятую в одной ячейке, комментарий»…

К сообщению приложен файл:

5808356.xlsx
(68.1 Kb)

Сообщение отредактировал glebanidzeСреда, 22.05.2019, 14:53

 

Ответить

sboy

Дата: Среда, 22.05.2019, 16:00 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2566


Репутация:

724

±

Замечаний:
0% ±


Excel 2010

Добрый день.
Вариант на Power Query

К сообщению приложен файл:

0855500.xlsx
(24.6 Kb)


Яндекс: 410016850021169

 

Ответить

glebanidze

Дата: Среда, 22.05.2019, 16:48 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

sboy, Благодарю, буду разбираться!

 

Ответить

Светлый

Дата: Среда, 22.05.2019, 17:04 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1742


Репутация:

479

±

Замечаний:
0% ±


Excel 2013, 2016

И формульное решение. Уникальные. Массивная формула:

Код

=ИНДЕКС(A:A;МИН(ЕСЛИ(СЧЁТЕСЛИ(E$1:E1;A$2:A$99)=0;СТРОКА($2:$99))))&»»

и сцепленные данные (не более 10строк):

Код

=ВПР(E2;A:C;3;)&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=1;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+1))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=2;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+2))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=3;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+3))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=4;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+4))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=5;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+5))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=6;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+6))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=7;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+7))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=8;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+8))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=9;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+9))


Программировать проще, чем писать стихи.

 

Ответить

glebanidze

Дата: Среда, 22.05.2019, 17:28 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

Светлый, Благодарю, вот формульное решение более актуально!

 

Ответить

glebanidze

Дата: Пятница, 24.05.2019, 21:06 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

Светлый, подскажите пожалуйста, а как сделать больше 10 строк… У меня там ведь бывают портянки по несколько тысяч строк… Я вообще голову сломал. У нас работа стоит из-за этой формулы(

 

Ответить

glebanidze

Дата: Пятница, 24.05.2019, 21:10 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

sboy, у меня на маке нету power query ((( может, знаете как формулой сделать это? Ну очень нужно… Голову сломал((((
пробовал так: =ЕСЛИ(B3=B2;F2&»,»&F3&»,»&F4&»,»&F5&»,»&F6&»,»&F7&»,»&F8&»,»&F9&»,»&F10;F2)
но проблема в том, что он так берет 10 строк, а их бывает и 3 и 17… какой вот формулой во второй части сделать так, чтобы он останавливался когда b3 не равно b2

 

Ответить

Светлый

Дата: Суббота, 25.05.2019, 08:57 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 1742


Репутация:

479

±

Замечаний:
0% ±


Excel 2013, 2016

После фрагмента

Код

&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=9;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+9))

вставить

Код

&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=10;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+10))

и так далее.
*Чуть подправил формулу, чтобы не выдавал ошибку. 13 строк сцепляет:

Код

=ЕСЛИ(E2=»»;»»;ВПР(E2;A:C;3;)&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=1;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+1))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=2;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+2))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=3;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+3))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=4;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+4))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=5;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+5))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=6;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+6))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=7;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+7))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=8;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+8))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=9;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+9))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=10;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+10))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=11;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+11))&ЕСЛИ(СЧЁТЕСЛИ(A:A;E2)<=12;»»;», «&ИНДЕКС(C:C;ПОИСКПОЗ(E2;A:A;)+12)))


Программировать проще, чем писать стихи.

Сообщение отредактировал СветлыйСуббота, 25.05.2019, 09:07

 

Ответить

glebanidze

Дата: Суббота, 25.05.2019, 09:00 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

Светлый, Благодарю, я так и думал, но у меня несколько тысяч строк таблица. это же нереально такую формулу сделать…

 

Ответить

Светлый

Дата: Суббота, 25.05.2019, 09:20 |
Сообщение № 10

Группа: Друзья

Ранг: Старожил

Сообщений: 1742


Репутация:

479

±

Замечаний:
0% ±


Excel 2013, 2016

это же нереально такую формулу сделать…

от большого количества строк только время работы будет зависеть. Для каждого уникального может сцеплять как в сообщении №8 до 13 строк.


Программировать проще, чем писать стихи.

 

Ответить

glebanidze

Дата: Суббота, 25.05.2019, 09:41 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

Светлый, Ну мне достаточно и чтобы 10 строк сцеплял, хотя их бывает и по 20 с одинаковым значением столбца А. НО! Формула работает только на первые 10 уникальных значений столбца А. А потом не работает…

К сообщению приложен файл:

4619641.xlsx
(56.2 Kb)

 

Ответить

китин

Дата: Суббота, 25.05.2019, 09:48 |
Сообщение № 12

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

glebanidze, такую формулу в версии до 2016 без макросов не создать. это или UDF СцепитЕсли или ставить 2016 (или 365 не помню точно) там это уже вшито


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Светлый

Дата: Суббота, 25.05.2019, 11:58 |
Сообщение № 13

Группа: Друзья

Ранг: Старожил

Сообщений: 1742


Репутация:

479

±

Замечаний:
0% ±


Excel 2013, 2016

Формула работает только на первые 10 уникальных значений столбца А

Тогда просто увеличить интервал в формуле уникальных:

Код

=ИНДЕКС(A:A;МИН(ЕСЛИ(СЧЁТЕСЛИ(E$1:E1;A$2:A$9999)=0;СТРОКА($2:$9999))))&»»

Десять тысяч строк хватит?


Программировать проще, чем писать стихи.

 

Ответить

glebanidze

Дата: Суббота, 25.05.2019, 12:16 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

Светлый, вот в этом и проблема. я так делал и у меня везде вычисляется только одно первое входящее значение и выдается ошибка по ячейке «несогласованная формула» ((( полтергейст какой-то. :'(

 

Ответить

glebanidze

Дата: Суббота, 25.05.2019, 12:17 |
Сообщение № 15

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

китин, Благодарю, только у меня вообще никак не выходит этот макрос сделать… Читаю руководства как UDF этот вставить…

 

Ответить

glebanidze

Дата: Суббота, 25.05.2019, 13:52 |
Сообщение № 16

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

китин, удалось установить UDF макрос. То есть при вводе в ячейке =сцепитьесли эксель предлагает пользовательскую функцию. Только она не работает. ввожу

Код

=СцепитьЕсли(A:A;A3=A2;C:C;»,»)

. Помогите пожалуйста, что не так. Ячейка пустая…

К сообщению приложен файл:

0872996.xls
(97.0 Kb)

Сообщение отредактировал glebanidzeСуббота, 25.05.2019, 14:01

 

Ответить

Светлый

Дата: Суббота, 25.05.2019, 15:32 |
Сообщение № 17

Группа: Друзья

Ранг: Старожил

Сообщений: 1742


Репутация:

479

±

Замечаний:
0% ±


Excel 2013, 2016

только одно первое входящее

Формула массива, вводится одновременным нажатием Ctrl+Shift+Enter.


Программировать проще, чем писать стихи.

 

Ответить

RAN

Дата: Воскресенье, 26.05.2019, 11:47 |
Сообщение № 18

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

1. UDF нужно вставлять не в UserForm, а в стандартный модуль.
2. Огрызок корежит кодировку. Замените кирилицу на латиницу.


Быть или не быть, вот в чем загвоздка!

 

Ответить

glebanidze

Дата: Понедельник, 27.05.2019, 19:52 |
Сообщение № 19

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Excel для Mac

Светлый, Спасибо вам большое! Ваши формулы работают и помогли мне очень сильно!

 

Ответить

Функция СЦЕПИТЬ в Эксель позволяет объединить содержимое двух и более ячеек в одну общую, что делает ее одним из самых полезных и необходимых инструментов программы, которым непременно нужно овладеть для эффективной работы. Давайте посмотрим, как работать с данной функцией.

Описание и синтаксис функции СЦЕПИТЬ

Данная функция начиная с Excel 2016 сменила название на “СЦЕП”, однако, для тех, кто привык к старому наименованию (“СЦЕПИТЬ”), оператор под этим названием также доступен в программе. СЦЕП и СЦЕПИТЬ абсолютно взаимозаменяемы и выполняют одну и ту же операцию по объединению содержимого выбранных ячеек в одну общую.

Формула функций выглядит так:

=СЦЕП(текст1;текст2;...) или =СЦЕПИТЬ(текст1;текст2;...)

Максимальное количество аргументов – 255.

Вставка и настройка функции

Как мы знаем, при объединении нескольких ячеек в одну, содержимое всех элементов за исключением самой верхней левой стирается. Чтобы этого не происходило, нужно использовать функцию СЦЕПИТЬ (СЦЕП).

  1. Для начала определяемся с ячейкой, в которой планируем объединить данные из других. Переходим в нее (выделяем) и щелкаем по значку “Вставить функцию” (fx).Вставка функции в ячейку таблицы Эксель
  2. В открывшемся окне вставки функции выбираем категорию “Текстовые” (или “Полный алфавитный перечень”), отмечаем строку “СЦЕП” (или “СЦЕПИТЬ”) и кликаем OK.Выбор функции СЦЕП в Эксель
  3. На экране появится окно, в котором нужно заполнить аргументы функции, в качестве которых могут быть указаны как конкретные значения, так и ссылки на ячейки. Причем последние можно указать как вручную, так и просто кликнув по нужным ячейкам в самой таблице (при это курсор должен быть установлен в поле для ввода значения напротив соответствующего аргумента). В нашем случае делаем следующее:
    • находясь в поле “Текст1” щелкаем по ячейке (A2), значение которой будет стоять на первом месте в объединенной ячейке;Заполнение аргументов функции СЦЕП в Эксель
    • кликаем по полю “Текст2”, где ставим запятую и пробел (“, “), которые будут служит разделителем между содержимыми ячеек, указанных в аргументах “Текст1” и “Текст3” (появится сразу же после того, как мы приступим к заполнению аргумента “Текст2”). Можно на свое усмотрение указывать любые символы: пробел, знаки препинания, текстовые или числовые значения и т.д.Заполнение аргументов функции СЦЕП в Excel
    • переходим в поле “Текст3” и кликаем по следующей ячейке, содержимое которой нужно добавить в общую ячейку (в нашем случае – это B2).Заполнение аргументов оператора СЦЕП в Эксель
    • аналогичным образом заполняем все оставшиеся аргументы, после чего жмем кнопку OK. При этом увидеть предварительный результат можно в нижней левой части окна аргументов.Заполнение аргументов оператора СЦЕП в Excel
  4. Все готово, нам удалось объединить содержимое всех выбранных ячеек в одну общую.Результат по функции СЦЕП в Эксель
  5. Выполнять действия выше для остальных ячеек столбца не нужно. Просто наводим указатель мыши на правый нижний угол ячейки с результатом, и, после того как он сменит вид на небольшой черный плюсик, зажав левую кнопку мыши тянем его вниз до нижней строки столбца (или до строки, для которой требуется выполнить аналогичные действия).Копировании функции СЦЕП на другие ячейки столбца в Эксель
  6. Таким образом, получаем заполненный столбец с новыми наименованиями, включающими данные по размеру и полу.Результат копирования функции СЦЕП на другие ячейки столбца в Excel

Аргументы функции без разделителей

Если разделители между содержимыми ячеек не нужны, в этом случае в значении каждого аргумента сразу указываем адреса требуемых элементов.

Аргументы функции СЦЕП (СЦЕПИТЬ) в Эксель

Правда, таким способом пользуются редко, так как сцепленные значения сразу будут идти друг за другом, что усложнит дальнейшую работу с ними.Результат по функции СЦЕП (СЦЕПИТЬ) в ячейке Эксель

Указание разделителя в отдельной ячейке

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

Например, мы добавляем запятую и пробел (“, “) в ячейку B16.

Ячейка с разделителем для функции СЦЕПИТЬ в Эксель

В этом случае, аргументы функции нужно заполнить следующим образом.

Заполнение аргументов функции СЦЕП (СЦЕПИТЬ) с разделителем в Эксель

Но здесь есть один нюанс. Чтобы при копировании формулы функции на другие ячейки не произошло нежелательного сдвига адреса ячейки с разделителем, ссылку на нее нужно сделать абсолютной. Для этого выделив адрес в поле соответствующего аргумента нажимаем кнопку F4. Напротив обозначений столбца и строки появятся символы “$”. После этого можно нажимать кнопку OK.

Заполнение аргументов функции СЦЕП (СЦЕПИТЬ) с зафиксированным разделителем в Эксель

Визуально в ячейке результат никак не будет отличаться от полученного ранее.

Результат по функции СЦЕП (СЦЕПИТЬ) с разделителем в Excel

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

Корректировка разделителя в функции СЦЕП (СЦЕПИТЬ) в Excel

Как ранее было отмечено, добавить в качестве разделителя можно любую текстовую, числовую и иную информацию, которой изначально не было в таблице.

Аргументы функции СЦЕП (СЦЕПИТЬ) с разными разделителями в Эксель

Таким образом, функция СЦЕП (СЦЕПИТЬ) предлагает большую вариативность действий, что позволяет наилучшим образом представить объединенные данные.

Результат по функции СЦЕП (СЦЕПИТЬ) с разными разделителями в Эксель

Редактирование функции

Если функция уже добавлена в ячейку, но в ее аргументы требуется внести определенные правки, сделать это можно двумя способами.

Способ 1: изменения в окне аргументов

Перейти к редактированию функции можно, просто нажав на кнопку “Вставить функцию” (fx), которая находится слева от строки формул. При этом предварительно нужно выбрать ячейку, содержащую функцию.

Переход к корректировке аргументов функции СЦЕП (СЦЕПИТЬ) в Эксель

Таким образом мы попадем в окно с аргументами функции, где можем внести требуемые изменения, после чего нажать кнопку OK.

Корректировка аргументов функции СЦЕП (СЦЕПИТЬ) в Excel

Мы получим результат с учетом скорректированных данных.

Результат по функции СЦЕП (СЦЕПИТЬ) в ячейке таблицы Excel

Способ 2: ручная корректировка формулы

Альтернативный метод изменения аргументов функции – ручная корректировка формулы. Перейти в режим редактирования можно двумя по-разному:

  1. Выделяем ячейку с функцией, затем щелкаем по строке формул и вносим в ней изменения.Редактирование формулы функции СЦЕП (СЦЕПИТЬ) в Excel
  2. Двойным щелчком мыши по ячейке с формулой активируем режим редактирования и корректируем формулу, непосредственно, в самой ячейке.Редактирование формулы функции СЦЕП (СЦЕПИТЬ) в Эксель

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

  • адреса ячеек пишутся без кавычек;
  • перечисление аргументов – через знак “;”
  • если в качестве аргумента используется символ или текст, наличие кавычек с двух сторон указанного значения обязательно.

Заключение

Благодаря умению пользоваться функцией СЦЕП (СЦЕПИТЬ) можно автоматизировать процесс объединения содержимого разных ячеек в одну общую, что в некоторых случаях, является единственным условием успешного выполнения поставленной задачи. Поэтому очень важно научиться правильно работать с данной функцией в программе Эксель.

у меня есть задача создать простой лист Excel, который принимает неопределенное количество строк в столбце, как это:

1234
123461
123151
11321

и сделать их в список через запятую в другой ячейке, что пользователь может легко скопировать и вставить в другую программу, как это:

1234,123461,123151,11321

какой самый простой способ сделать это?

источник

предполагая, что ваши данные начинаются с A1, я бы поставил следующее в столбец B:

B1:

=A1

B2:

=B1&","&A2

затем можно вставить столбец B2 вниз по всему столбцу. Последняя ячейка в столбце B теперь должна быть списком через запятую столбца A.

отвечен Sux2Lose 2011-02-02 16:37:59

источник

  • скопируйте столбец в Excel
  • Открыть Word
  • «вставить специальный» как текст только
  • выберите данные в Word (тот, который вам нужно преобразовать в текст, разделенный ,),
    нажмите CtrlH (найти и заменить)
  • в поле» найти что » введите ^p
  • в поле «заменить на» введите ,
  • выберите «заменить все»

источник

на самом деле я только что создал модуль в VBA, который выполняет всю работу. Он берет мой список диапазонов и создает строку с разделителями-запятыми, которая выводится в ячейку по моему выбору:

Function csvRange(myRange As Range)
    Dim csvRangeOutput
    Dim entry as variant
    For Each entry In myRange
        If Not IsEmpty(entry.Value) Then
            csvRangeOutput = csvRangeOutput & entry.Value & ","
        End If
    Next
    csvRange = Left(csvRangeOutput, Len(csvRangeOutput) - 1)
End Function

Итак, в моей камере, я просто ставлю =csvRange(A:A) и это дает мне список разделенных запятыми.

источник

Если у вас есть Office 365 Excel, то вы можете использовать TEXTJOIN ():

=TEXTJOIN(",",TRUE,A:A)

enter image description here

источник

альтернативный подход заключается в том, чтобы вставить столбец Excel в этот инструмент в браузере:

преобразовать.город/колонки в разделенный запятыми список

он преобразует столбец текста до запятой.

по мере того как потребитель копирует и наклеивает к другой программе так или иначе, это может быть как раз как легко для их.

отвечен sunset 2015-04-22 20:56:08

источник

вы могли бы сделать нечто подобное. Если вы не говорите об огромной электронной таблице, это будет выполнять «ok»…

  • Alt-F11, создать макрос для создания списка (см. код ниже)
  • назначить его на ярлык или кнопку панели инструментов
  • пользователь вставляет свой столбец чисел в столбец A, нажимает кнопку, и их список переходит в ячейку B1.

вот код макроса VBA:

Sub generatecsv() 

Dim i As Integer
Dim s As String

i = 1

Do Until Cells(i, 1).Value = ""
    If (s = "") Then
        s = Cells(i, 1).Value
    Else
        s = s & "," & Cells(i, 1).Value
    End If
    i = i + 1 
Loop

Cells(1, 2).Value = s

End Sub

обязательно установите формат ячейки B1 в «текст», или вы получите испорченный номер. Я уверен, что вы можете сделать это и в VBA, но я не уверен, как на данный момент, и нужно вернуться к работе. ;)

отвечен mpeterson 2011-02-02 19:12:57

источник

используйте vi или vim, чтобы просто поставить запятую в конце каждой строки:

%s/$/,/

объяснить эту команду:

  • % означает выполнить действие (т. е. найти и заменить) для всех строк
  • s указывает на замещение
  • / разделяет аргументы (т. е. s/find/replace/options)
  • $ обозначает конец строки
  • , текст замены в данном случае

источник

вы можете использовать руководство How-To Geek по превращению строки в столбец и просто обратить его. Затем экспортируйте данные в формате csv (формат с разделителями-запятыми), и у вас есть свой текстовый список разделенных запятыми! Вы можете скопировать из блокнота и положил его обратно в Excel, если вы хотите. Кроме того, если вы хотите пробел после запятой, вы можете сделать функцию поиска и замены, заменив», «на»,». Надеюсь, это поможет!

отвечен Duall 2011-02-02 16:12:16

источник

muncherelli, мне понравился ваш ответ, и я подправил его :). Просто незначительная вещь, бывают случаи, когда я вытаскиваю данные из листа и использую его для запроса к базе данных. Я добавил необязательный параметр «textQualify», который помогает создать разделенный запятыми список, используемый в запросе.

Function csvRange(myRange As Range, Optional textQualify As String)
    'e.g. csvRange(A:A)  or csvRange(A1:A2,"'") etc in a cell to hold the string
    Dim csvRangeOutput
    For Each entry In myRange
        If Not IsEmpty(entry.Value) Then
            csvRangeOutput = csvRangeOutput & textQualify & entry.Value & textQualify & ","
        End If
    Next
    csvRange = Left(csvRangeOutput, Len(csvRangeOutput) - 1)
End Function

отвечен mitch 2011-04-08 15:54:06

источник

я улучшил generatecsv () sub для обработки листа excel, который содержит несколько списков с пустыми строками, разделяющими как заголовки каждого списка, так и списки из их названий. пример

list title 1

item 1
item 2

list title 2

item 1
item 2

и объединяет их, конечно, в несколько строк, 1 в списке.

причина, у меня был клиент отправить мне несколько ключевых слов в формате списка для их веб-сайта на основе предмета, нужен способ, чтобы получить эти ключевые слова на веб-страницах легко. Так изменили распорядок и пришли до следующего, также я изменил имена переменных на meaninful имена:

    Sub generatecsv()

      Dim dataRow As Integer
      Dim listRow As Integer
      Dim data As String

      dataRow = 1: Rem the row that it is being read from column A otherwise known as 1 in vb script
      listRow = 1: Rem the row in column B that is getting written

      Do Until Cells(dataRow, 1).Value = "" And Cells(dataRow + 1, 1).Value = ""
        If (data = "") Then
          data = Cells(dataRow, 1).Value
        Else
          If Cells(dataRow, 1).Value <> "" Then
            data = data & "," & Cells(dataRow, 1).Value
          Else
            Cells(listRow, 2).Value = data
            data = ""
            listRow = listRow + 1
          End If
        End If
        dataRow = dataRow + 1
      Loop

      Cells(listRow, 2).Value = data

    End Sub

источник

Sux2Lose ответ — мой предпочтительный метод, но он не работает, если вы имеете дело с более чем парой тысяч строк, и может сломаться еще меньше строк, Если ваш компьютер не имеет много доступной памяти.

Лучшая практика в этом случае, вероятно, скопировать столбец, создать новую книгу, мимо специальных в A1 новой книги и Transpose Так что теперь столбец подряд. Затем сохраните книгу как .csv. Ваш csv теперь в основном простой текст разделенный запятыми список, который можно открыть в текстовом редакторе.

Примечание: не забудьте транспонировать столбец в строку перед сохранением в формате csv. В противном случае Excel не будет знать, чтобы придерживаться запятых между значениями.

источник

один из самых легких путей использовать замазин.co веб-приложение для такого рода задач разделения запятых. Просто заполните данные столбца и нажмите кнопку Конвертировать, чтобы сделать список разделенных запятыми. Вы даже можете использовать некоторые другие настройки для улучшения желаемого результата.

http://zamazin.co/comma-separator-tool

enter image description here

отвечен Hakan 2016-11-22 08:28:17

источник

использовать =CONCATENATE(A1;",";A2;",";A3;",";A4;",";A5) на ячейке, которую требуется отобразить результат.

отвечен Johnny 2011-02-03 11:39:22

источник

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Еще…Меньше

Функция CONCAT объединяет текст из нескольких диапазонов и (или) строк, но не предоставляет аргументы delimiter или IgnoreEmpty. 

Функция CONCAT заменяет функцию CONCATENATE. Функция СЦЕПИТЬ (CONCATENATE) также будет поддерживаться для совместимости с более ранними версиями Excel. 

Синтаксис

СЦЕПИТЬ(текст1; [текст2]; …)

Аргумент

Описание

text1

(обязательно)

Элемент текста, который нужно присоединить. Строка или массив строк, например диапазон ячеек.

[text2, …]

(необязательно)

Дополнительные текстовые элементы для объединения. Для текстовых элементов можно указать до 253 аргументов. Каждый из них может быть строкой или массивом строк, например диапазоном ячеек.

Например, выражение =СЦЕП(«Не»;» «;»слышны»;» «;»в»;» «;»саду»;» «;»даже»;» «;»шорохи.») вернет строку Не слышны в саду даже шорохи.

Совет: Чтобы включить разделители (например, интервалы или амперсанды (&)) между текстом, который требуется объединить, и удалить пустые аргументы, которые не должны отображаться в объединенном текстовом результате, можно использовать функцию TEXTJOIN.

Примечания

  • Если объединенная строка содержит свыше 32767 символов (ограничение для ячейки), функция СЦЕП вернет ошибку #ЗНАЧ!.

Примеры

Скопируйте данные примеров из приведенных ниже таблиц и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Пример 1

=СЦЕПИТЬ(B:B; C:C)

A’s

B’s

a1

b1

a2

b2

a4

b4

a5

b5

a6

b6

a7

b7

Так как эта функция допускает ссылки на целый столбец и строку, она возвращает следующий результат: A’sa1a2a4a5a6a7B’sb1b2b4b5b6b7

Пример 2

=СЦЕПИТЬ(B2:C8)

A’s

B’s

a1

b1

a2

b2

a4

b4

a5

b5

a6

b6

a7

b7

Результат: a1b1a2b2a4b4a5b5a6b6a7b7

Пример 3

Данные

Имя

Фамилия

вида

Виталий

Токарев

речная форель

Fourth

Pine

32

Формула

Описание

Результат

=СЦЕПИТЬ(«Популяция рек для «;A2;» «;A3;» составляет «;A4;» на километр.»)

Создает предложение, объединяя данные в столбце А с остальным текстом.

Популяция рек для вида речная форель составляет 32 на километр.

=СЦЕПИТЬ(B2;» «; C2)

Объединяет строку в ячейке В2, пробел и значение в ячейке С2.

Виталий Токарев

=СЦЕПИТЬ(C2; «, «; B2)

Объединяет текст в ячейке C2, строку, состоящую из запятой и пробела, и значение в ячейке B2.

Токарев, Виталий

=СЦЕПИТЬ(B3;» & «; C3)

Объединяет строку в ячейке B3, строку, состоящую из пробела, амперсанда и еще одного пробела, и значение в ячейке C3.

Fourth & Pine

=B3 & » & » & C3

Объединяет те же элементы, что и в предыдущем примере, но с помощью оператора & (амперсанд) вместо функции СЦЕПИТЬ.

Fourth & Pine

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция СЦЕПИТЬ

Функция ОБЪЕДИНИТЬ

Общие сведения о формулах в Excel

Рекомендации, позволяющие избежать появления неработающих формул

Поиск ошибок в формулах

Сочетания клавиш и горячие клавиши в Excel

Текстовые функции (справочник)

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Нужна дополнительная помощь?

Функция конкатенации в Excel используется для объединения или объединения двух или более чем двух символов, строк или чисел, функция конкатенации заменяет использование оператора & для соединения, поскольку операторы & сделали синтаксис более сложным, в то время как функция конкатенации выглядит более чистой и Легко понять.

Аргументы, кроме первого, необязательны; поэтому они заключены в квадратные скобки.

Как объединить ячейки в Excel — ЭКСЕЛЬ ХАК

Вообще, большинство типовых задач в Excel решается с помощью простых формул, в которых не сложно разобраться. И в этой заметке я попробую привести максимально наглядные примеры по объединению ячеек (рассмотрю два варианта: когда ячейки пустые, и когда в них уже есть данные).

специалист

Мнение эксперта

Витальева Анжела, консультант по работе с офисными программами

Со всеми вопросами обращайтесь ко мне!

Задать вопрос эксперту

Еще больше полезных приемов в работе со списками данных и функциями в Excel вы узнаете в практическом курсе От новичка до мастера Excel. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!

muncherelli, мне понравился ваш ответ, и я подправил его :). Просто незначительная вещь, бывают случаи, когда я вытаскиваю данные из листа и использую его для запроса к базе данных. Я добавил необязательный параметр «textQualify», который помогает создать разделенный запятыми список, используемый в запросе.

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

В общем, ни одна из колонок, о которых я говорил выше, не подходит для уникальной идентификации. Но если мы объединим все колонки вместе, мы увеличим вероятность того, что значение будет абсолютно уникальным.

Как объединить ячейки в Excel с помощью контекстного меню

Выделите диапазон ячеек для сцепки. Нажмите правую клавишу мыши. В контекстном меню выберите пункт «Формат ячеек»:

Как объединить ячейки в Excel с помощью контекстного меню

В появившемся окне перейдите на вкладку «Выравнивание» и отметьте галочкой пункт «Объединение ячеек», затем нажмите «ОК»:

Как объединить ячейки в Эксель с помощью контекстного меню

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

Как объединить ячейки в Excel с помощью контекстного меню

В результате, у нас остался текст «Фамилия», а «Имя» и «Отчество» были удалены:

Объединить функцию Excel.

В функции CONCATENATE в Excel мы также можем передать полную формулу CONCATENATE в Excel в качестве аргумента. Например, если мы хотим, чтобы результат двух формул был объединен, мы можем передать формулы в качестве аргумента, чтобы получить требуемый результат.

специалист

Мнение эксперта

Витальева Анжела, консультант по работе с офисными программами

Со всеми вопросами обращайтесь ко мне!

Задать вопрос эксперту

Когда мы поместили пробел в двойные кавычки после запятой после первого аргумента, функция CONCATENATE приняла его как второй аргумент. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!

Например, если у нас есть список имен и фамилий в столбцах A и B, и мы хотим, чтобы полное имя, которое является первым именем вместе с фамилией в столбце C, мы будем использовать функцию CONCATENATE.
Как объединить ячейки в Экселе без потери текста

Как объединить ячейки в Excel (простые способы)

  • «Объединить и поместить в центре» — система объединит ячейки и отформатирует текст по центру;
  • «Объединить по строкам» — эта настройка позволит в каждой строке произвести сцепку ячеек.
  • «Объединить ячейки» — система произведет сцепку выделенного диапазона без централизации и т.д.
  • «Отменить объединение ячеек» — отменить сцепку ячеек.

Таким образом, вы можете видеть, когда мы передаем аргумент, отличный от ссылочного значения, и мы всегда должны заключать его в двойные кавычки, потому что MS-Excel и другие офисные пакеты написаны на C ++, а в C ++ строковые литералы всегда берутся в двойных кавычках.

Если в ячейках есть данные (которые также нужно объединить)

Важная ремарка : при объединении ячеек мы будем не суммировать их содержимое, а «склеивать» (сцеплять) между собой. Т.е. если у вас в одной ячейке приводится имя, а в другой фамилия — после объединения будет одна строка с именем и фамилией; если в одной ячейке цифра «5», а в другой «3» — после объединения будет «53» (а не как при сумме: «8») .

Способ 1

В качестве примера взял список ФИО нескольких вымышленных персонажей. Задача, кстати, вполне приближена к жизни (приходилось с этим сталкиваться).

Исходные данные

Сначала необходимо выбрать одну из ячеек напротив первой строки (я взял E1) и написать в строке формул следующее выражение:

После того, как нажмете Enter, формула сцепит все перечисленные ячейки в ней. В моем случае получилось ФИО, но без пробелов (что ни есть удобно).

Ячейки сцеплены

Для того, чтобы исправить это, просто измените частично формулу (добавьте кавычки с пробелом, как в моем примере) :

Если вам нужны пробелы (или другие символы) между объединенными данными — корректируем формулу

Разумеется, вместо пробела в кавычках можно поставить любой другой символ (дефис, например).

После, останется только растянуть формулу на другие строки, и задача будет решенной.

Как перенести склеенные данные в другой документ (чтобы они не зависели от формул)

Наши сцепленные строки в этом документе зависят от формул, и если слегка их изменить — то все «разъедется». В ряде случае гораздо удобнее работать не с ними, а с текстовыми строками. Попробуем перенести наши результаты в другой документ (или новый лист).

И так, сначала необходимо выделить наши сцепленные ячейки (в моем примере это столбец «E»), нажать правой кнопкой мышки по ним и выбрать функцию «Копировать» .

Копировать

Далее открыть новый документ (или лист) кликнуть правой кнопкой мышки по нужной ячейке и нажать по меню «Специальная вставка» . См. пример ниже.

Спец. вставка

В появившемся окне настроек укажите, что вам требуется вставить только «Значения» (а не сами формулы) и нажмите OK.

Значения

Как видите на скрине ниже, в документ были вставлены текстовые значения из ранее сцепленных ячеек (а не сами формулы).

Способ 2

Объединять ячейки в Excel можно и без спец. формул, достаточно использовать знак «&».

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

Если вместо пробелов вам нужны дефисы, формула несколько преобразится:

Как будет выглядеть формула, если вместо пробелов вставим дефисы

Когда «настройка» формулы будет завершена — просто потяните мышкой за уголок и растяните ее на другие строки (столбцы). После, Excel применит ее к другим ячейкам (пример ниже).

Что касается переноса полученных результатов в другой документ, то это делается аналогично вышесказанному.

специалист

Мнение эксперта

Витальева Анжела, консультант по работе с офисными программами

Со всеми вопросами обращайтесь ко мне!

Задать вопрос эксперту

Но на практике имеет смысл передавать в формулу минимум два аргумента, иначе на выходе мы получим то же самое, что и передали на входе, а это не имеет смысла. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!

Рассмотрим как сцепить текст в Excel на простейшем примере. Допустим, в ячейке А1 у нас есть текст «Иванов», в ячейке А2 находится текст «Иван», а в ячейке А3 записан текст «Иванович». Получим ФИО склейкой (сцеплением) содержимого всех трёх ячеек. Формула будет выглядеть так:

Функция СЦЕПИТЬ в Excel | MS Office | Учебные статьи

Для этих упражнений, я рекомендую использовать документы Excel, которые я создал специально для этого урока. Если вы пропустили это раньше, то обязательно скачайте бесплатно прилагающиеся к этому уроку, Книгу Excel, с которой вы сможете работать и следить за действиями по ходу урока.

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel строки автоматически скрывались
  • Excel строка цифры столбец буквы
  • Excel строка формула массива
  • Excel строка формул формат
  • Excel строка формул увеличить шрифт

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии