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

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

1234 123461 123151 11321 

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

 1234,123461,123151,11321 

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

13 Solutions collect form web for “Преобразовать столбец в список, разделенный запятыми”

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

B1:

 =A1 

БИ 2:

 =B1&","&A2 

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

  • Скопировать столбец в Excel
  • Открытое слово
  • «Вставить специальные» только как текст
  • Выберите данные в Word (тот, который вам нужно преобразовать в текст, разделенный), нажмите Ctrl- H (Найти и заменить)
  • В поле «Найти, что» введите ^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) и он дает мне список с разделителями-запятыми.

Альтернативный подход заключается в том, чтобы вставить столбец 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 )
  • $ Представляет собой конец строки
  • , Является заменяющим текстом в этом случае

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

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

Введите описание изображения здесь

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

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

 Function csvRange(myRange As Range, Optional textQualify As String) 'eg 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 

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

 list title 1 item 1 item 2 list title 2 item 1 item 2 

И объединяет их в несколько рядов, по одному в списке.

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

  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 не будет знать запятые между значениями.

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

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

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

Введите описание изображения здесь

  • Как расширить все столбцы в электронной таблице Excel?
  • Excel - значения pivot в одной ячейке (в виде значения, разделенного запятыми)
  • Как присоединиться к двум листам в Excel, как в SQL?
  • Слияние таблиц в Excel
  • Как вы автоматически изменяете размеры ячеек в Excel?
  • Excel - столбцы для одной ячейки
  • Excel: используйте формулу в формате ячейки
  • Как указать конкретный рабочий лист для открытия книги MS Excel с помощью гиперссылки?
  • Гистограмма Excel
  • Формат номера Excel для преобразования числа месяцев в название месяца
  • Countif в Excel с несколькими критериями
  • В Excel, как вы автоматически заполняете до следующего значения?
  • Interesting Posts

    Autohotkey – как переопределить состояние клавиатуры

    Не удается получить доступ к виртуальной машине VMware через SSH

    Любые способы добавления новых (отредактированных) сокращений в OneNote 2010?

    Google Chrome продолжает разбивать вкладки

    Восстановление случайно удаленного файла в Ubuntu

    Несколько языков ввода, переключение между двумя

    Как скопировать вывод файлового менеджера FAR

    В Excel 2010 функция = COUNTIF, отображающая значение неправильно

    Есть ли способ запустить git внутри Powershell?

    Backspace в Google Chrome не «назад к последней странице»?

    Ивритские письма, отображаемые в квадратах в еврейском шрифте в Chrome на Mac OS X 10.10.5 (Yosemite)

    Какой лучший инструмент для автоматического резервного копирования выбранных папок из Windows на внешний жесткий диск?

    Выберите другой шрифт в Microsoft Word

    ПК Windows 7 часто зависает при постоянном освещении жесткого диска

    Как сделать резервную копию Windows 8?

    Давайте будем гением компьютера.