Преобразование столбца в строку через запятую в 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
Запятую в самой первой ячейке можно заменить, на что-то другое, если нужно.
Формулу во втором столбце растягиваем вниз, насколько потребуется.
Если полученный список нужно вставить в другой лист эксель, то не забываем избавиться от формул, вставив предварительно данные в блокнот.

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

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

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

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

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

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

у меня есть задача создать простой лист 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

источник

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

  • Преобразование списка столбцов в список, разделенный запятыми, с помощью функции TEXTJOIN
  • Преобразование списка столбцов в список, разделенный запятыми, с помощью функции CONCATENATE
  • Преобразование списка столбцов в список, разделенный запятыми, с помощью VBA
  • Преобразовать список столбцов в список, разделенный запятыми, с помощью Kutools for Excel
  • Обратное объединение и преобразование одной ячейки (зазубренный список с запятыми) в список строк / столбцов в Excel


Преобразование списка столбцов в список, разделенный запятыми, с помощью функции TEXTJOIN

Функция Excel TEXTJOIN объединяет несколько значений из строки, столбца или диапазона ячеек с определенным разделителем.

Обратите внимание, что эта функция доступна только в Excel для Office 365, Excel 2021 и Excel 2019.

Чтобы преобразовать список столбцов в список, разделенный запятыми, выберите пустую ячейку, например, ячейку C1, и введите эту формулу =ТЕКСТСОЕДИНИТЬ(«, «,ИСТИНА,A1:A7) (A1: A7 это столбец, который вы преобразуете в список с запятыми, , указывает, как вы хотите разделить список). Смотрите скриншот ниже:


Преобразование списка столбцов в список, разделенный запятыми, с помощью функции CONCATENATE

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

1. Выберите пустую ячейку рядом с первыми данными списка, например ячейкой C1, и введите эту формулу = СЦЕПИТЬ (ТРАНСПОРТ (A1: A7) & «,») (A1: A7 это столбец, который вы преобразуете в список с запятыми, »,« указывает разделитель, который вы хотите разделить список). Смотрите скриншоты ниже:

2. Выделите ТРАНСПОРТ (A1: A7) & «,» в формуле и нажмите F9 .

3. Убрать фигурные скобки {и } из формулы и нажмите Enter .

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

Быстро преобразовать список столбцов в список, разделенный запятыми, с помощью Kutools for Excel

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

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

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

1. Держать ALT и нажмите F11 на клавиатуре, чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, и скопируйте VBA в модуль.

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

Sub ChangeRange()
'Updateby20140310
Dim rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
outStr = ""
For Each rng In InputRng
    If outStr = "" Then
        outStr = rng.Value
    Else
        outStr = outStr & "," & rng.Value
    End If
Next
OutRng.Value = outStr
End Sub

3. Нажмите Run или нажмите F5 для запуска VBA.

4. На экране появится диалоговое окно, в котором вы можете выбрать список столбцов, который хотите преобразовать. Смотрите скриншот:

5. Нажмите OK, затем появилось еще одно диалоговое окно для выбора ячейки. Смотрите скриншот:

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

Функции: В приведенном выше VBA «,» указывает на нужный разделитель, и вы можете изменить его по своему усмотрению.


Преобразовать список столбцов в список, разделенный запятыми, с помощью Kutools for Excel

Вы также можете подать заявку Kutools for ExcelАвтора Сочетать утилита для объединения списка столбцов и простого разделения каждого значения запятой.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

1. Выберите список столбцов, который вы преобразуете в список, разделенный запятыми, и нажмите Кутулс > Слияние и разделение> Объединение строк, столбцов или ячеек без потери данных.

2. В открывшемся диалоговом окне Объединить столбцы или строки вам необходимо:
(1) Проверьте Объединить ряды вариант в Чтобы объединить выбранные ячейки в соответствии со следующими параметрами раздел;
(2) В Укажите разделитель раздел, проверьте Другой разделитель вариант и введите запятую , в следующее поле;

3, Нажмите Ok кнопку.

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

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


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


Обратное объединение и преобразование одной ячейки (зазубренный список с запятыми) в список строк / столбцов в Excel

Обычно пользователи Excel могут применять Текст в столбцы возможность разбить одну ячейку на несколько столбцов, но нет прямого метода преобразования одной ячейки в несколько строк. Однако, Kutools for ExcelАвтора Разделить клетки Утилита может помочь вам легко сделать это, как показано на скриншоте ниже.


Относительные статьи:

  • Преобразование названия месяца в число в Excel
  • Преобразование военного времени в стандартное время
  • Преобразование одной ячейки в несколько ячеек / строк в Excel
 

Siroff

Пользователь

Сообщений: 139
Регистрация: 18.10.2013

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

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Сцепить много ячеек с указанным разделителем

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Vik_tor

Пользователь

Сообщений: 1927
Регистрация: 19.09.2014

=СЦЕПИТЬ(A2;»,»;A3;»,»;A4)

 

sv2013

Пользователь

Сообщений: 657
Регистрация: 09.06.2015

#4

27.11.2015 14:39:06

добрый день,можно также макросом

Код
Sub yyy()
    Dim z(), i&, t$
    z = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Value: t = z(1, 1)
    For i = 2 To UBound(z): t = t & "," & z(i, 1): Next
   Range("B1") = Trim(t)
End Sub

Прикрепленные файлы

  • example_27_11_2015_pl.xls (35.5 КБ)

 

Siroff

Пользователь

Сообщений: 139
Регистрация: 18.10.2013

Вопрос не решен, в файле более 100 слов таким образом =СЦЕПИТЬ(A2;»,»;A3;»,»;A4) прописывать в ручную не подходит, другие ответы не понял как реализовать.  пример приложил.

 

Siroff, не поленитесь и пройдите по ссылке второго комментария

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Самое простое:
=СЦЕПИТЬ($A1;ЕСЛИ(ДЛСТР(ИНДЕКС(C:C;СТРОКА()+1));СЦЕПИТЬ(«, «;ИНДЕКС(C:C;СТРОКА()+1));»»))

Копируете и вставляете как значение куда надо первую яч. с формулой.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Vik_tor

Пользователь

Сообщений: 1927
Регистрация: 19.09.2014

добавил кнопку в #5 для наглядности. макросы надо разрешить.
100 слов это сила.

 

Siroff

Пользователь

Сообщений: 139
Регистрация: 18.10.2013

 

Vik_tor

Пользователь

Сообщений: 1927
Регистрация: 19.09.2014

Спасибо надо говорить

sv2013

, его макрос.

 

Siroff

Пользователь

Сообщений: 139
Регистрация: 18.10.2013

 

Siroff

Пользователь

Сообщений: 139
Регистрация: 18.10.2013

Подскажите почему данный макрос не работает с емейл адресами? Точнее обрабатывает, но только первые 1500, далее нет.
Кто нибудь может поправить?
Пример приложил.
файл большой, не влазит, загрузил в

облако

.

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Потому что у текста в одной ячейке есть ограничение на кол-во символов = 32767
Так же есть ограничение на кол-во символов в просмотре в строке формул = 1024
Возможно, Вы просто не видите всех данных в просмотре. Но они есть.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Siroff

Пользователь

Сообщений: 139
Регистрация: 18.10.2013

#14

03.11.2016 16:45:56

Цитата
The_Prist написал:
Возможно, Вы просто не видите всех данных в просмотре. Но они есть.

Пробовал, копировал и вставлял в программу для отправки сообщений нет там всех данных, только первые 1500.

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

сколько по Вашему среднее кол-во символов в каждом e-mail?  У Вас — 20.
1500 * 20 = 30000
Есть предположение — что как раз и получается 32767 в итоге с Вашими 1500 адресами. А я выше писал максимальную вместимость одной ячейки.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#16

03.11.2016 17:46:36

Цитата
The_Prist написал:
Есть предположение — что как раз и получается 32767

Как бы не так  :D
Debug.Print Len(t) = 231 452

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#17

03.11.2016 17:51:22

Ну я имел ввиду, что получается не меньше этого :) И притом речь про 1500 адресов шла, а не о всех. А они как раз видимо где-то в пределах 32767 символов и получились. Вот и выводит в ячейку тот максимум, который может быть записан.

Изменено: The_Prist03.11.2016 17:52:34

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

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

1234
123461
123151
11321

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

1234,123461,123151,11321

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

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

B1:

=A1

БИ 2:

=B1&","&A2

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

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

ответ дан Michael Joseph681

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

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

ответ дан Scott Craner12k

Я на самом деле только что создал модуль в 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) и это дает мне список, разделенный запятыми.

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

convert.town/column-to-comma-separated-list

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

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

Вы могли бы сделать что-то вроде этого. Если вы не говорите об огромной электронной таблице, это будет хорошо.

  • 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, но я не знаю, как в данный момент, и мне нужно вернуться к работе. ;)

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

%s/$/,/

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

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

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

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

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

list title 1

item 1
item 2

list title 2

item 1
item 2

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

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

    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 не сможет вставить запятую между значениями.

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

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

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

Понравилась статья? Поделить с друзьями:
  • Преобразование word в mobi
  • Преобразование word в latex
  • Преобразование word в dword
  • Преобразование word doc в word
  • Преобразование tiff в word