Разделение и отключение столбцов Power Query в Excel

#excel #vba #powerquery #get-transform

#excel #vba #powerquery #получение-преобразование

Вопрос:

У меня есть структура данных, которая чем-то сравнима с этим

 | type | A-metric1 | A-metric2 | B-metric1 | B-metric2 |
| aRow |     1     |     2     |     3     |     4     |
  

Я хотел бы превратить A и B в измерения a и преобразовать их в строки, чтобы получилось что-то вроде этого

 | type | dimension | metric1 | metric2 |
| aRow |     A     |    1    |    2    |
| aRow |     B     |    3    |    4    |
  

Вероятно, я мог бы сделать это вручную, дублируя строку типа столько раз, сколько имеется меток измерений, а затем извлечь показатели по порядку и выполнить это в Excel с помощью макроса.

Однако я, вероятно, буду обрабатывать большие файлы и, вероятно, не смогу эффективно манипулировать данными такого размера в VBA. Мне было интересно, возможно ли что-то подобное в Excels Power Query / Get amp; Transform?

Извините, если дублирую — я не уверен, как сформулировать этот вопрос, чтобы получить соответствующие результаты поиска.

Ответ №1:

Вы можете применить следующий подход:

 let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    unpivot = Table.UnpivotOtherColumns(Source, {"type"}, "Attribute", "Value"),
    split = Table.SplitColumn(unpivot, "Attribute", Splitter.SplitTextByDelimiter("-", 1), {"dimension", "metric"}),
    pivot = Table.Pivot(split, List.Distinct(split[metric]), "metric", "Value")
in
    pivot
  

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

Комментарии:

1. Это выглядит многообещающе, мне потребуется некоторое время, чтобы понять, что делает каждый оператор, надеюсь, вы понимаете, что я воздержусь от принятия этого ответа в данный момент по этой причине? В противном случае спасибо.