Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hey ppl!
I've received a new task and need to learn M fast.
Problem is, I have a "simple" problem to solve but didn't learn enough M yet to solve it in a timely manner.
Hope you guys can help.
I have a table called "Update" with a single column "When" and single row containing one date.
Like this:
TABLE Update
When
28/02/2020
This date is dynamic, obtained by a query.
I have a second table "Water_Consumption" with a date column "Reading" and a column named "m3" formatted as number (integer). Like this:
TABLE Water_Consumption
Reading m3
22/12/2019 210
22/01/2020 208
22/02/2020 0
22/03/2020 0
22/04/2020 0
My problem:
I need to change 0 to null when the date is greater than the date in "When".
So in the current example, my Water_Consumption table would look like:
TABLE Water_Consumption
Reading m3
22/12/2019 210
22/01/2020 208
22/02/2020 0
22/03/2020 null
22/04/2020 null
This is as far as I could go, it works but requires me a manual update every month:
Table.ReplaceValue(#"Previous_step", each [m3], each if [Reading] <= #date(2020, 2,28) then [m3] else null, Replacer.ReplaceValue, {"m3"} )
Problem is, I need to make it update automatically so my current "solution" doesn't cut it.
Can you guys please advise?
Thanks in advance!
Solved! Go to Solution.
Hi @Cassis,
it seems like you are taking on the advanced editor in Power Query. Perhaps an easier way to do this is to first create a new column with the value from Update, and then create another column according to the logic you have. Once that is completed you can remove the original m3-column and the When-column.
If you still want to do this in Advanced editor, I think this will work for you:
= Table.ReplaceValue(#"Previous step", each [m3], each if [Reading] <= List.First(Update[When]) then [m3] else null, Replacer.ReplaceValue, {"m3"} )
Cheers,
Sturla
If this post helps, then please consider Accepting it as the solution. Kudos are nice too.
Hi @Cassis,
it seems like you are taking on the advanced editor in Power Query. Perhaps an easier way to do this is to first create a new column with the value from Update, and then create another column according to the logic you have. Once that is completed you can remove the original m3-column and the When-column.
If you still want to do this in Advanced editor, I think this will work for you:
= Table.ReplaceValue(#"Previous step", each [m3], each if [Reading] <= List.First(Update[When]) then [m3] else null, Replacer.ReplaceValue, {"m3"} )
Cheers,
Sturla
If this post helps, then please consider Accepting it as the solution. Kudos are nice too.
Thanks mate, your solution solved the issue!
Also thanks for your suggestion, I believe it would be an easier way to solve the problem but I was afraid the impact in performance would hurt the model as a whole - that's why I opted to use the editor and dedicate an effort to learn M.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
109 | |
99 | |
77 | |
66 | |
54 |
User | Count |
---|---|
144 | |
104 | |
102 | |
88 | |
63 |