Доступ: развернуть столбец, содержащий отформатированные строки, в несколько столбцов - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть следующие табличные данные:

Необработанные данные:

Description
String A Q1FY18
String B Q1FY18, String B Q2FY18
String C Q4FY17, String C Q1FY18, String D Q2FY18
String E Q2FY18

Я хотел бы разбить этот столбец на несколько столбцов. Целевой фрейм данных будет выглядеть так:

Желаемый выход:

Description  Period
String A     Q1FY18
String B     Q1FY18
String B     Q2FY18
String C     Q4FY17
String C     Q1FY18
String D     Q2FY18
String E     Q2FY18

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

Первый шаг

Description  Period1 Period2
String A     Q1FY18
String B     Q1FY18  Q2FY18
String C     Q4FY17  Q1FY18
String E     Q1FY18  Q2FY18

Следующим шагом будет свернуть таблицу, чтобы получить желаемый результат. Было бы проще, если бы я мог использовать другие инструменты для манипулирования данными, такие как R или Python, но они не подходят в этом случае из-за ограничений конечного пользователя. Как вы будете преобразовывать необработанные данные, чтобы получить желаемый результат? Есть ли способ разделить необработанные данные, используя запятую в качестве разделителя и имея доступ, автоматически определяя количество новых столбцов, которые он должен создать? Буду признателен за вашу помощь!

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете попробовать что-то вроде этого:

Dim strArray() As String

   strTest = "String B Q1FY18, String B Q2FY18"
   strArray = Split(strTest, ",")

   For intCount = LBound(strArray) To UBound(strArray)
      Debug.Print Trim(strArray(intCount))
   Next
...