Reply
Regular Visitor
Posts: 29
Registered: ‎09-17-2018

Count rows with condition

 

Hi,

 

Target: Get the Clients count in each month under Table-2 categories : New Client and Client Loss . Below table-1 defines the revenue by Clients (A,B,C,D,E,F) in each month. Table -2 is the output. In below Tables-2

 

Table-1

image.png

Table-2

image.png

Regards,

Varun

Highlighted
Super User
Posts: 10,605
Registered: ‎07-11-2015

Re: Count rows with condition

First thing I would do would be to unpivot my month columns in Table 1. The, see if my Time Intelligence the Hard Way provides a way of accomplishing what you are going for.

https://community.powerbi.com/t5/Quick-Measures-Gallery/Time-Intelligence-quot-The-Hard-Way-quot-TIT...


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

Proud to be a Datanaut!


Community Support Team
Posts: 2,542
Registered: ‎03-15-2018

Re: Count rows with condition

Hi @chandra_0202 

As tested, i can make a similar visual as yours.

Though it is not the same, but it can tell what you want to explain via your visual.

7.png

1.open Edit queries, (you could find more details in my pbix by clicking on each step)

unpivot columns (select columns "Apr"~"Jul", then select "Unpivot columns" from menu)

rename column "Attribute" as "MONTH", change the type of "MONTH" column to "Date" type

select on the "MONTH" column, go to "Add column"->"year","month","month name"

Close&&apply

 

2.create measures

this month = CALCULATE(COUNT(Table1[clients]),ALLEXCEPT(Table1,Table1[MONTH]))

previous month = 
CALCULATE([this month],FILTER(ALL(Table1),[Month.1]=MAX([Month.1])-1))

flag =
IF (
    MAX ( Table1[Month.1] ) = 4,
    0,
    IF (
        [previous month] < [this month],
        1,
        IF ( [previous month] = [this month], 0, -1 )
    )
)

+/- value =
IF (
    MAX ( Table1[Month.1] ) = 4,
    0,
    IF (
        [previous month] < [this month],
        [this month] - [previous month],
        IF ( [previous month] = [this month], 0, [previous month] - [this month] )
    )
)

create a calcuated column

SWITCH = SWITCH(TRUE(),[flag]<0,"LOSS",[flag]>0,"NEW","BALANCE")

Best Regards

Maggie

 

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

Attachment