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

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.

Reply
Anonymous
Not applicable

Count unique values in a filtered column with earlier

Hey everybody, 

 

I don´t know why, but the forum decided to delete my post, so I am just typing it again... 

 

I am stuck with this problem since a while now, have googled and read at least 50 posts, but have not found help so far. I hope, somebody has an idea here.

 

The question I want to answer is quite simple. How many shipments are needed to fulfil one order. 
The dataset I am working with contains information about orders. If you order different product at the same time, for each of these product there will be a record - an order line. But they will get the same order id. Now due to stock levels and other reasons not all order lines of one order are shipped at the same time. Each order lines has an shipping id, which shows in which shipment the order was sent. 

 

So in a simplified version: 

order_id    shipping_id
1a
1b
1c
2a
2b
3

e

3e
3e
3e

 

The outcome should look like: 

order id    shipping id     shipping ids per order id
1a3
1b3
1c3
2a2
2b2
3e1
3e1
3e1

 

First, I tried to generate a table for each row which only shows the data with the exact same order id. To check, if my formula is correct, I counted the rows and controlled it manually. That worked: 

=COUNTX(FILTER('Outbound_3_ESC',EARLIER('Outbound_3_ESC'[order_id]) = 'Outbound_3_ESC'[order_id]),'Outbound_3_ESC'[order_id])

 

Then, I tried to count the distinct values for the shipping id in those tables: 

Shipments per order_id = CALCULATE(DISTINCTCOUNT(Outbound_3_ESC[shipment_id]),FILTER('Outbound_3_ESC',EARLIER(Outbound_3_ESC[order_id]) = 'Outbound_3_ESC'[order_id]))

The formula works, however the outcomes are wrong. I don´t know what is counted there.... I read in several posts, that this could happen, because I am doing it in a calculated column. And the solution in the forum always was to use a measure. However, in a measure the earlier function is not working... And there I am stucked.

Comments, feedback and solutions are well appreciated. I also am happy to answer any questions, which might appear regarding my problem description. 

Thanks in advance for any help! 
Jakob
1 ACCEPTED SOLUTION

Hi @Anonymous ,

Please try to create a calculated column as below to replace that measure and check if that is what you want:

Column = CALCULATE (
    DISTINCTCOUNT ( 'Outbound_3_ESC'[shipment_id] ),
    FILTER (
      ALLSELECTED(    'Outbound_3_ESC' ),
        'Outbound_3_ESC'[order_id] = EARLIER( 'Outbound_3_ESC'[order_id] )
    )
)

Best Regards

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

12 REPLIES 12

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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