Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!View all the Fabric Data Days sessions on demand. View schedule
Hi, I have connected to an excel file and within the 1 sheet, there are 3 tables. Each month a new row is added to each table but the column headers always stay the same.
I only need to bring in the top table but in order to do this, I essentially need to say that from row where column1 = test errors and below, then exclude else keep.
any idea how to do this please?
Hi @M_SBS_6,
Just following up to see if the Response provided by community members were helpful in addressing the issue. if the issue still persists Feel free to reach out if you need any further clarification or assistance.
Best regards,
Prasanna Kumar
Hi @M_SBS_6,
Thank you for reaching out to the Microsoft Fabric Forum Community, and special thanks to @danextian, @PhilipTreacy , @Ashish_Mathur and @Idrissshatila for prompt and helpful responses.
Just following up to see if the Response provided by community members were helpful in addressing the issue. if the issue still persists Feel free to reach out if you need any further clarification or assistance.
Best regards,
Prasanna Kumar
Hi @M_SBS_6
Assuming each month section has its own header, identify the row position of that header after the top table and use that index to extract the corresponding rows. If the monthly sections share the same header as the top table, instead locate the first blank or null row—whichever applies—provided that column values do not contain nulls.
Sample code:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("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", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Segment = _t, Country = _t, #"30/09/2013" = _t, #"31/10/2013" = _t, #"30/11/2013" = _t, #"31/12/2013" = _t, #"31/01/2014" = _t, #"28/02/2014" = _t, #"31/03/2014" = _t, #"30/04/2014" = _t, #"31/05/2014" = _t, #"30/06/2014" = _t, #"31/07/2014" = _t, #"31/08/2014" = _t, #"30/09/2014" = _t, #"31/10/2014" = _t, #"30/11/2014" = _t, #"31/12/2014" = _t, #"Grand Total" = _t]),
Custom1 = let
tbl = Source, //name of the previous applied step
NextHeader = List.PositionOf(tbl[Segment], "Segment") //tbl[Segment] --access the first column as a list then find the position of "segment" other than the header
in
Table.FirstN(tbl, NextHeader)
in
Custom1
How to get your question answered quickly.
Proud to be a Super User!
Hi,
This may be possible. Share the download link of an MS Excel file with some dummy data there.
Hello @M_SBS_6 ,
I suggest if you can seperate this table into another sheet and work clean from the source this would be much better, cleaner and simple.
and with excel its easy to do that.
Proud to be a Super User! | |
Hi @M_SBS_6,
Unfurtunelly we don´t have a sample data to teste, but please try it:
Input Steps
# Add an index column
= Table.AddIndexColumn(PreviousStep, "Index", 0, 1, Int64.Type)
# Find the position of the row where Column1 = "test errors":
Position = Table.PositionOf(PreviousStep, [Column1 = "test errors"])
# Skip all rows above that position:
= Table.Skip(PreviousStep, Position)
If this response was helpful in any way, I’d gladly accept a 👍much like the joy of seeing a DAX measure work first time without needing another FILTER.
Please mark it as the correct solution. It helps other community members find their way faster (and saves them from another endless loop 🌀.
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!