Forum Discussion
Data from 2 columns based on 3rd column
Hello,
I have no idea how to word this question to google so sorry if it is something that has been answered before.
I have a simple time clock table I would like to report on. Table of events looks like this;
How would I go about making a new table that looks like this?
Thanks
hi markdem
For your problem, it is because you have other columns that needs to be aggregated before pivot.
So adjust it as below:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("nVW7bhsxEPwX1dZin1ySrZAiiB03TGW4SpkA+f8uS0qibTl2jneVDicMZuex+/R0IOXD3eHhy/3p/vH0DSleTr///Pz19Xv8YmQ8YjqyN/SKWtkhF+xPfMXD893HAI8/2lsEsspWMQPZFcHi7wPD0gYSuWGulqoUYLoh8QHADYncKPcxAsGTX0loXiBRGmG1QBHI6ntIlMZUTaooWJILQjL7VM03JAS7HSyVQom8TYlXAH5EGgC5EgKrLPt5RZBUzQAnBeftSgyMyEQooQaGMjORtioREDwG0aoFRGSHEtxDpbmKg/t6qAZChCooGIPynMI/n+JfGNKzCUQzEy4LSkjDqAZXIrDbQbaRkEapklZMUfI5SOYFEtpJWAQjg7HvIaGNPNysYsAzE5xWLLWRiRLJioLtstSGpaXX4yWYycoCidSIo+IVORq2vicGAvNlYyabdhRasMMvJRUEvd0T2+zwnomoaIxBc/ELrVQ090yEo5QA0zYl3gFERbnnkjYC3EyR+xQSUhbIUwf9T73eY8S+9EpRc7yyYF9pR2lYgkO0FM6GrtpBOEpOlQmEriScFzJB1NUMEqbgtmf1BwKN66MxxrzDJLzdUjpv3RLxfnUDVywNBDpvGgWcdmjefMoDQjqJuEAaYuZdJMbG7NcnQZmbRnPsiee/", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [UserID = _t, UserName = _t, Type = _t, Datetime = _t, OtherColumn1 = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"UserID", Int64.Type}, {"UserName", type text}, {"Type", type text}, {"Datetime", type datetime}, {"OtherColumn1", Int64.Type}}), #"Inserted Date" = Table.AddColumn(#"Changed Type", "Date", each DateTime.Date([Datetime]), type date), #"Grouped Rows" = Table.Group(#"Inserted Date", {"UserID", "UserName", "Date"}, {{"New Othercolumn1", each List.Sum([OtherColumn1]), type number}}), #"Merged Queries" = Table.NestedJoin(#"Grouped Rows", {"UserID", "UserName", "Date"}, #"Inserted Date", {"UserID", "UserName", "Date"}, "Grouped Rows", JoinKind.Inner), #"Expanded Grouped Rows" = Table.ExpandTableColumn(#"Merged Queries", "Grouped Rows", {"Type", "Datetime"}, {"Type", "Datetime"}), #"Pivoted Column" = Table.Pivot(#"Expanded Grouped Rows", List.Distinct(#"Expanded Grouped Rows"[Type]), "Type", "Datetime") in #"Pivoted Column"here is sample pbix file, please try it.
Regards,
Lin
12 Replies
- v-lili6-msft
Community Support
hi markdem
For your case, you could try this way:
Step1:
The most important step is you need to add a date column for the datetime column as a bin.
You could selected datetime column and click Add column->Date->Date only as below to get it.
Step2:
Then selected clockin/out column and use Pivot it as below:
https://radacad.com/pivot-and-unpivot-with-power-bi
Step3:
Remove unless columns and get your expected output:
here is sample pbix file, please try it.
Regards,
lin
- markdem
Helper I
Sorry for the hugely delayed reply..
I have tried the instructions above but it only seems to be working when the clockin an clockout times are the same minute...Here is my data now. Anyway I can get rid of all the nulls?
- Ashish_Mathur
Super User
Hi,
Share sample data in a format that can be pasted in an MS Excel file.
- AnonymousNot applicable
- markdem
Helper I
I now have one more issue. The "User” column needs to be joint with data from a different table.
If I try to merge the data with “= Table.NestedJoin(dbo_Events, {"userID"}, Users, {"userID"}, "Users", JoinKind.LeftOuter)” I get a error about not been able to have nested data in a pivot.
How can I get around this?
Thanks