В редакторе запросов вы можете добавить таблицу пропущенных дат с вымышленными значениями.
Если пропущенных дат мало и вы знаете их все:
= Table.Combine({your_data,
#table(type table [SHIP_DATE = date, BRAND = text, ORDERS = number, UNITS = number],
{{#date(2019,1,1),"a",0,0},
{#date(2019,1,3),"b",0,0},
{#date(2019,1,4),"c",0,0},
{#date(2019,1,5),"d",0,0},
{#date(2019,1,6),"e",0,0}})})
Или, если вы хотите автоматически отследить пропущенные даты:
let
Source = your_data,
Types = Table.TransformColumnTypes(Source,{{"SHIP_DATE", type date}, {"BRAND", type text}, {"ORDERS", Int64.Type}, {"UNITS", Int64.Type}}),
FactDates = Types[SHIP_DATE],
AllDates = List.Generate(()=>List.Min(FactDates), each _ <= List.Max(FactDates), each Date.AddDays(_,1)),
MissingDates = List.Difference(AllDates,FactDates),
ToTable = Table.FromList(MissingDates, Splitter.SplitByNothing()),
Index = Table.AddIndexColumn(ToTable, "i", 0, 1),
Brand = Table.AddColumn(Index, "BRAND", each {"a".."z"}{[i]}),
Removed = Table.RemoveColumns(Brand,{"i"}),
Renamed = Table.RenameColumns(Removed,{{"Column1", "SHIP_DATE"}}),
Types2 = Table.TransformColumnTypes(Renamed,{{"SHIP_DATE", type date}, {"BRAND", type text}}),
Appended = Table.Combine({Types, Types2}),
Replaced = Table.ReplaceValue(Appended,null,0,Replacer.ReplaceValue,{"ORDERS", "UNITS"}),
Sorted = Table.Sort(Replaced,{{"SHIP_DATE", Order.Ascending}})
in
Sorted
Имейте в виду, что этот код будет работать нормально, если число пропущенных дат меньше или равно 26 (количество букв в английском алфавите). Если вы ожидаете большего числа пропущенных дат, просто замените код на шаге Бренд на что-то вроде этого:
Brand = Table.AddColumn(Index, "BRAND", each "_brand"&Text.From([i]))