Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hi.
Consider the situation. I have column CompanyName that are associated with rows of another coumn called Type. These are "Chain" ,"NF", "FF", and "DF"
CompanyName | Type |
Walmart | Chain |
Costsco | NF |
Publix | NF |
Bar | FF |
Consider that Costco and Publix are both Chains, but read as NF. Which is wrong.
How do I create a calculated column or expression that places these names into the right Type, "Chain." This is going to be on a large scale of data with multiple other company names as well.
Thank you!
Solved! Go to Solution.
Hi @park ,
The above code won't work with approximate matches. Try this one instead:
Here the code:
if Text.Contains([CompanyName], "Publix") or Text.Contains([CompanyName], "Costco") then "Chain" else [Type]
Hope this helps 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/
Did I answer your question❓➡️ Please, mark my post as a solution ✔️ |
Also happily accepting Kudos 🙂 |
Feel free to connect with me on LinkedIn! | |
#proudtobeasuperuser | |
Hi @park ,
Maybe something like this?
You could create a nested if statement with all your conditions. Here an example
Here the code:
if [CompanyName] = "Publix" or [CompanyName] = "Costco" then "Chain" else [Type]
Alternatively, you could create an own mapping table according to your definition and then you merge the mapping table with your large table on CompanyName.
Let me know if this helps! 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/
Did I answer your question❓➡️ Please, mark my post as a solution ✔️ |
Also happily accepting Kudos 🙂 |
Feel free to connect with me on LinkedIn! | |
#proudtobeasuperuser | |
Thanks! This look like it might work. I will try in a second 🙂
Will this work for approximate matches too? Like lets say I have Publix #1 - Publix #100
thanks!
Hi @park ,
The above code won't work with approximate matches. Try this one instead:
Here the code:
if Text.Contains([CompanyName], "Publix") or Text.Contains([CompanyName], "Costco") then "Chain" else [Type]
Hope this helps 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/
Did I answer your question❓➡️ Please, mark my post as a solution ✔️ |
Also happily accepting Kudos 🙂 |
Feel free to connect with me on LinkedIn! | |
#proudtobeasuperuser | |
Thank you! And if I have lets say 20 different company names, I can continue the OR statement as many times as needed? Or does it only work for two arguments
Hi @park ,
This should work for as many arguments. Please keep in mind that someone needs to update that code in case new companies are added. A better way would probably be to fix that data issue in the source itself (just saying 🙂 )
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/
Did I answer your question❓➡️ Please, mark my post as a solution ✔️ |
Also happily accepting Kudos 🙂 |
Feel free to connect with me on LinkedIn! | |
#proudtobeasuperuser | |
Thank you for the solution. This works great ! 🙂
Is this argument case sensitive as well? If so, is there a way to get around?
User | Count |
---|---|
8 | |
6 | |
6 | |
5 | |
5 |
User | Count |
---|---|
9 | |
8 | |
6 | |
6 | |
6 |