Forum Discussion

ryan_b_123's avatar
ryan_b_123
Frequent Visitor
2 years ago
Solved

Using value from column to affect calculation in Power Query

Col 1Col 2Col 3Desired Result
4+59
3-21

 

Let's say I have above dataset:

To do above, I could write a formula in Power QUery something like "if [col 2] = "+" then [Col 1] + [Col 3] else [Col 1] - [Col 3].  I DO NOT want this sort of solution.

 

Instead, I would like the value of [Col 2] to be inherent within the formula.  Perhaps with some 'mythical' formula like below:

[Col 1]    MadeUpFunction[Col 2]    [Col 3]

 

Is there any sort of way to affect the Power Query code using a field in your dataset?

  • Yes, there is a way.

    Use Expression.Evaluate

    You can build a string from the first 3 columns ( either by appending with & or use Text.Combine and then just pass that to Expression.Evaluate()

4 Replies

  • HotChilli's avatar
    HotChilli
    Community Champion

    Yes, there is a way.

    Use Expression.Evaluate

    You can build a string from the first 3 columns ( either by appending with & or use Text.Combine and then just pass that to Expression.Evaluate()

  • ryan_b_123's avatar
    ryan_b_123
    Frequent Visitor

    Thank you, so much.  This is exactly what I am looking for.  I am curious about one thing though.

    Expression.Evaluate(Text.Combine({"5","=","5"}, " "))   will return true.  Which is good.

    Expression.Evaluate(Text.Combine({"hello","=","hello"}, " "))   will return an error.  "The name 'hello' doesn't exist in the current context."

     

    Do you know why we cannot use "=" operator for alphabetical comparisons?