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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
socksinbox
Helper I
Helper I

Calculating difference between consecutive rows

How to calculate difference between count of Active & Negative Ppl for each segment in DAX

e.g.

in below table Blank segment has 3 active & 6 negative so the diff is -3

so the final table should look this

Segment | difference
Blank | -3

etc

 

PeopleTypeSegment
ActiveBLANK
ActiveBLANK
ActiveBLANK
NegativeBLANK
NegativeBLANK
NegativeBLANK
NegativeBLANK
NegativeBLANK
NegativeBLANK
PassiveBLANK
PassiveBLANK
ActiveEC
ActiveEC
PassiveEC
ActiveResident
ActiveResident
ActiveResident
NegativeResident
NegativeResident
PassiveResident
ActiveSME
ActiveSME
NegativeSME
NegativeSME
PassiveSME

 

 

 

3 ACCEPTED SOLUTIONS

Hi @socksinbox ,

 

It can be segment wise, you just create a table and drag the segment column into it,

then create the measue I did, then drag to it, you will see the result.

 

Or do you mean you want to use a DAX to create a new table with segment column and diff column?

 

Aiolos Zhao





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

Proud to be a Super User!




View solution in original post

Hi @socksinbox ,

 

If you want to create a new table, please use below expression :

Table = SUMMARIZE(Table4,Table4[Segment],"Diff",CALCULATE(COUNTROWS(Table4),Table4[PeopleType] = "Active") - CALCULATE(COUNTROWS(Table4),Table4[PeopleType] = "Negative"))

Thanks.

Aiolos Zhao





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

Proud to be a Super User!




View solution in original post

Hi,

Based on the data that you have shared, the average should be 0.  Try this measure

Measure = AVERAGEX(SUMMARIZE(CALCULATETABLE(Data,Data[PeopleType]="Active"||Data[PeopleType]="Negative"),Data[Segment],"Active",CALCULATE(COUNTROWS(Data),Data[PeopleType]="Active"),"Negative",CALCULATE(COUNTROWS(Data),Data[PeopleType]="Negative")),[Active]-[Negative])

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

10 REPLIES 10
AiolosZhao
Memorable Member
Memorable Member

Hi @socksinbox ,

 

Please try to use below measure, it works in my demo :

CALCULATE(COUNTROWS(Table4),Table4[PeopleType] = "Active") - CALCULATE(COUNTROWS(Table4),Table4[PeopleType] = "Negative")

Thanks.

Aiolos Zhao

 





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

Proud to be a Super User!




Thanks @AiolosZhao for this.

 

Actually this will calculate the overall difference, however, I would like to have segment wise difference. So I would need to return a table not a measure

 

thanks

 

Hi @socksinbox ,

 

It can be segment wise, you just create a table and drag the segment column into it,

then create the measue I did, then drag to it, you will see the result.

 

Or do you mean you want to use a DAX to create a new table with segment column and diff column?

 

Aiolos Zhao





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

Proud to be a Super User!




Yes.. I mean I would like to create a new data table.
Actually, once I will have the segment-wise difference then I will create a measure on the top of that which will take the average of all differences and show in a card visual

 

cheers

Hi,

Based on the data that you have shared, the average should be 0.  Try this measure

Measure = AVERAGEX(SUMMARIZE(CALCULATETABLE(Data,Data[PeopleType]="Active"||Data[PeopleType]="Negative"),Data[Segment],"Active",CALCULATE(COUNTROWS(Data),Data[PeopleType]="Active"),"Negative",CALCULATE(COUNTROWS(Data),Data[PeopleType]="Negative")),[Active]-[Negative])

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Thanks @Ashish_Mathur  for your help

You are welcome.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Hi @socksinbox ,

 

If you want to create a new table, please use below expression :

Table = SUMMARIZE(Table4,Table4[Segment],"Diff",CALCULATE(COUNTROWS(Table4),Table4[PeopleType] = "Active") - CALCULATE(COUNTROWS(Table4),Table4[PeopleType] = "Negative"))

Thanks.

Aiolos Zhao





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

Proud to be a Super User!




Thanks @AiolosZhao  for your help

Glad to help you ~





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

Proud to be a Super User!




Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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