Попробуйте это - он генерирует список от начала до конца для каждой строки, применяет префикс ID, а затем объединяет вывод:
let
ListFunction = (Start, End, Prefix) =>
let
NewList = List.Transform(List.Numbers(Start, End - Start + 1), each Prefix & Number.ToText(_, "000"))
in
NewList,
Source = #table(type table [#"ID"=text, #"Start"=text, #"End"=text],{{"AB","001","020"},{"VG","004","098"}}),
#"Make Lists" = Table.AddColumn(Source, "NewList", each ListFunction(Number.From([Start]), Number.From([End]), [ID])),
#"Combine Lists" = Table.FromList(List.Combine(#"Make Lists"[NewList]), Splitter.SplitByNothing(),{"ID2"})
in
#"Combine Lists"