Powerbi 功率双数据比较

Powerbi 功率双数据比较,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我正在制作一份报告来控制一些材料的库存。我有一个包含大量移动数据的列表(330万行)。。。每个移动都有自己的中心(移动发生的位置)、物料代码、日期(移动发生的时间)、移动类型(入口、消耗、转移…)、数量、价值等。我需要检查每个物料和中心上一次消耗移动发生的时间,与日历表中的最大日期进行比较,计算两组之间的天数,并分组(0-30天、31-90天、91-180天等) 是否有一种方法可以仅使用度量来实现这一点?我使用表来完成,但是我有一个静态的结果。我需要以动态的方式进行此操作(过滤我的日历表将调整结

我正在制作一份报告来控制一些材料的库存。我有一个包含大量移动数据的列表(330万行)。。。每个移动都有自己的中心(移动发生的位置)、物料代码、日期(移动发生的时间)、移动类型(入口、消耗、转移…)、数量、价值等。我需要检查每个物料和中心上一次消耗移动发生的时间,与日历表中的最大日期进行比较,计算两组之间的天数,并分组(0-30天、31-90天、91-180天等)

是否有一种方法可以仅使用度量来实现这一点?我使用表来完成,但是我有一个静态的结果。我需要以动态的方式进行此操作(过滤我的日历表将调整结果)

我的事实表的结构如下图所示

对于通过[TMv]=201或261过滤的每个[Cen.]和[Material],返回公式
Today()-Max([Dt.lçto])

如果有人能帮忙,我将不胜感激


非常感谢

经过多次尝试并失败后,我找到了一种解决这个问题的方法,使用以下代码。根据应用的过滤器,下面的代码用于计算上次移动日期

Último Mov (data) = 

CALCULATE(
    MAXX(
        ADDCOLUMNS(
            SUMMARIZE(
                fSAP_MB51;
                fSAP_MB51[Material]
            );
            "Último Movimento";
                VAR MAXDATE = 
                    MAXX(
                        FILTER(
                            'fSAP_MB51';
                            'fSAP_MB51'[TMv] IN {"201";"221";"241";"261";"281";"543"} &&
                            'fSAP_MB51'[Material] = EARLIER('fSAP_MB51'[Material])
                            );
                            'fSAP_MB51'[Dt.lçto.]
                    )
                VAR MINDATE = 
                    MINX(
                        FILTER(
                            'fSAP_MB51';
                            'fSAP_MB51'[TMv] IN {"101";"102";"861";"862"} && //
                            'fSAP_MB51'[Material] = EARLIER('fSAP_MB51'[Material])
                        );
                        'fSAP_MB51'[Dt.lçto.]
                    )

                RETURN
                CALCULATE(
                    MAX('dCalendar'[Date]) - 
                    SWITCH(
                        TRUE();
                        AND(ISBLANK(MAXDATE);ISBLANK(MINDATE)) ; DATE(2018;03;31);
                        ISBLANK(MAXDATE) ; MINDATE;
                        ISBLANK(MINDATE) ; MAXDATE;
                        MAXDATE
                    )
                );
            "Qtde Estoque";[Qtde Acumulada ALL]
        );
        TODAY() - [Último Movimento]
    );
    FILTER(
        ALLSELECTED('dCalendar'[Date]);
        ISONORAFTER('dCalendar'[Date]; MAX('dCalendar'[Date]); DESC)
    );
    dCalendar[FutureDate] = "Passado"
)

你能用表格提供一些样本数据和你的工作成果吗?嗨@AlexisOlson,tks,谢谢你的回答。我在问题中做了更好的描述。