Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi I have the following issue:
I have a table as below
id | source_id | |
100 | ||
101 | 100 | |
102 | ||
103 | 102 | |
104 | 101 | |
105 | 104 |
I want to find the first record of
so the result should look like this
id | source_id | first_id |
100 | 100 | |
101 | 100 | 100 |
102 | 102 | |
103 | 102 | 102 |
104 | 101 | 100 |
105 | 104 | 100 |
Thanx for helping!
Use recursive function in PQ
let
Fx = (id, src) =>
let pos = List.PositionOf(ID, src)
in if pos > -1 then @Fx(ID{pos}, Src{pos}) else id,
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQwUNJRUorVATENgUyQAIRnhJAwBksYQXkmYJ4hlGcK5pkoxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id = _t, source_id = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"id", Int64.Type}, {"source_id", Int64.Type}}),
ID = #"Changed Type"[id], src=#"Changed Type"[source_id],
Traced = Table.AddColumn(#"Changed Type", "Root", each fx([id], [source_id]))
in
Traced
Expertise = List.Accumulate( {Days as from Today}, {Skills and Knowledge}, (Current, Everyday) => Current & Day.LearnAndPractise(Everyday) ) |
Hi Thanx for your reaction,
I can't get it working. I did try to copy your code in power query.
Can you add extra information on how to create the recursive function in Power Query?
Thanx
Hi try it :
first_id = IF(ISBLANK(LOOKUPVALUE('Table'[id], 'Table'[id], 'Table'[source_id])), 'Table'[id], LOOKUPVALUE('Table'[id], 'Table'[id], 'Table'[source_id]))
Hi Thanx for your reaction.
But this is n't going to work.
Check out the July 2025 Power BI update to learn about new features.
User | Count |
---|---|
22 | |
7 | |
6 | |
6 | |
6 |
User | Count |
---|---|
27 | |
10 | |
10 | |
9 | |
6 |