Reply
ricardo9
New Member
Partially syndicated - Outbound

Cumulative that reset

Hey everyone,

I need to sum a cumulative way that will stop at some point and reset the sum:
Example:

Product          idorder       repeat       new column *
Product A          1                                     0
Product B          1                                     0
Product A          2                1                   1
Product A          3                1                   2
Product C          3                                     0
Product C          4                1                   1
Product A         5                                      0
Product A         6                 1                   1

 

So if the same products repeat in the next id order it wil give 1 and if repeats again 2... But if the next one the product is not there and repeats again, the cumulative will reset and start over.

 

I try this one but only generetas cumulative by the sequence, i don't know how to reset:

CALCULATE(sum(m[repeat]),FILTER(m,m[product]=EARLIER(m[product])),m[idorder] <=EARLIER(m[idorder]))

1 ACCEPTED SOLUTION

13 REPLIES 13
lbendlin
Super User
Super User

Syndicated - Outbound
So if the same products repeat in the next id order

That's too vague.   Did you mean to say "if any product repeats across orders"?  What if order 2 had product C as well?

Syndicated - Outbound

it can't, the id order doesn't repeat the product

Syndicated - Outbound

lbendlin_0-1727721125036.png

 

Syndicated - Outbound

not correct, i need to create New Column* that i put there

Syndicated - Outbound

as I said, the requirement is too vague. What if Product C is part of idOrder 2 ?  What would be the expected result?

Syndicated - Outbound

As i said it wont happen because de order does not accept the same product

Syndicated - Outbound

I don't know what that means.  Both orders 1 and 3 have two products. why can order 2 not have two products?

Syndicated - Outbound

Just can't be the same product, a order can have a lot of products

Syndicated - Outbound

What is the expected outcome for 

 

Product      idorder

Product A   1
Product B   1
Product A   2
Product C   2
Product A   3
Product C   3
Product C   4
Product A   5
Product A   6

Syndicated - Outbound

Product idorder New column

Product A 1 0
Product B 1 0
Product A 2 1
Product C 2 0
Product A 3 2
Product C 3 1
Product C 4 2
Product A 5 0
Product A 6 1

Syndicated - Outbound

lbendlin_1-1727727595682.png

 

Kaviraj11
Super User
Super User

Syndicated - Outbound

Hi,

 

Here’s the DAX formula you can use:

NewColumn = 
VAR CurrentProduct = m[Product]
VAR CurrentOrder = m[idorder]
VAR PreviousOrder = 
    CALCULATE(
        MAX(m[idorder]),
        FILTER(
            m,
            m[Product] = CurrentProduct && m[idorder] < CurrentOrder
        )
    )
VAR PreviousValue = 
    CALCULATE(
        MAX(m[NewColumn]),
        FILTER(
            m,
            m[Product] = CurrentProduct && m[idorder] = PreviousOrder
        )
    )
RETURN
IF(
    ISBLANK(PreviousOrder),
    0,
    IF(
        ISBLANK(PreviousValue),
        1,
        PreviousValue + 1
    )
)



Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





Syndicated - Outbound

it doesn't work the New Column does not exist yet so the MAX  can't have it, i'm trying to create this new column

avatar user

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)