Описание
Допустим нам нужно создать список из множества однотипных ссылок, у которых различается только небольшая часть.
Например, нужно создать список на основе этой ссылки, но параметр pageID должен меняться от 10 до 232: https://dreamwar.ru/empire.php? sid=c989d5c1984d116942748d1b35c0a511& pageID=10&all=1& UIN=98139739& pass=ZmNiYWVmOTM%3D& rand=7240473
Решение
Чтобы не разбивать такую строку на части в Power Query существует специальная функция, которая называется Text.Format.
При помощи этой функции можно указать место в строке, которое должно меняться и параметром передать, что именно в это место должно быть подставлено.
Сам же список мы сгенерируем при помощи List.Generate и List.Accumulate.
Примененные функции
- List.Generate
- Text.Format
- Text.From
- List.Accumulate
Код
Решение с функцией List.Generate:
let
txt
= "http://dreamwar.ru/empire.php?sid=c989d5c1984d116942748d1b35c0a511&pageID=#{0}&all=1&UIN=98139739&pass=ZmNiYWVmOTM%3D&rand=7240473",
source = List.Generate(
() => [index = 10],
each [index] <= 232,
each [index = [index] + 1],
each [page = Text.Format(txt, {Text.From([index])})][page]
)
in
source
Решение с List.Accumulate:
let
source = List.Accumulate(
{10 .. 232},
{},
(state, current) =>
state
& {
Text.Format(
"http://dreamwar.ru/empire.php?sid=c989d5c1984d116942748d1b35c0a511&pageID=#{0}&all=1&UIN=98139739&pass=ZmNiYWVmOTM%3D&rand=7240473",
{Text.From(current)}
)
}
)
in
source