Forum Discussion

Chau's avatar
Chau
New Member
9 years ago
Solved

Week starting Wednesday

I need to do weekly reports for the week starting from every Wednesday to Tuesdays the week after. Can anyone help me how to change start of the week to Wednesday (instead of Sunday as default). 

 

Many thanks.

  • Anonymous's avatar
    Anonymous
    9 years ago

    Create this as a calculated column wherever you want to do your date filtering (i.e. Date table)

    WEEKNUM = IF(
    	WEEKDAY([Date], 1) < 4),
    	WEEKNUM([Date], 1),
    	WEEKNUM([Date], 1) + 1
    )

     

    This will place Week Numbers next to all of your lines.  Now you can do your filtering based on Weeknumbers.  If you do this as part of a Date Dimension table, you can do a lookup from any date to the WeekNumber

11 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    hi Chau

     

    Create a column in your calendar table

     

    DayofWeek = Weekday(Calendar[Date],13)

     

    The last parameter makes the week to begin from Wednesday to Tuesday.

     

    If this works for you please accept this as a solution and also give KUDOS.

     

    Cheers

     

    CheenuSing

    • Anonymous's avatar
      Anonymous
      Not applicable

      Anonymous correct me if i'm wrong, but doesn't WEEKDAY only return a value between 1 and 7?  Also doesn't the 2nd parameter only accept values 1, 2, or 3 rather than the 13 you have suggested?

       

      https://msdn.microsoft.com/en-us/library/ee634550.aspx

       

      My understanding is that Chau wanted a set of week numbers in order to do filters for reporting.

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi Anonymous

         

        If you look up the WeekDay function in Excel the second parameter also accepts values from 11 to 17. 

         

        The weekday function in dax wroks in the same manner as excel although the documentation you referred to does not say so.

         

        You can try out various values 1 to 3, 11 to 17 as the second parameter and see what you get.

         

        Cheers

         

        CheenuSing

    • Chau's avatar
      Chau
      New Member

      Anonymous Thanks CheenuSing. Your method works as well. 

      • Anonymous's avatar
        Anonymous
        Not applicable

        I'd suggest, if you don't have one, create a Date Dimension table  (http://www.agilebi.com.au/power-bi-date-dimension/) which you can link to your other data.  The weeknumber formula you just created, could be placed into this table instead.  Now you'll have a direct link between Dates and Week numbers.  Lastly create another column which contains date data, but is something like "Week Starting" or "Week Ending".  This column will contain the data you will put on your axis.

        A formula you can use for this is

        [WeekEnding] = Calendar[Dates] – MOD(Calendar[Dates] - 5, 7) + 6

         

    • jc123380's avatar
      jc123380
      New Member

      Anonymous thank you that works a treat.

       

       

       

  • Anonymous's avatar
    Anonymous
    Not applicable

    Create this as a calculated column wherever you want to do your date filtering (i.e. Date table)

    WEEKNUM = IF(
    	WEEKDAY([Date], 1) < 4),
    	WEEKNUM([Date], 1),
    	WEEKNUM([Date], 1) + 1
    )

     

    This will place Week Numbers next to all of your lines.  Now you can do your filtering based on Weeknumbers.  If you do this as part of a Date Dimension table, you can do a lookup from any date to the WeekNumber

    • Chau's avatar
      Chau
      New Member

      Anonymous Thanks a lot Ross. It works perfectly for me. However I don't want the new WeekNum to appear on the X-axis. Instead I want to use the date of the start of the week on the axis. For example, instead of showing 14, 15, I want to show 29/03/2017, 05/04/2017 on the X-axis. How can I do that?