Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Working with Pharmaceutical data. Trying to determine the first occurrence of a prescription as "New" prescription and all successive orders of that prescription as "refills"
Each patient will have a "service start date" and a "service stop date". Each service range can have multiple fills.
A doctor can renew a prescription, we would then assign a new "service start date"
I'd like to be able to use an if statement stating that the first start date is a "New" service start and all successive start dates as refills.
If this was the AdventureWorks data, then it can be described as wanting to flag the very first customer order for a product as "new order" for that product and if the customer oders more of the same product, then flag it as a "repeat" order for that same product.
Bottom line I'd like to create a slicer for only new prescriptions.
Solved! Go to Solution.
Try this for the new column:
NewColumn=
VAR _StartDate = CALCULATE ( MIN ( Query1[Start date of service] ), ALLEXCEPT ( Query1, Query1[Product], Query1[Customer] ) )
RETURN
IF( Query1[Start date of service] = _StartDate, "New", "Refill")
Create a Calculated column with following code
Start Date = CALCULATE(MIN(Sheet1[Start]),ALLEXCEPT(Sheet1,Sheet1[Patient ID]))
Create slicer column with following code
Flag = IF(Sheet1[Start]=Sheet1[Start Date],"Start","Refill")
play around with the attached PBIX.
Not sure if I was clear. Need first date for each oder per product per customer
So the new column should be perhaps
@surfingjoedid you try to tweak context as follow?
Start Date = CALCULATE(MIN(Sheet1[Start]),ALLEXCEPT(Sheet1,Sheet1[Patient ID],Sheet1[Part Number]))
Thank You that works.
however I've an issue with the if statement. PowerBI is only allowing me to type in measures to do the logical test. not columns, am I doing something wrong?
Then
Start Date = CALCULATE ( MIN ( Query1[Start date of service] ), ALLEXCEPT ( Query1, Query1[Product], Query1[Customer] ) )
should suffice for the start date. You can, within the code for the column, check whether the current row date equals the start date.
Try this for the new column:
NewColumn=
VAR _StartDate = CALCULATE ( MIN ( Query1[Start date of service] ), ALLEXCEPT ( Query1, Query1[Product], Query1[Customer] ) )
RETURN
IF( Query1[Start date of service] = _StartDate, "New", "Refill")
That is exactly what I was trying to acheive. Thank You
Thank you, that definitely gives me the first "start date" for each product for each patient.
However now, I'm really going to show my newbieness. the if statement shown above seems like it should work comparing the row's start date with the new columns start date, however, when I try to write out the if statement, it is only allowing me to type in measures and not actual column names to compare.
What am I doing wrong, just need to create an if statement that compares start date to the new column???
Hi @surfingjoe
I guess each prescription has a unique identifier? Why don't you show a sample of your data model? It would make things much easier for people trying to help.
You could use an ascending RANKX( ) based on date within each prescription and assign a "Yes" to the row ranked number 1. Or you can also check whether the date for the current row has the MIN(date) for that prescription.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
110 | |
94 | |
81 | |
66 | |
58 |
User | Count |
---|---|
150 | |
119 | |
104 | |
87 | |
67 |