Циклы в Power Query не очень важны, но вы все равно можете делать то, что вам нужно.Я не знаю, с каких URL вы тянете, поэтому приведу пример использования общедоступных.
Предположим, мои Table3
следующие:
URL
--------
https://finance.yahoo.com/quote/AAPL?p=AAPL
https://finance.yahoo.com/quote/AAPL?p=GOOG
Я могу загрузить это в редактор запросов и создать собственный столбец, который читает веб-страницу для каждого URL.
= Web.Page(Web.Contents([URL])){0}[Data]
(Таблица, которую я хочу, является первой (отсюда и индекс строки {0}
)) и находится в столбце [Data]
.
Теперь у меня есть такая таблица, где нижняя таблица представляет собой предварительный просмотр выбранной ячейки.
Щелкните значок стрелки, чтобы развернуть таблицы.
Здесь вы можете отфильтровать Column1
, чтобы выбрать, какиезначения, которые вас интересуют (скажем, Ask
, Bid
, Open
и Volume
), а затем поверните этот столбец (Transform> Pivot Column).Выберите Column2
в качестве столбца значений и выберите «Не объединять» в разделе «Дополнительные параметры».
Результатом должна быть таблица, которую вы видите вышедиалоговое окно сводки.
Вот полный M-код для запроса, который отображается в расширенном редакторе
let
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"URL", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Web.Page(Web.Contents([URL])){0}[Data]),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Column1", "Column2"}, {"Column1", "Column2"}),
#"Filtered Rows" = Table.SelectRows(#"Expanded Custom", each ([Column1] = "Ask" or [Column1] = "Bid" or [Column1] = "Open" or [Column1] = "Volume")),
#"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[Column1]), "Column1", "Column2")
in
#"Pivoted Column"