Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Active Clients

I have a date when client started to work with the company, and date when he finished/terminated.

I need to calculate what was total number of active clients in any given moment, First goal to see by years and then by months

I have difficulties to represent that client can be active within several months and then terminate. Usual approach stick to the one date not the range

Can you help?

  • Hi Anonymous

    Create a calendar date table in Editor Queries,

    Create a blank query->open advanced editor, paste the following code 

    let
    Source = List.Dates(#date(2018, 1, 1),365, #duration(1, 0, 0, 0)),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "date"}})
    in
    #"Renamed Columns"

    close &&apply,

    create relationship between calendar table and your data table (called "Sheet1" in my test) based on "Sheet1"[start date] <->"calendar"[date]

    create a measure in Sheet1,

    no_count =
    CALCULATE (
        COUNT ( Sheet1[client] ),
        FILTER (
            ALL ( Sheet1 ),
            [start date] <= MAX ( 'calendar'[date] )
                && [end date] >= MAX ( 'calendar'[date] )
        )
    )
    

    add "calendar"[date] in the Axis, measure in the value field

     

     

    Best Regards

    Maggie

     

     

     

     

10 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Any ideas? or should I "decode" what I meant?

      • Anonymous's avatar
        Anonymous
        Not applicable
        Ashish_Mathur hi I make a example above, please see file (url to dropbox)
  • v-juanli-msft's avatar
    v-juanli-msft
    Community Support

    Hi Anonymous

    For this :

    "represent that client can be active within several months and then terminate"

    Do you mean:

    select terminate date (eg.2018/12/20), then select "3 months", you need to show the clients who are active in the period :"2018/9/20~2018/12/20"

     

    Please clear me, if it is convenient, could you show me an example?

     

    Best Regards

    Maggie

     

      • v-juanli-msft's avatar
        v-juanli-msft
        Community Support

        Hi Anonymous

        Create a calendar date table in Editor Queries,

        Create a blank query->open advanced editor, paste the following code 

        let
        Source = List.Dates(#date(2018, 1, 1),365, #duration(1, 0, 0, 0)),
        #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
        #"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "date"}})
        in
        #"Renamed Columns"

        close &&apply,

        create relationship between calendar table and your data table (called "Sheet1" in my test) based on "Sheet1"[start date] <->"calendar"[date]

        create a measure in Sheet1,

        no_count =
        CALCULATE (
            COUNT ( Sheet1[client] ),
            FILTER (
                ALL ( Sheet1 ),
                [start date] <= MAX ( 'calendar'[date] )
                    && [end date] >= MAX ( 'calendar'[date] )
            )
        )
        

        add "calendar"[date] in the Axis, measure in the value field

         

         

        Best Regards

        Maggie

         

         

         

         

  • Anonymous's avatar
    Anonymous
    Not applicable
    Can any one help me? still fighting with the task