Desktop

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

Table-2

Regards,

Varun

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...

Proud to be a Datanaut!

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

Re: Count rows with condition

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.

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.