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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Mathais_
New Member

COUNT IF With Group By ?

Hi,
Hello, I have a table with this datas.
I would like to add a new column to count the number of IDs per Order for which the OtherID field is not null.

 

My datas :

Order              ID                         OtherID          
J4-11111112121212525252
J4-11111112121212 
J4-11111112121212925874
JF-33333313131313999999

 

And the Result I would want :

Order                ID            OtherID  NotNullOtherID  
J4-11111112121212  525252  2
J4-11111112121212 2
J4-111111121212129258742
JF-333333131313139999991

 

Thank you very much.

5 REPLIES 5
Arul
Super User
Super User

@Mathais_ ,

Create a calculated column with this formula,

NotNullOtherID = 
CALCULATE(
    COUNTROWS(Table1),
    FILTER(
        Table1,
        NOT(ISBLANK(Table1[OtherID])) && 
        Table1[Order] = EARLIER(Table1[Order])
    )
)

Thanks,

Arul





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

Proud to be a Super User!


LinkedIn


A criterea was missing :

Now, how can I force 0 instead of blank value when All Table1[OtherID] values are blank ?

NotNullOtherID = 
CALCULATE(
    COUNTROWS(Table1),
    FILTER(
        Table1,
        NOT(ISBLANK(Table1[OtherID])) && 
        Table1[Order] = EARLIER(Table1[Order]) &&
        Table1[ID] = EARLIER(Table1[ID])
    )
)


 

@Mathais_ ,

where is that 0 is coming from?

Thanks,

Arul





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

Proud to be a Super User!


LinkedIn


Thank you for your help !

When Table1[OtherID] is blank, the calculated field show a blank value exemple :

I want to replace BLANK by 0 

Order              ID                         OtherID      NotNullOtherID 
JJ-222222123456 BLANK
KK-999999876545555551
KK-99999987654 1
FF-55555999999 BLANK

 

I wrote this code but maybe it's not optimized ?

NotNullOtherID = 
If(
    CALCULATE(
        COUNTROWS(Table1),
        FILTER(
            Table1,
            NOT(ISBLANK(Table1[OtherID])) && 
            Table1[Order] = EARLIER(Table1[Order]) &&
            Table1[ID] = EARLIER(Table1[ID])
        )
    ) = BLANK(),
    0,
    CALCULATE(
        COUNTROWS(Table1),
        FILTER(
            Table1,
            NOT(ISBLANK(Table1[OtherID])) && 
            Table1[Order] = EARLIER(Table1[Order]) &&
            Table1[ID] = EARLIER(Table1[ID])
        )
    )
)

@Mathais_ ,

just add +0 at the end of your measure,

NotNullOtherID = 
If(
    CALCULATE(
        COUNTROWS(Table1),
        FILTER(
            Table1,
            NOT(ISBLANK(Table1[OtherID])) && 
            Table1[Order] = EARLIER(Table1[Order]) &&
            Table1[ID] = EARLIER(Table1[ID])
        )
    ) = BLANK(),
    0,
    CALCULATE(
        COUNTROWS(Table1),
        FILTER(
            Table1,
            NOT(ISBLANK(Table1[OtherID])) && 
            Table1[Order] = EARLIER(Table1[Order]) &&
            Table1[ID] = EARLIER(Table1[ID])
        )
    )
)+0

Thanks,

Arul





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

Proud to be a Super User!


LinkedIn


Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

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

MayPowerBICarousel

Power BI Monthly Update - May 2024

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

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.