Объедините папку файлов CSV с различным количеством столбцов в Excel Query Editor - PullRequest
0 голосов
/ 11 июня 2018

У меня есть папка с множеством 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   |
----------------------------------------------------

1 Ответ

0 голосов
/ 12 июня 2018

Я верю в это.Это похоже на работу.

Начните с выбора «Получить данные» (или «Новый источник»)> «Файл»> «Папка», перейдите к папке с файлами CSV, выберите ее и нажмите «ОК».Затем нажмите OK еще раз.

Вы увидите что-то вроде следующего.

enter image description here

Нажмите кнопку Изменить.

Щелкните правой кнопкой мышистолбец содержимого и удалить другие столбцы.Вы увидите что-то вроде этого.

enter image description here

Разверните столбец «Содержимое», нажав кнопку в правом верхнем углу и нажмите кнопку «ОК» в появившемся диалоговом окне., как показано ниже.

enter image description here

В левой части экрана, в разделе «Запросы», вы увидите что-то вроде этого:

enter image description here

Выделенный мной запрос - это место, где вы хотите выполнить свою работу.Обратите внимание, что он имеет значок таблицы и начинается с Transform Sample File .Нажмите на него.

В разделе ПРИЛОЖЕННЫЕ ШАГИ в правой части экрана нажмите Источник .

В строке формул вы должны увидеть что-то вроде этого: = Csv.Document(#"Sample File Parameter1",[Delimiter=",", Columns=12, Encoding=1252, QuoteStyle=QuoteStyle.None]).Удалите часть, Columns=12, (все от C до запятой, включая запятую - скорее всего, ее номер отличается от 12).

enter image description here

Затем удалите столбцы, которые хотите удалить из таблицы.

enter image description here

Нажмите «Преобразование»> «Строка первого заголовка в качестве заголовка» стрелка> Использовать заголовки в качестве первой строки.

enter image description here enter image description here

Нажмите Transform> Transpose, чтобы перевернуть таблицу.

Выберите раскрывающийся список Column1arrow> Текстовые фильтры> Не начинается с> и введите Value и нажмите OK.

enter image description here

Нажмите Transform> Transpose, чтобы перевернуть таблицу обратно вего первоначальная ориентация.

Нажмите «Преобразование»> «Использовать первую строку в качестве заголовков».

Выберите все столбцы, кроме столбцов вашей компании , и щелкните стрелку раскрывающегося списка «Отключить столбцы»> «Отключить другое»Столбцы.(Не выбирайте и не поворачивайте столбцы компании напрямую. Если вы сделаете это косвенно, как я уже сказал, вы должны получить различное количество столбцов компании из разных файлов.)

enter image description here

В разделе ПРИЛОЖЕННЫЕ ШАГИ в правой части экрана удалите каждый шаг Измененный тип .Если вы этого не сделаете, они могут привести к тому, что ваш запрос захлебнется.

Теперь вернитесь к этому запросу, который был бы вашим первоначальным "основным" запросом.Конечно, ваш назван как-то еще, но вы будете знать это по его расположению.Нажмите на нее.

enter image description here

Вероятно, вы увидите такую ​​ошибку.

enter image description here

Удалите все Измененные шаги типа в ПРИЛОЖЕННЫХ ШАГАХ на правой стороне экрана.

Вы должны увидеть что-то вроде этого.

enter image description here

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