显示前几年的年初至今销售额

Posted

技术标签:

【中文标题】显示前几年的年初至今销售额【英文标题】:Show year to date sales for previous years 【发布时间】:2018-06-01 18:52:32 【问题描述】:

我正在制作一份报告,计算报价数量,使用 SALE_ID 唯一标识,其中包含从 2015 年 1 月 1 日开始到今天(询问时 2017 年 12 月 18 日)的不同产品的数据。我用一个叫做“不同”的简单度量来计算报价的数量:

Distinct := DISTINCTCOUNT(dOffers[Sale_ID])

这给了我令人满意的结果,例如,我在所考虑的时期内收到了正确的计数。我还在计算同比变化,使用以下度量定义上一年的报价:(dCalendar 包含 datekey 表)。

    PY Offers :=
SUMX (
    VALUES ( dCalender[YearMonthNumber] );
    IF (
        CALCULATE ( COUNTROWS ( VALUES ( dCalender[FullDates] ) ) )
            = CALCULATE ( VALUES ( dCalender[MonthDays] ) );
        CALCULATE (
            [Distinct];
            ALL ( dCalender );
            FILTER (
                ALL ( dCalender[YearMonthNumber] );
                dCalender[YearMonthNumber]
                    = EARLIER ( dCalender[YearMonthNumber] ) - 12
            )
        );
        CALCULATE (
            [Distinct];
            ALL ( dCalender );
            CALCULATETABLE ( VALUES ( dCalender[MonthDayNumber] ) );
            FILTER (
                ALL ( dCalender[YearMonthNumber] );
                dCalender[YearMonthNumber]
                    = EARLIER ( dCalender[YearMonthNumber] ) - 12
            )
        )
    )
)

我遇到的问题是,12 月(运行月份)的同比变化考虑了今年(2017 年)的年初至今销售额,并将其与全月销售额进行了比较过去几年(2016 年和 2015 年);这使得上个月的比较无法解释,因为我们将半个月的报价与整月的报价进行比较。

我想知道如何解决这个问题:即考虑到今天为止的全年销售额,并将其与去年和两年前完全相同的时期进行比较(2015 年:从 1 月 1 日开始并上升至 12 月 18 日;2016 年和 2017 年同上)。对于这个问题,SAMEPERIODLASTYEAR 调用可能看起来很简单,但我收到了一个连续的日期错误......

提前致谢!

【问题讨论】:

【参考方案1】:

根据您的描述,我了解到您正在尝试进行逐年对比。

在不依赖任何时间智能功能(如 SAMEPERIODLASTYEAR)的情况下,您可能想尝试此版本的度量:

PY Offers :=
SUMX(
    VALUES( dCalendar[YearMonthNumber] );

    CALCULATE(
    VAR currDate = MAX( dCalendar[FullDates] )
    VAR currYear = YEAR(currDate)
    VAR currMonth = MONTH(currDate)
    VAR currDay = DAY(currDate) 
    RETURN
        CALCULATE(
            [Distinct];
            ALL( dCalendar );
            YEAR(dCalendar[FullDates]) = currYear - 1;
            MONTH(dCalendar[FullDates]) = currMonth;
            DAY(dCalendar[FullDates]) <= currDay
        )
    )
)

【讨论】:

以上是关于显示前几年的年初至今销售额的主要内容,如果未能解决你的问题,请参考以下文章

SQL QUERY - 从头开始​​过滤日期

“双11”可以还给光棍们了

DB2 - 使用运行总计来计算本月至今的销售额

数据可视化之DAX篇(二十五)PowerBI常用的度量值:累计至今

员工成本降低33%,销售额提升23%,人脸识别成新零售行业利器

数据可视化之powerBI技巧学会这几个度量值,轻松获取前N名