Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
DiegoBohorquez
New Member

Convert the values ​​of a column imported from a table taking into account a conditional.

Hello, I am having a problem using Power Querry, I am just starting to use it but I have not been able to solve this problem.

I have a table that has several columns, including one with the title Type and another with the title Amount, I need that depending on what is written in Type, the Amount value becomes positive or negative but it gives me this error, some idea?

 

---------- Message ----------
[Expression.Error] We cannot apply field access to the type Number.

 

let
Source = Excel.CurrentWorkbook(){[Name = "Tbl_Tracking"]}[Content],
ConvertirANumero = Table.TransformColumns(
Source,
{
{"Amount", each try Number.FromText(Text.From(_)) otherwise null}
}
),
Operacion = Table.TransformColumns(
ConvertirANumero,
{
{"Amount", each
if [Type] = "Expenses" or [Type] = "Savings" then _ * -1
else _
}
}
)
in
Operacion
1 ACCEPTED SOLUTION
nandic
Memorable Member
Memorable Member

Try just adding new column, then removing old column and renaming new column to "Amount"?

nandic_0-1715209740727.png

Here is M script:
let
Source = Excel.CurrentWorkbook(){[Name = "Tbl_Tracking"]}[Content],
ConvertirANumero = Table.TransformColumns(
Source,
{
{"Amount", each try Number.FromText(Text.From(_)) otherwise null}
}
),
#"Changed Type" = Table.TransformColumnTypes(ConvertirANumero,{{"Type", type text}, {"Amount", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Type] = "Expenses" or [Type] = "Savings" then [Amount] * -1 else [Amount]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Amount"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Amount"}})
in
#"Renamed Columns"


Cheers,
Nemanja Andic

 

View solution in original post

3 REPLIES 3
wdx223_Daniel
Super User
Super User

Operacion = Table.ReplaceValue(
ConvertirANumero,
each
if [Type] = "Expenses" or [Type] = "Savings" then   -1
else 1,
"",
(x,y,z)=>x*y,
{"Amount"}
)
nandic
Memorable Member
Memorable Member

Try just adding new column, then removing old column and renaming new column to "Amount"?

nandic_0-1715209740727.png

Here is M script:
let
Source = Excel.CurrentWorkbook(){[Name = "Tbl_Tracking"]}[Content],
ConvertirANumero = Table.TransformColumns(
Source,
{
{"Amount", each try Number.FromText(Text.From(_)) otherwise null}
}
),
#"Changed Type" = Table.TransformColumnTypes(ConvertirANumero,{{"Type", type text}, {"Amount", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Type] = "Expenses" or [Type] = "Savings" then [Amount] * -1 else [Amount]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Amount"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Amount"}})
in
#"Renamed Columns"


Cheers,
Nemanja Andic

 

it worked perfectly, thanks men

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Fabric Monthly Update - May 2024

Check out the May 2024 Fabric update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors
Top Kudoed Authors