Forum Discussion
Calulated column question
Power BI community
I have a table of sales data that amongst other things contians:
Part Number Cust Type Part Type
Part1 A B
Part1 B B
Part2 B A
Part3 B B
I am trying to calculate a column to enable me to sliice data to show part numbers that were B type and only purchased by B type customers so in the eample above it only Part 3 would be true as Part 2 was purchased by an A customer and Part 1 was purchased by both and A and a B customer.
Can anyone help?
Thanks
Dan
kudos to CS for putting in so much time. I am following this post because I come from the SQL world and it is a classic Unmatch query; and so I'm interested to see how it is implemented in PBI.
In SQL one would have a Parts table (all Parts & Part Type only, no repeats)
Then you would make the 1st unmatched record set which is those sales records where the 2 types do not match.
That would then be made distinct of Part field only so there are no repeats: DistinctUnMatch1
Then you would left outer join Parts to DistinctUnMatch1.
That returns all Parts records but in the UnMatch1 Parts field there are nulls where nothing can match.
This record set is UnMatch2. ... you apply criteria so it only returns the Nulls records- which by definition is the record set that are the Parts with only matched Customer & Part Type.
I may be out of date on PBI capability but I don't think one can define a left outer join - so I presume that is why one is working with yes/no comparisons instead and then a filter.
13 Replies
- AnonymousNot applicable
Hi robofski
Try the following
1. create a column called countrows as
Countrows = Calculate(Countrows(PartsBought),FIlter(PartsBought,PartsBought[PartNo]=Earlier([PartNo])))
This finds the number of rows by part number
2. Create a column called ShowYes as
ShowYes = If ([Countrows]=1 && [Cust Type] = "B" && [Part Type] = "B", "Yes","No")
If the number of rows is 1 and custtype and parttype are "B" then set that row to "Yes" to show other wise "No"
3. Create the table report and in the Filters include the value ShowYes and set the Advance Filtering as SHow item if it contains "Yes".
If this works for you please accept it as a solution and also gice KUDOS.
Cheers
CheenuSing
- robofskiResolver II
Awesome! Thank you!
- robofskiResolver II
I may have been a little premature in thinking this was the answer, it doesn't appear to be working quite as expected, looks to be only returning results that only appear once with Yes, however records that appear multiple times, even if they are B parts sold to B customers are appearing as No, so if I B customer buys the same B part multiple times and is the only customer type that buys that part it should be a Yes.
- AnonymousNot applicable
Hi
Please share some data and the output expected. Put it on onedrive or dropbox and share the link
Cheers
CheenuSing
- GilbertQSuper User
Hi robofski,
Anonymous has done some great work, but I often suggest completing this type of complicated output using the Query Editor.
The query editor is very robust and can create an additional column a lot easier and in a step by step process, which makes it easier to work through.As well as if you create it using the Query Editor, it will get better compression into your data model.
- AnonymousNot applicable
Hi GilbertQ
I agree it could be better with Query Editor and can walk through step by step.
Next time will look at this option, instead of measures.
Thanks for the valuable feedback.
Cheers
CheenuSing