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!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
I need to split a table into a range everytime Table.PositionOf finds the "Marker word". It works when using only 1 Occurence (.First or .Last) but .All produces more than 1 number in the list and Table.Range cannot deal with this.
= Table.Range(Source,(Table.PositionOf(Source,[Column1="Marker word"],Occurrence.All,"Column1")),5)
In other words, how do I get Table.Range to work on each number in a list of more than one number???? Or rather, how do I "convert a value of type List to type Number" in this context i.e. producing multiple ranges (ideally appended)?
Solved! Go to Solution.
Hello, @ooptennoort try this:
positions = List.Buffer(Table.PositionOf(Source,[Column1="Marker word"],Occurrence.All,"Column1")),
ranges = Table.Combine( List.Transform(positions, each Table.Range(Source, _, 5)) )
Wow, such simplicity and without any recursive functions! Amazing. Thank you so much!!!
Hello, @ooptennoort try this:
positions = List.Buffer(Table.PositionOf(Source,[Column1="Marker word"],Occurrence.All,"Column1")),
ranges = Table.Combine( List.Transform(positions, each Table.Range(Source, _, 5)) )
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!
| User | Count |
|---|---|
| 11 | |
| 7 | |
| 5 | |
| 5 | |
| 3 |