Forum Discussion

Planted_Baker80's avatar
Planted_Baker80
New Member
3 years ago

Weekly Sales from Total Sales Data & possible Visualizations

I have an Excel file that contains the below data which is updated every week with new data. I have connected this Excel file to Power BI. Excel sheet consists of the first 3 columns shown below: [Date], [Company], and [Total Sales]. The [Total Sales] column shows the total number of items sold by each Company of [Company] column as on the date in the [Date] column. 

 

I have also created a date table "Date_Table".

I am trying to create a measure with the below formula based on watching a YouTube tutorial:

 

 

Sales_PW =
VAR CurrentWeek =
    SELECTEDVALUE ( Date_Table[WeekNum] )
VAR CurrentYear =
    SELECTEDVALUE ( Date_Table[Year] )
VAR MaxWeekNumber =
    CALCULATE ( MAX ( Date_Table[WeekNum] ), ALL ( Date_Table[Date] ) )
RETURN
    SUMX (
        FILTER (
            ALL ( Date_Table[Date] ),
            IF (
                CurrentWeek = 1,
                Date_Table[WeekNum] = MaxWeekNumber
                    && Date_Table[Year] = CurrentYear - 1,
                Date_Table[WeekNum] = CurrentWeek - 1
                    && Date_Table[Year] = CurrentYear
            )
        ),
        [Total Sales]
    )

 

 

 

While using this measure I get an error message: 

"A single value for column 'WeekNum' in table 'Date_Table' cannot be determined. This can happen when a measure formula refers to a column that contains many values without specifying an aggregation such as min, max, count, or sum to get a single result."

 

  • I want to know how to get [Weekly Sales] in Power Bi without disturbing the data in Excel Sheet. Should it be done by adding a Colum or by creating a Measure?
  • So far, I have been using the Horizontal Bar Chart to show the Total Sales for each Company. [Date] is used as a slicer. I now want to compare Total Sales & Weekly Sales keeping [Date] as a slicer. How can I do it in the same chart?

1 Reply

  • I think it should work if you tweak it to

    Sales_PW =
    VAR CurrentWeek =
        SELECTEDVALUE ( Date_Table[WeekNum] )
    VAR CurrentYear =
        SELECTEDVALUE ( Date_Table[Year] )
    VAR MaxWeekNumber =
        CALCULATE ( MAX ( Date_Table[WeekNum] ), ALL ( Date_Table[Date] ) )
    RETURN
        SUMX (
            FILTER (
                ALL ( Date_Table ),
                IF (
                    CurrentWeek = 1,
                    Date_Table[WeekNum] = MaxWeekNumber
                        && Date_Table[Year] = CurrentYear - 1,
                    Date_Table[WeekNum] = CurrentWeek - 1
                        && Date_Table[Year] = CurrentYear
                )
            ),
            [Total Sales]
        )