Forum Discussion

Diksha's avatar
Diksha
Regular Visitor
1 year ago
Solved

Rolling 2 week, 4 week average

I have this table. What I want is rolling averages of 2 week, 4 week, 6 week and 8 week. Like in below table If I select date 15 from date master table. Then rolling 2 week is June 15 and June 8. So I want to calculate average of client subs like (140+147)/2. But issue is Client subs is calculated from the table and dax used 

#Clt. Subs = CALCULATE(DISTINCTCOUNT(_Activity[Note Template ID]),'Actions DM'[Action_Short]="Client Sub"). Can you please suggest how can I do this. 
 

 

  • Hi Diksha, from the data mentioned by you, I have created a dummy dataset and followed your outcome / output. Here's the file, the image of the output and the code in text for your reference. Is this what you are looking for? Do let me know. Thanks

    File Link:

    https://docs.google.com/spreadsheets/d/1sNn__L9XwoRIZcKDXt6W10BtZdzNZpls/export?format=xlsx&ouid=104752674875039603034&rtpof=true&sd=true

    Here's the code:
    let
    Source = #table(
    {
    "Month",
    "Day",
    "Client Sub per Recruiter",
    "Sourcing Sub per Recruiter",
    "Average Sourcing Subs",
    "Average Client Subs",
    "Interviews",
    "Offers",
    "Temp Starts",
    "Contract Billable HC",
    "AWGP Run Rate"
    },
    {
    {"June", 8, 4.83, 6.31, 169, 130, 19.5, 6.5, 6.0, 104, 60411},
    {"June", 15, 4.45, 6.01, 165, 122, 17.5, 9.25, 7.5, 102, 55596},
    {"June", 22, 4.68, 6.26, 170, 128, 23.0, 10.38, 7.38, 95, 54320},
    {"June", 29, 4.95, 6.40, 174, 132, 21.0, 8.75, 6.75, 97, 56750},
    {"July", 6, 5.10, 6.55, 178, 134, 22.5, 9.00, 7.00, 99, 57980},
    {"July", 13, 4.88, 6.20, 171, 129, 20.0, 7.80, 6.50, 98, 55100},
    {"July", 20, 4.70, 6.00, 167, 126, 18.5, 6.90, 6.25, 96, 53850},
    {"July", 27, 4.92, 6.18, 173, 131, 19.8, 8.20, 6.90, 100, 56120}
    }
    ),
    #"Removed Columns" = Table.RemoveColumns(Source, {"Month", "Day"}),
    Unpivot = Table.Unpivot(
    #"Removed Columns",
    {
    "Client Sub per Recruiter",
    "Sourcing Sub per Recruiter",
    "Average Sourcing Subs",
    "Average Client Subs",
    "Interviews",
    "Offers",
    "Temp Starts",
    "Contract Billable HC",
    "AWGP Run Rate"
    },
    "Attribute",
    "Value"
    ),
    Group = Table.Group(
    Unpivot,
    {"Attribute"},
    {
    {"2-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 2)) / 2, 2), Int64.Type},
    {"4-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 4)) / 4, 2), Int64.Type},
    {"6-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 6)) / 6, 2), Int64.Type},
    {"8-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 8)) / 8, 2), Int64.Type}
    }
    )
    in
    Group

10 Replies

    • Diksha's avatar
      Diksha
      Regular Visitor

      No, It does not solve my problem. I want table in this format :

       
       2-weeks4-weeks6-weeks8-weeks
      Sourcing Sub per Recruiter6.316.016.236.26
      Client Sub per Recruiter4.834.454.654.68
      Average Sourcing Subs169165172170
      Average Client Subs130122128127
      Interviews19.5017.5021.0023.00
      Offers6.509.259.8310.38
      Temp Starts6.007.507.507.38
      Contract Billable HC1041029995
      AWGP Run Rate$60,411$55,596$54,937$54,320
      • SundarRaj's avatar
        SundarRaj
        Super User

        Hi Diksha, from the data mentioned by you, I have created a dummy dataset and followed your outcome / output. Here's the file, the image of the output and the code in text for your reference. Is this what you are looking for? Do let me know. Thanks

        File Link:

        https://docs.google.com/spreadsheets/d/1sNn__L9XwoRIZcKDXt6W10BtZdzNZpls/export?format=xlsx&ouid=104752674875039603034&rtpof=true&sd=true

        Here's the code:
        let
        Source = #table(
        {
        "Month",
        "Day",
        "Client Sub per Recruiter",
        "Sourcing Sub per Recruiter",
        "Average Sourcing Subs",
        "Average Client Subs",
        "Interviews",
        "Offers",
        "Temp Starts",
        "Contract Billable HC",
        "AWGP Run Rate"
        },
        {
        {"June", 8, 4.83, 6.31, 169, 130, 19.5, 6.5, 6.0, 104, 60411},
        {"June", 15, 4.45, 6.01, 165, 122, 17.5, 9.25, 7.5, 102, 55596},
        {"June", 22, 4.68, 6.26, 170, 128, 23.0, 10.38, 7.38, 95, 54320},
        {"June", 29, 4.95, 6.40, 174, 132, 21.0, 8.75, 6.75, 97, 56750},
        {"July", 6, 5.10, 6.55, 178, 134, 22.5, 9.00, 7.00, 99, 57980},
        {"July", 13, 4.88, 6.20, 171, 129, 20.0, 7.80, 6.50, 98, 55100},
        {"July", 20, 4.70, 6.00, 167, 126, 18.5, 6.90, 6.25, 96, 53850},
        {"July", 27, 4.92, 6.18, 173, 131, 19.8, 8.20, 6.90, 100, 56120}
        }
        ),
        #"Removed Columns" = Table.RemoveColumns(Source, {"Month", "Day"}),
        Unpivot = Table.Unpivot(
        #"Removed Columns",
        {
        "Client Sub per Recruiter",
        "Sourcing Sub per Recruiter",
        "Average Sourcing Subs",
        "Average Client Subs",
        "Interviews",
        "Offers",
        "Temp Starts",
        "Contract Billable HC",
        "AWGP Run Rate"
        },
        "Attribute",
        "Value"
        ),
        Group = Table.Group(
        Unpivot,
        {"Attribute"},
        {
        {"2-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 2)) / 2, 2), Int64.Type},
        {"4-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 4)) / 4, 2), Int64.Type},
        {"6-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 6)) / 6, 2), Int64.Type},
        {"8-Week Average", each Number.Round(List.Sum(List.FirstN(_[Value], 8)) / 8, 2), Int64.Type}
        }
        )
        in
        Group

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  Diksha 

    Just wanted to say a big thank you SundarRaj  for the amazing solution you shared.

    The rolling averages table now works exactly as diksha hoped clean, clear. The way sunder used List.FirstN in Power Query with the sample data was correct on point.  If anything, a dynamic date filter would make it even better, but this already gets the job done beautifully.

    If there is any issue after following super user provided steps, please feel reach to Microsoft Fabric Community Forum.
    _________________________________________________________________________________________________________________________
    If this response helps, consider marking it as “Accept as solution” and giving a “kudos” to assist other community members.

    Reagrds,
    Akhil.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Diksha ,

    I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.

    Thank you,
    Akhil.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Diksha ,

    Just wanted to follow up and confirm that everything has been wrapped up on this. Please let me know if there’s anything pending from my side. Please feel free to reach out Microsoft fabric community forum.

    Regards,
    Akhil.
  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Diksha ,

    Since we haven’t heard back from you, we’ll proceed to close this thread for now. If you continue to experience issues or have any additional questions, feel free to start a new thread in the Microsoft Fabric Community Forum. We’re always here to help and happy to support you.

    Regards,
    Akhil.