Forum Discussion
Table.TransformColumns Error
I have a powerQuery which combines 2 tables. The resulting table has a few columns that are null as a result of the combine. In one case, I am able to replace the null value with a text value using a the following statement:
Now, in another case, I have to replace the null column with a multiplication on 2 other columns. I am trying to use the following statement which results in an error:
= Table.TransformColumns(Source, {"Amount", each if (_ is null and [IndName] = "Response Costs") then ([Hours] * [Hourly Rate]) else _})
The error is
Expression.Error: We cannot apply field access to the type Null.
Details:
Value=
Key=IndName
3 Replies
- selimovdMost Valuable Professional
Hey sjpaq ,
as far as I understand it's not possible to reference other columns in the Table.TransformColumns function:
"Itโs important to note that a transformation can only take place on a column itself"
But you can add it as a new column and then delete the old one:
= Table.AddColumn(#"Changed Type", "Custom", each if [Amount] is null and [IndName] = "Response Costs" then [Hours] * [Hourly Rate] else [Amount])If you need any help please let me know.
If I answered your question I would be happy if you could mark my post as a solution โ๏ธ and give it a thumbs up ๐
Best regards
Denis
Blog: WhatTheFact.bi
Follow me: twitter.com/DenSelimovic- sjpaqHelper I
Thank you Denis
I'm very close with your suggestion. The column [Hours] is on the original table, the column [Hourly Rate] is a lookup value set in a previous step (= Table.ExpandTableColumn(#"Merged Queries", "RankHourlyRates", {"Hourly Rate"}, {"Hourly Rate"})) and I cannot reference it in my multiplication. I get the following error.
Expression.Error: The field 'Hourly Rate' of the record wasn't found.
Details:
Breach=BR_Cyber Star 2024
Date=2/1/2024
Team Member Name=CTI0
Rank=Capt
Group or Cell=CTI
Activity=Detect
Hours=8any ideas?
- PijushRoyCommunity Champion
Hi sjpaq
Can you please try= Table.TransformColumns(Source, {"Amount", each if [YourColumnName]=null and [IndName] = "Response Costs") then ([Hours] * [Hourly Rate]) else ""}) Or Add new column = Table.AddColumn(Source, "Amount", each if [YourColumnName]=null and [IndName] = "Response Costs" then ([Hours]*[Hourly Rate]) else ""}
Let me know if that works for you
If your requirement is solved, please mark THIS ANSWER as SOLUTION โ๏ธ and help other users find the solution quickly. Please hit the Thumbs Up ๐ button if this comment helps you.
Thanks
Pijush
Linkedin