Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Sum formula with condition by level

Hi, 

I've been trying to make this work but I haven't found the answer.

 

I have 3 levels: Zone, Component and person. For example, this is the data:

ZoneComponentPersonWork hrs
Zone 1Component 1Simon1.5
Zone 1Component 1Peter-1
Zone 1Component 1Simon2
Zone 1Component 2Simon4
Zone 1Component 2Peter-2
Zone 1Component 2Simon-7
Zone 1Component 2Simon-4
Zone 1Component 2Peter1

I want to create a formula where I would sum only the negative values from the person's sum to obtain the component's sum. The positives values will turn 0.


I would like to create a table where I can get the column "Data": 

Here you can see the column "Normal sum", It sums positives and negatives to obtain the component sum.

I want to obtain the data column, where the positive values from the person will turn to 0 (such as the 3.5 from Simon), so that I can only sum the negative hrs and obtain the -9 value.

 

Which formula could I use?
I hope you can help me to solve this issue. Thank you.

 

  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi Anonymous ,

     

    Check the formulas.

    measure = CALCULATE(SUM(TableA[Work hrs]),ALLEXCEPT(TableA,TableA[Zone],TableA[Component],TableA[Person]))
    Measure 2 = IF([measure]>0,0,[measure])
    Measure 3 = SUMX(TableA,[Measure 2]/CALCULATE(COUNT(TableA[Person]),ALLEXCEPT(TableA,TableA[Zone],TableA[Component],TableA[Person])))
    Result:
     
    Best Regards,
    Jay

2 Replies

  • Anonymous ,

    Create a measure first

    normal sum = sum(Table[Value])

     

    Then

    sumx(filter(values(Table[Person]), [Normal sum] >0 ), [Normal Sum])

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous ,

     

    Check the formulas.

    measure = CALCULATE(SUM(TableA[Work hrs]),ALLEXCEPT(TableA,TableA[Zone],TableA[Component],TableA[Person]))
    Measure 2 = IF([measure]>0,0,[measure])
    Measure 3 = SUMX(TableA,[Measure 2]/CALCULATE(COUNT(TableA[Person]),ALLEXCEPT(TableA,TableA[Zone],TableA[Component],TableA[Person])))
    Result:
     
    Best Regards,
    Jay