Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Divide based on a grouped column

Hello everyone,

 

I have a table with 5 columns [Date, ID, ZipCode, Numeric, Condition]

 

DateIDZipCodeNumberCondition
27/03/2020AMTS117525Yes
27/03/2020BMTS117525Yes
19/03/2020CMTS117525Yes
25/02/2020DMTS0No
20/01/2020EFCM120368Yes
13/03/2020FFCM120368Yes
17/03/2020GFCM0No
05/04/2020HMTS247831Yes
31/03/2020IMTS0No
08/04/2020JMTS247831Yes

 

The goal is to divide the Number with the total count of "Yes".

  • For ZipCode "MTS" I want to divide 117.525/3, being 3 the total number of Yes for that ZipCode and for that Number. The Number results from a condition based on the Date.
  • For ZipCode "FCM" I want to divide 120.368/2.
  • Again for MTS, 247.831/2
  • For the rows where the Condition = "No" the result should be 0.


How do i lock that count for each row? 

Edit: I add another ZipCode to clarify the goal

  • Anonymous , New column

     

    new column =divide( [Number], countx(filter(Table, [zip code] =earlier([Zip Code]) && [Condition]= "Yes" ), [ID] ) )

5 Replies

  • Anonymous , New column

     

    new column =divide( [Number], countx(filter(Table, [zip code] =earlier([Zip Code]) && [Condition]= "Yes" ), [ID] ) )

    • Anonymous's avatar
      Anonymous
      Not applicable

      When the condition is "No" the new column should be 0.

      The output should be 39175 | 39175 | 39175 | 0 (these are rows). 

      The zipcode can change along the table

  • tamerj1's avatar
    tamerj1
    Community Champion

    Hi Anonymous 

    I guess you are using table visual by ZipCode. Then you can use

     

    Measure1 =
    DIVIDE (
        SUM ( Table[Number] ),
        COUNTROWS ( FILTER ( Table, Table[Condition] = "Yes" ) )
    )

     

  • tamerj1's avatar
    tamerj1
    Community Champion

    Anonymous 

    Use this for a calculated column

    Column1 =
    VAR ZipCodeTable =
        CALCULATETABLE ( Table, ALLEXCEPT ( Table, Table[ZipCode] ) )
    VAR YesTable =
        FILTER ( ZipCodeTable, Table[Condition] = "Yes" )
    RETURN
        IF (
            Table[Condition],
            0,
            DIVIDE ( SUMX ( YesTable, Table[Number] ), COUNTROWS ( YesTable ) )
        )