Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
I have a Table with the following structure
| Title | Entry | Data |
| A | 10 | MasterData 1 |
| A | 23 | SpecialData |
| A | 54 | null |
| B | 10 | MasterData 2 |
| B | 34 | null |
| B | 576 | null |
| C | 10 | null |
| C | 21312 | null |
What i want to achieve in Power Query M is that for some entries in the table i have "MasterData" which is always under Entry "10" for the corresponding Title, some may also have SpecialData which i don´t want to touch...
The Table i would want to have would be like this:
| Title | Entry | Data |
| A | 10 | MasterData 1 |
| A | 23 | SpecialData |
| A | 54 | MasterData 1 |
| B | 10 | MasterData 2 |
| B | 34 | MasterData 2 |
| B | 576 | MasterData 2 |
| C | 10 | null |
| C | 21312 | null |
So i would need to somehow reference always the Data from Entry "10" for all null values of the same title data. It could also be in a new added column if that´s easier. Filldown is not helping in this case either unfortunately because i cannot restrict it to the same Title. I just found a working formula replacing the null value with an value of the same row... how can i shift that reference to always return the corresponding Title "10" Entry if there is one?
= Table.AddColumn(#"xxx", "Data", each if [Data] = null then [Entry] else [Data], type text)
This "[Entry]" i would need to point to the corresponding 10 entry of the same title...
Any hint how to do that is very appreciated! Thanks!
Solved! Go to Solution.
NewStep=Table.Combine(Table.Group(PreviousStepName,"Title",{"n",each Table.ReplaceValue(_,"","",(x,y,z)=>x??_{[Entry=10]}?[Data],{"Data"})})[n])
NewStep=Table.Combine(Table.Group(PreviousStepName,"Title",{"n",each Table.ReplaceValue(_,"","",(x,y,z)=>x??_{[Entry=10]}?[Data],{"Data"})})[n])
Thanks! This is working as I need it, I don´t understand it yet but I´ll go through it step by step till i do.
Hi @Thomas_DE,
I think this does what you are after. Please try.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTI0ABK+icUlqUUuiSWJCoZKsToQGSNjIBFckJqcmZgDkoJLmJoAibzSnBywiBMWQ4zgMsYYak3NzZCFnGHaUUSMDI0NjeCCsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Title = _t, Entry = _t, Data = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Title", type text}, {"Entry", Int64.Type}, {"Data", type text}}),
fTransform = (t as table) as table =>
let
Transform = List.Skip(List.Accumulate(Table.ToRecords(t), {{null, {}}}, (a, n)=> a & (if n[Entry] = 10 then {{n[Data], n }} else {{List.Last(a){0}, if n[Data]="null" then Record.TransformFields(n, {{"Data", (x)=> List.Last(a){0}}}) else n }}))),
Output = Table.FromRecords(List.Zip(Transform){1}, Value.Type(t))
in
Output,
next = #"Changed Type",
#"Grouped Rows" = Table.Combine(Table.Group(next, {"Title"}, {{"Count", fTransform}})[Count])
in #"Grouped Rows"
Kind regards,
John
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 5 | |
| 4 | |
| 3 | |
| 3 | |
| 2 |
| User | Count |
|---|---|
| 8 | |
| 6 | |
| 6 | |
| 6 | |
| 5 |