Forum Discussion

ooptennoort's avatar
ooptennoort
Icon for Advocate I rankAdvocate I
3 years ago
Solved

Extract same range multiple times out of 1 table into multiple (sub)tables

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)?

  • 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)) )

     

2 Replies

  • 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!!!