Страницы: 1
RSS
Power Query: Сбор данных из таблиц с определенной страницы, Power Query: Сбор данных из таблиц с определенной страницы
 
Добрый день!

Есть такие исходные данные. В Power Query объединяю несколько Excel-файлов способом по этой ссылке: https://newtechaudit.ru/kak-obedinit-dannye-iz-raznyh-fajlov-ms-excel-v-odnu-tabliczu/ , но только на "шаге 5" использую формулу:

Table.SelectRows(Excel.Workbook([Content]), each [Name]="Цена")[Data]{0}  

чтобы "вытянуть" данные из определённого листа "Цена". Фильтром выбираю, чтобы выводились данные только Колонки 8 и Колонки 9 и получается следующее:

и при переходе в столбце Content в ячейку Binary, то там следующие данные:

переходим в Table в третьей строке с названием "Цена" и тут есть такие данные


Внимание вопрос: какую формулу в Пользовательской колонке необходимо прописать, чтобы она заполнилась информацией из всех файлов из листов "Цена" из строки 4
колонки номер 9? *Листы во всех файлах имеют одинаковое название "Цена".

Пример приложил, но не знаю будет ли он работать.

Побочный вопрос (если можно ответить да/нет и немного развернуть): можно ли вообще сделать так в Power Query в моем случае, чтобы данные выводились не «друг под другом», а «в горизонталь»? * так же по две колонки (Колонка 8 и Колонка 9) из каждого листа "Цена" из разных файлов?
 
Цитата
delph3r написал:
так же по две колонки из каждого листа «КЦ» из разных файлов?
так вам нужны 2 колонки или одна (9-я как в вопросе) ?
Если одна 9-я, то (начинаем с таблицы на первой картинке)
Код
  = Table.FromColumns(
    List.Transform(картинка[Content], (x) => Excel.Workbook(x){[Name = "КЦ"]}[Data]{3}[Column9])
  )

Если две, то
Код
  = Table.FromColumns(
    List.Combine(
      Record.FieldValues(
        List.Transform(
          картинка[Content],
          (x) => Excel.Workbook(x){[Name = "КЦ"]}[Data]{3}[[Column8], [Column9]]
        )
      )
    )
  )

пишу вслепую, могу ошибиться.
Изменено: AlienSx - 14.12.2023 08:32:07
Пришелец-прораб.
 
Цитата
написал:
Код  = Table.FromColumns(
   List.Transform(картинка[Content], (x) => Excel.Workbook(x){[Name = "КЦ"]}[Data]{3}[Column9])
 )
Немного не понимаю, что должно быть вместо слово "картинка" в этой части кода:
Код
List.Transform(картинка[Content], (x) => Excel.Workbook(x){[Name = "КЦ"]}[Data]{3}[Column9])
 
Цитата
delph3r написал:
не понимаю, что должно быть вместо слово "картинка"
имя строки запроса, которая выдает таблицу с колонкой Content (которая type binary).
Пришелец-прораб.
 
Цитата
написал:
имя строки запроса, которая выдает таблицу с колонкой Content (которая type binary).

  Вот код из редактора запросов. Можете точнее подсказать?
Код
    Источник = Folder.Files("C:\Users\Вася\Desktop\Папка с файлами"),
    #"Строки с применным фильтром" = Table.SelectRows(Источник, each ([Name] = "Файл 1.xlsx" or [Name] = "Файл 2.xlsx")),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Строки с применным фильтром",{"Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Удаленные столбцы", "Custom", each Table.SelectRows(Excel.Workbook([Content]), each [Name]="КЦ")[Data]{0}),
    #"Развернутый элемент Custom" = Table.ExpandTableColumn(#"Добавлен пользовательский объект", "Custom", {"Column8", "Column9"}, {"Custom.Column8", "Custom.Column9"})
 
так
Код
let
  Source = Folder.Files("C:\Users\Вася\Desktop\Папка с файлами"),
  files = Table.SelectRows(Source, each ([Name] = "Файл 1.xlsx" or [Name] = "Файл 2.xlsx")),
  tbl = Table.FromRows(
    {
      List.Combine(
        List.Transform(
          files[Content],
          (x) =>
            Record.FieldValues(Excel.Workbook(x){[Name = "КЦ"]}[Data]{3}[[Column8], [Column9]])
        )
      )
    }
  )
in
  tbl
Изменено: AlienSx - 14.12.2023 10:07:43 (ошибочка)
Пришелец-прораб.
Страницы: 1
Наверх