Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
karim2026
Regular Visitor

Insert row for missing repeating sequence in a table

Hello

I have a time stamp table with a repeating sequence column (90, 91, 92, 93 and repeat), some of the sequences are missing.

I am trying to find the missing value and insert a new row with that value in the column using power query

any help would be appreciated

 

DateTime Machine# Mode Sequence
2026-01-05T07:23:00.261GSB0193
2026-01-05T07:23:39.479GSB0190
2026-01-05T07:25:03.896GSB0191
2026-01-05T07:37:14.519GSB0192
2026-01-05T07:40:43.126GSB0193
2026-01-06T09:49:12.376GSB0191
2026-01-06T10:00:01.121GSB0192
2026-01-06T10:02:01.825GSB0193
2026-01-06T10:12:41.143GSB0190
2026-01-06T10:14:41.883GSB0191
2026-01-06T10:26:42.770GSB0192
 
the mode sequence should be 90, 91, 92, 93 and repeats
 

I am trying to find the missing mode sequence and insert a row with the missing sequence value

 
DateTime Machine# Mode Sequence
2026-01-05T07:23:00.261GSB0193
2026-01-05T07:23:39.479GSB0190
2026-01-05T07:25:03.896GSB0191
2026-01-05T07:37:14.519GSB0192
2026-01-05T07:40:43.126GSB0193
  90
2026-01-06T09:49:12.376GSB0191
2026-01-06T10:00:01.121GSB0192
2026-01-06T10:02:01.825GSB0193
2026-01-06T10:12:41.143GSB0190
2026-01-06T10:14:41.883GSB0191
2026-01-06T10:26:42.770GSB0192

 

Thanks,

1 ACCEPTED SOLUTION
AlienSx
Super User
Super User

Hello, I would go over the rows of your table with List.Generate and calculate next sequence number each time with a help of Number.Mod. If sequence number is missing then generate a new row with datetime + 1 sec. I didn't know what to do with Machine# so I left it blank. 

let
    Source = Excel.CurrentWorkbook(){[Name="data"]}[Content],
    dt_type = Table.TransformColumns(Source, {{"DateTime", DateTime.From}, {"Machine#", Text.From}, {"Mode Sequence", Int64.From}}),
    seq = {90, 91, 92, 93},
    fx = (optional x) => [
        go = if x = null then true else x[i] + 1 < List.Count(rows),
        s = if x = null then rows{0}{2} else x[s] + 1,
        si = Number.Mod(s - 90, 4),
        sr = seq{si},
        next_row = if x = null then true else rows{x[i] + 1}{2} = sr,
        i = if x = null then 0 else if next_row then x[i] + 1 else x[i],
        dt = if next_row then rows{i}{0} else x[dt] + #duration(0, 0, 0, 1)
    ],
    rows = List.Buffer(Table.ToList(dt_type, (x) => x)),
    gnr = List.Generate(fx, (x) => x[go], fx, (x) => if x[next_row] then rows{x[i]} else {x[dt], null, x[sr]}),
    tbl = Table.FromList(gnr, (x) => x, Value.Type(dt_type))
in
    tbl

seqseq.png

 

View solution in original post

4 REPLIES 4
AlienSx
Super User
Super User

Hello, I would go over the rows of your table with List.Generate and calculate next sequence number each time with a help of Number.Mod. If sequence number is missing then generate a new row with datetime + 1 sec. I didn't know what to do with Machine# so I left it blank. 

let
    Source = Excel.CurrentWorkbook(){[Name="data"]}[Content],
    dt_type = Table.TransformColumns(Source, {{"DateTime", DateTime.From}, {"Machine#", Text.From}, {"Mode Sequence", Int64.From}}),
    seq = {90, 91, 92, 93},
    fx = (optional x) => [
        go = if x = null then true else x[i] + 1 < List.Count(rows),
        s = if x = null then rows{0}{2} else x[s] + 1,
        si = Number.Mod(s - 90, 4),
        sr = seq{si},
        next_row = if x = null then true else rows{x[i] + 1}{2} = sr,
        i = if x = null then 0 else if next_row then x[i] + 1 else x[i],
        dt = if next_row then rows{i}{0} else x[dt] + #duration(0, 0, 0, 1)
    ],
    rows = List.Buffer(Table.ToList(dt_type, (x) => x)),
    gnr = List.Generate(fx, (x) => x[go], fx, (x) => if x[next_row] then rows{x[i]} else {x[dt], null, x[sr]}),
    tbl = Table.FromList(gnr, (x) => x, Value.Type(dt_type))
in
    tbl

seqseq.png

 

It worked like a charm with a large set of data and the code is very compact and clear!

Thank you very much!

Zanqueta
Super User
Super User

Hi @karim2026, just to undersand do you want the inserted rows to have DateTime = null (as in your example), or do you want a calculated DateTime (for example, evenly distributed between the previous and the next timestamp)?

 

 

If this response was helpful in any way, I’d gladly accept a kudo.
Please mark it as the correct solution. It helps other community members find their way faster.
Connect with me on LinkedIn

Hi Zanqueta,

i was going to do the previous value + 1 sec

this was easy for me to do, the difficult part was to find missing sequence and insert row

thanks,

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors