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

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

1234 123461 123151 11321 

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

 1234,123461,123151,11321 

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

  • Как форматировать ячейки Excel для отображения продолжительности в годах и в месяцах?
  • Необходимо разграничить таблицу из 8 столбцов только на 5
  • Как увеличить строку, например, AA до AB?
  • Почему Excel считает CSV-файлы SYLK?
  • Excel: используйте формулу в формате ячейки
  • Группа анализа не видна
  • Excel - значения pivot в одной ячейке (в виде значения, разделенного запятыми)
  • В Excel, как вы автоматически заполняете до следующего значения?
  • 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

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

    Interesting Posts

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

    Как заставить Debian использовать размер физического сектора на жестком диске?

    Как вручную включить «выключить отображение»?

    Не удалось получить общесистемную электронную почту

    Инструмент для автоматического комбинирования большого числа сводных таблиц во многих больших листах Excel?

    Как я могу подключиться к сети через Wi-Fi в Windows 8?

    Как вы выбрасываете cd с помощью клавиатуры на dell inspiron 6000

    Различные фоны для настройки двойного монитора

    Перемещение списка «Наиболее посещаемых» в Google Chrome?

    Не распознан жесткий диск, пароль администратора супервизора

    Отправка электронной почты на Android с использованием API JavaMail без использования стандартного / встроенного приложения

    Блокировать / удалить «Web» / Bing Search из Windows 10

    Ошибка при выпуске поврежденных файлов Windows 10 0x800f081f

    Windows 8 из памяти с течением времени: Toke Paged потребляет более 5 ГБ

    Получение через EFS (зашифрованная файловая система)

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