#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. Это выглядит многообещающе, мне потребуется некоторое время, чтобы понять, что делает каждый оператор, надеюсь, вы понимаете, что я воздержусь от принятия этого ответа в данный момент по этой причине? В противном случае спасибо.