let
Source = Excel.CurrentWorkbook(){[Name="WideTable"]}[Content],
MonthColumns = List.Difference(Table.ColumnNames(Source), {"SKU", "unit"}),
Encoded = Table.TransformColumns(Source, List.Transform(MonthColumns, (col) => {col, each if _ = null then "__MISSING__" else _, type any})),
Long = Table.UnpivotOtherColumns(Encoded, {"SKU", "unit"}, "month", "encoded"),
Flag = Table.AddColumn(Long, "missing", each [encoded] = "__MISSING__", type logical),
Value = Table.AddColumn(Flag, "value", each if [missing] then null else Number.From([encoded]), type nullable number),
Result = Table.RemoveColumns(Value, {"encoded"})
in Result