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

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
henryzf
Frequent Visitor

Power BI power query how to add a new column based on other columns value

I want to create a new column from Power query that if any other columns contain value "异常"then return value in new column "异常" else "正常". I have used List.ComtainsAny but have error.

henryzf_0-1720774705619.png

henryzf_1-1720774721327.png

 

 

1 ACCEPTED SOLUTION

Hi @henryzf 

 

You only need to make a small modification to @dufoq3 's solution like below

= Table.AddColumn(#"Previous Step", "Custom", each if List.Contains(Record.ToList(_), "异常", (x,y)=> Text.Contains(Text.From(x),y)) then "异常" else "正常", type text)

 

In addition, here is another approach which is close to your original idea. You should use List.Contains function instead. 

if List.Contains({[Device 1],[Device 2],[Device 3],[Device 4]}, "异常") then "异常" else "正常"

 

Best Regards,
Jing
If this post helps, please Accept it as Solution to help other members find it. Appreciate your Kudos!

View solution in original post

5 REPLIES 5
dufoq3
Super User
Super User

Hi @henryzf,,

 

Result

dufoq3_0-1720775694204.png

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSkxKfrqn6emOHSmpSjpKiYlJSrE6YFEIPyk5KQUmogBRqABVmZgIkQDKAPkpEEmIGIQNFIUyYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
    Ad_Custom = Table.AddColumn(Source, "Custom", each if List.Contains(Record.ToList(_), "异常", (x,y)=> Text.Contains(x,y)) then "异常" else "正常", type text)
in
    Ad_Custom

Note: Check this link to learn how to use my query.
Check this link if you don't know how to provide sample data.

Hi dufoq3, I still get error. see below. the 159 is from column ID. 
Expression.Error: We cannot convert the value 159 to type Text.
Details:
Value=159
Type=[Type]

henryzf_0-1721028777405.png

 

Hi @henryzf 

 

You only need to make a small modification to @dufoq3 's solution like below

= Table.AddColumn(#"Previous Step", "Custom", each if List.Contains(Record.ToList(_), "异常", (x,y)=> Text.Contains(Text.From(x),y)) then "异常" else "正常", type text)

 

In addition, here is another approach which is close to your original idea. You should use List.Contains function instead. 

if List.Contains({[Device 1],[Device 2],[Device 3],[Device 4]}, "异常") then "异常" else "正常"

 

Best Regards,
Jing
If this post helps, please Accept it as Solution to help other members find it. Appreciate your Kudos!

finally I go with your List.Contains. it is worked. My original way is use List.ComtainsAny but it failed. Thanks so much for your help.

 

I don't see the full code and I don't see an error. Impossible to help here...

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors