Как вы сопоставляете столбцы на основе заголовков столбцов в Excel Power Query - PullRequest
0 голосов
/ 25 марта 2020

Я совершенно новичок в Power Query, так что простите, если это очевидно. У меня есть 3 файла в папке, и я импортировал их в Excel, используя «Получить данные из папки». (Я поставил свои таблицы внизу вопроса)

Когда они добавляются друг к другу, они совпадают, основываясь на столбце, а не на имени столбца. См. Ниже:

Image of My current failure

Мне было интересно, смогу ли я добавить эти файлы, используя заголовок столбца, а не сам столбец. Так, например, все столбцы «Test2» будут в столбце 2.

Таблицы:

+-------+-------+-------+
| Test1 | Test2 | Test3 |
+-------+-------+-------+
| a     | aa    | aaa   |
| b     | bb    | bbb   |
| c     | cc    | ccc   |
+-------+-------+-------+

+-------+-------+-------+
| Test1 | Test2 | Test3 |
+-------+-------+-------+
| d     | dd    | ddd   |
| e     | ee    | eee   |
| f     | ff    | fff   |
+-------+-------+-------+

+-------+-------+-------+
| Test1 | Test3 | Test2 |
+-------+-------+-------+
| g     | ggg   | gg    |
| h     | hhh   | hh    |
| i     | iii   | ii    |
+-------+-------+-------+

Изменить, дополнительная информация для комментариев: Как только я нажал кнопку «Получить данные из папки», они выглядели так, как показано ниже : enter image description here

Затем я добавил столбец с пользовательской формулой (см. Ниже), чтобы развернуть содержимое файла:

= Excel.Workbook (Файл. Содержание ([Путь к папке] & "\" & [Имя]), null, true)

Обратите внимание, что я пытаюсь заставить его работать с 3 файлами, но затем мне придется применить его к сотням файлов, поэтому было бы неплохо, если бы мне не приходилось менять каждый файл.

Данные выглядят так:

Image of data table

1 Ответ

0 голосов
/ 26 марта 2020

Несколько слепых советов, поскольку вы не указали свой код. Вместо:

= Excel.Workbook(File.Contents([Folder Path]&"\"&[Name]), null, true)

try:

= Excel.Workbook([Content], true, true)

(Основное изменение - передать true второму параметру useHeaders вместо null, поскольку это может позволить первая строка для использования в качестве заголовков.

Я считаю, что использование [Content] эквивалентно использованию File.Contents([Folder Path]&"\"&[Name]). Так что это не изменение, а просто упрощение кода).


Кроме того, убедитесь, что вы используете Table.Combine для объединения таблиц, поскольку это должно обеспечить выравнивание имен столбцов перед добавлением таблиц и получение ожидаемого результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...