У меня есть папка с множеством CSV-файлов, в которых первые восемь столбцов имеют одинаковый заголовок, но разное количество столбцов после первых восьми.Я пытаюсь использовать Запросы и соединения в Excel 2016, чтобы завершить это.
Вот пример формата файлов CSV (представьте, что в A - H есть строковые значения):
----------------------------------------------------------------------------------------------------------------
| A | B | C | D | E | F | G | H | Company 1 | Value (1) | Company 2 | Value (2) | etc... |
----------------------------------------------------------------------------------------------------------------
| Product 1 | | | | | | | | .05 | 25.00 | .08 | 14.00 | |
----------------------------------------------------------------------------------------------------------------
| Product 2 | | | | | | | | .16 | 43.00 | .06 | 18.00 | |
----------------------------------------------------------------------------------------------------------------
Еще раз: столбцы A - H одинаковы для каждого файла CSV, но каждый файл имеет разное количество компаний / значений (названия компаний различны для каждого файла).
Я сделалнеобходимые шаги для одного файла CSV, и я надеялся, что есть какой-то способ, которым я мог бы использовать его в качестве шаблона для других.
Вот шаги, которые мне нужно сделать в редакторе запросов Excel:
- Удалить некоторые столбцы «AH» (эти заголовки соответствуют всем файлам, не должно быть трудным)
- Удалить все столбцы «Значение (#)» - их количество в каждом файле CSV различно
- Отключить все столбцы «Компания №» (теперь каждый столбец после сопоставления столбцов A - H)потому что столбцы «Значение (#)» были удалены на предыдущем шаге)
- Переименовать столбец со всеми названиями компаний в «Компания»
- Переименовать столбец со всеми значениями, ранее находившимися в каждой компании, в «Стоимость»
Вот шаги, примененные в «Расширенном редакторе запросов»:
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"A", type text}, {"B", type text}, {"C", type text}, {"D", type text}, {"E", type number}, {"F", type text}, {"G", Currency.Type}, {"H", Currency.Type}, {"Company 1", type text}, {"Value (1)", Currency.Type}, {"Company 2", type text}, {"Value (2)", Currency.Type}, {"Company 3", type text}, {"Value (3)", Currency.Type}, {"Company 4", type text}, {"Value (4)", Currency.Type}, {"Company 5", type text}, {"Value (5)", Currency.Type}, {"Company 6, type text}, {"Value (6)", Currency.Type}, {"Company 7", type text}, {"Value (7)", Currency.Type}, {"Company 8", type text}, {"Value (8)", Currency.Type}, {"Company 9", type text}, {"Value (9)", Currency.Type}}),
#"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"A", "C", "D", "E", "Company 1", "Company 2", "Company 3", "Company 4", "Company 5", "Company 6", "Company 7", "Company 8", "Company 9"}),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Removed Other Columns", {"A", "C", "D", "E"}, "Attribute", "Value")
Есть ли способ импортировать папку файлов CSV и применить шаги, указанные вышек каждому, так что есть только один запрос из всех файлов CSV?(краткий пример того, как я хочу, чтобы это выглядело ниже)
----------------------------------------------------
| A | C | D | E | Company | Cost |
----------------------------------------------------
| Product 1 | | | | Company 1 | .05 |
----------------------------------------------------
| Product 1 | | | | Company 2 | .08 |
----------------------------------------------------
| Product 2 | | | | Company 1 | .16 |
----------------------------------------------------
| Product 2 | | | | Company 2 | .06 |
----------------------------------------------------