Преобразовать текст в столбцы

Преобразовать текст в столбцы

Я получаю пакет данных в виде файла .csv от нашего менеджера баз данных. Я импортирую эти данные в Excel для форматирования и сортировки. Однако один столбец содержит три фрагмента информации, которые я хочу проанализировать и отсортировать. Одна ячейка в этом столбце состоит из номера идентификатора пользователя и имени пользователя (например: "83920 - johndavis"). Я хочу иметь возможность сортировать этот столбец на основе каждого из этих терминов. Возможно ли это с помощью макросов в Excel или мне следует использовать VBA, и если да, то как вы предлагаете подойти к этой проблеме?

У меня есть опыт работы с языками C и Python, поэтому, несмотря на ограниченные знания VBA, у меня есть опыт в области компьютерных наук.

Вот некоторая информация, которую я собрал, экспериментируя с решениями. Эта страница была моей отправной точкой:https://www.cedarville.edu/insights/blog/excel-how-to-parse-data-split-column-into-multiple.aspx Однако, когда я попытался использовать этот метод, разделение столбцов столкнулось с ошибками и не разделилось должным образом (см. рисунки). Я полагаю, что это происходит потому, что данные столбцов — это фактические данные, обработанные в VBA с другой страницы таблицы Excel. Как бы вы решили разрешить эту идиосинкразию?

Данные, отображаемые на панели функций

Страница 1 мастера разделения столбцов

Страница 2 Мастера разделения столбцов

Страница 3 Мастера разделения столбцов

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

решение1

Это довольно странный CSV, поскольку он содержит формулы Excel. Не ожидается, что CSV будет содержать что-то еще, кроме данных.

В настоящее время ячейка содержит не только значение данных B09 - Theater, но и формулу:

=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""), "B09 - Theater")

TheЕСЛИОШИБКАформула вычисляет (фиктивную) функцию @__xludf.DUMMYFUNCTION("""COMPUTED_VALUE""")и, если она возвращает ошибку, записывает значение B09 - Theater.

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

После этого вы можете использоватьответ iskyfire.

решение2

Согласно моему комментарию к вашему посту, вы можете сделать это:

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

Я бы также отметил, что ваше изображение, показывающее ссылку на функцию VBA с префиксом @__xludf.likely, означает, что функция недоступна для текущей рабочей книги. Она может находиться в другом модуле другой рабочей книги или в недоступной библиотеке.

Независимо от этого, в простых случаях с частью 1разделительчасть2, вы можете использовать формулы выше.

В более сложных случаях вы можете выбрать любую ячейку в данных и использовать команду «Данные»>«Получить и преобразовать данные»>«Из таблицы/диапазона», чтобы запустить PowerQuery.

В редакторе Power Query вы можете выбрать столбец, который хотите разделить, и использовать меню «Главная»> «Преобразование»> «Разделить столбец»> «По разделителю», а затем настроить его следующим образом (например):

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

Вывод выглядит так: введите описание изображения здесь

Затем можно использовать команду «Главная»>«Закрыть и загрузить», чтобы загрузить результаты обратно в рабочую книгу.

решение3

Преобразовать текст в столбцы

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

Примечание:Если у вас есть несколько уникальных разделителей, разделяющих каждое значение данных, например, 83920/johndavis - new york cityвы можете использовать поиск и замену, чтобы изменить все символы -на /или наоборот. Вам нужно иметь один и тот же разделитель, разделяющий каждое значение данных, или вам придется запускать мастер несколько раз.

Видетьhttps://support.microsoft.com/en-us/office/split-text-into-different-columns-with-the-convert-text-to-columns-wizard-30b14928-5550-41f5-97ca-7a3e9c363ed7для получения дополнительной информации.

Удаление посторонних функций

Если имеющиеся у вас данные инкапсулированы, вы можете использовать функцию «Найти и заменить» с Match entire cell contentsотмеченными и Look in: Formulasвыбранными элементами.

Выберите диапазон, перейдите в меню «Найти и заменить», введите нужные данные и замените все. Например, =IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),"на пустую строку.

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

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

Связанный контент