Forum Discussion
Group rows based on values in adjacent rows
- 8 years ago
Hey,
here you will find a PBIX file that creates this table base on your raw data:
There are some twists for this reason the following explains all the steps.
Step Grouped Rows
Basically I started with the transform "Group by" using the advanced settings to be able to group by more than one column.
I choose as "All Rows" as Grouping Operation.The M formula that will be generated look like this:
= Table.Group(#"Changed Type", {"HoleNo", "Rock"}, {{"Columns", each _, type table}})But this would not consider that there is a 2nd group "TF", this reason I tweaked the generated M Formula by adding GroupKind.Local (https://msdn.microsoft.com/en-us/query-bi/m/table-group)
= Table.Group(#"Changed Type", {"HoleNo", "Rock"}, {{"Columns", each _, type table}}, GroupKind.Local)Now I get 5 groups instead of 4 :-)
Please be aware that you will not be able to use the Grouping Dialog any longer ;-)
Added Index: Adding an Index Column (starting with 1)
Expanded Count: Table Expansion
I expanded the table without using a suffix, selecting just the missing columns.Grouped Rows1: Group by (Index - Operation "All Rows"
Another "Group by" this time by freshly generated Index column. This will create the following M Formula:
= Table.Group(#"Expanded Count", {"Index"}, {{"Columns", each _, type table}})Now I'm repacing the bold part of formula by this snippet:
{ {"AllRows", each _, Value.Type(#"Expanded Count")}, {"Minimum From", each List.Min([From]), type number}, {"Maximum To", each List.Max([To]), type number} }That finally leads to this formula:
= Table.Group(#"Expanded Count", {"Index"}, { {"AllRows", each _, Value.Type(#"Expanded Count")}, {"Minimum From", each List.Min([From]), type number}, {"Maximum To", each List.Max([To]), type number} } )The result will look like this:
Expanded AllRows (Table Expansion)
Once again I expand the table to get back the missing columns.
Removed Columns (Removing unwanted columns)
Removed Duplicates
Voila
Hopefully this is what you are looking for
Regards
Tom
Hey,
here you will find a PBIX file that creates this table base on your raw data:
There are some twists for this reason the following explains all the steps.
Step Grouped Rows
Basically I started with the transform "Group by" using the advanced settings to be able to group by more than one column.
I choose as "All Rows" as Grouping Operation.
The M formula that will be generated look like this:
= Table.Group(#"Changed Type", {"HoleNo", "Rock"}, {{"Columns", each _, type table}})But this would not consider that there is a 2nd group "TF", this reason I tweaked the generated M Formula by adding GroupKind.Local (https://msdn.microsoft.com/en-us/query-bi/m/table-group)
= Table.Group(#"Changed Type", {"HoleNo", "Rock"}, {{"Columns", each _, type table}}, GroupKind.Local)Now I get 5 groups instead of 4 :-)
Please be aware that you will not be able to use the Grouping Dialog any longer ;-)
Added Index: Adding an Index Column (starting with 1)
Expanded Count: Table Expansion
I expanded the table without using a suffix, selecting just the missing columns.
Grouped Rows1: Group by (Index - Operation "All Rows"
Another "Group by" this time by freshly generated Index column. This will create the following M Formula:
= Table.Group(#"Expanded Count", {"Index"}, {{"Columns", each _, type table}})Now I'm repacing the bold part of formula by this snippet:
{
{"AllRows", each _, Value.Type(#"Expanded Count")},
{"Minimum From", each List.Min([From]), type number},
{"Maximum To", each List.Max([To]), type number}
}That finally leads to this formula:
= Table.Group(#"Expanded Count",
{"Index"},
{
{"AllRows", each _, Value.Type(#"Expanded Count")},
{"Minimum From", each List.Min([From]), type number},
{"Maximum To", each List.Max([To]), type number}
}
)The result will look like this:
Expanded AllRows (Table Expansion)
Once again I expand the table to get back the missing columns.
Removed Columns (Removing unwanted columns)
Removed Duplicates
Voila
Hopefully this is what you are looking for
Regards
Tom
- LouiseSemaj8 years agoFrequent Visitor
Awesome, I think this is just what I am chasing. How would I access and read the PBIX file please? Many thanks Tom
- TomMartens8 years agoSuper UserHey,
if you don't have Power BI Desktop installed on your machine, you can get from here www.powerbi.com (it's free). Maybe you get asked to sign in 😉 Just press "I already have an account", close the next dialog using the the cross in the top right corner. Now you are able to use my already downloaded pbix file, Hit Edit queries and there you will find my query 😀
Regards Tom- LouiseSemaj8 years agoFrequent Visitor
Thats it. Done. Many thanks Tom Working a treat. Kind regards
- pdsoutherland3 years agoFrequent Visitor
Adapted this to create a consecutive hour group for an hour category from a dateTime dimension table. Absolutely awesome.