cancel
Showing results for
Did you mean:
Regular Visitor

## If based on first date occurrence

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Super User

## Re: If based on first date occurrence

@surfingjoe

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")```

9 REPLIES 9
Super User

## Re: If based on first date occurrence

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.

Regular Visitor

## Re: If based on first date occurrence

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.

Regular Visitor

## Re: If based on first date occurrence

Not sure if I was clear.  Need first date for each oder per product per customer

So the new column should be perhaps

Start Date = CALCULATE(MIN(Query1[Start date of service]),ALLEXCEPT(Query1,Query1[Part Number]))

BUT:
However, the above calculated column returns the same start date for all part numbers which is the first start date for all customers and/or products

therefore it is not returning a unique start date for the first time a product is ordered for each customer or in my case the first prescription for a specific drug for that customer
Super User

## Re: If based on first date occurrence

@surfingjoe

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.

Regular Visitor

## Re: If based on first date occurrence

@surfingjoedid you try to tweak context as follow?

`Start Date = CALCULATE(MIN(Sheet1[Start]),ALLEXCEPT(Sheet1,Sheet1[Patient ID],Sheet1[Part Number]))`
Regular Visitor

## Re: If based on first date occurrence

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???

Regular Visitor

## Re: If based on first date occurrence

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?

Highlighted
Super User

## Re: If based on first date occurrence

@surfingjoe

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")```

Regular Visitor

## Re: If based on first date occurrence

That is exactly what I was trying to acheive.  Thank You

Announcements

#### Community Highlights

Find out what's new in the Power BI Community!

#### Power Platform Summit North America

Register by September 5 to save \$200

#### Microsoft Business Applications Virtual Launch Event

Watch the event on demand for an in-depth look at the new innovations across Dynamics 365 and the Microsoft Power Platform.

#### Watch Sessions On Demand!

Continue your learning in our online communities.

Top Kudoed Authors
Users Online
Currently online: 308 members 3,219 guests
Recent signins: