Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以YTD方式计算分类字段-PowerBI DAX_Powerbi_Dax - Fatal编程技术网

以YTD方式计算分类字段-PowerBI DAX

以YTD方式计算分类字段-PowerBI DAX,powerbi,dax,Powerbi,Dax,我遇到了一个问题,我想根据所选切片器,根据截止日期date列显示分类字段的计数: 输入: 考虑两个表: 第一个:名为表的表 ID Rule Start Date End Date Year Month Uniq 1 A 01-01-2020 01-01-2020 FY20 1 FY20_1 2 B 01-01-2020 01-02-2020 FY20 1 FY20_1 2 C 01-01-20

我遇到了一个问题,我想根据所选切片器,根据截止日期
date
列显示分类字段的计数:

输入:

考虑两个表:

第一个:名为
表的表

   ID Rule  Start Date    End Date  Year  Month    Uniq
    1    A  01-01-2020  01-01-2020  FY20      1  FY20_1
    2    B  01-01-2020  01-02-2020  FY20      1  FY20_1
    2    C  01-01-2020  01-03-2020  FY20      1  FY20_1
    1    A  01-01-2020  01-02-2020  FY20      1  FY20_1
    2    B  01-02-2020  01-02-2020  FY20      2  FY20_2
    3    C  01-02-2020  01-04-2020  FY20      2  FY20_2
    4    D  01-02-2020  01-03-2020  FY20      2  FY20_2
    5    E  01-02-2020  01-03-2020  FY20      2  FY20_2
    2    B  01-03-2020  01-03-2020  FY20      3  FY20_3
    3    C  01-03-2020  01-03-2020  FY20      3  FY20_3
    4    D  01-03-2020  01-04-2020  FY20      3  FY20_3
    5    E  01-03-2020  01-04-2020  FY20      3  FY20_3
    6    E  01-03-2020         NaN  FY20      3  FY20_3
    7    E  01-03-2020         NaN  FY20      3  FY20_3
Second:名为
Calendar\u Table的表(
Uniq
列是公共键)

问题陈述:

我有两个切片器
Year
Month
来自
Calendar\u表
。根据所选的月份和年份组合,我想显示
表中
ID
列的计数明细。但是,不应过滤该特定月份的计数,而应过滤到该月份(如年初至今)。还有一个条件,我需要考虑一下。

对于所选的特定月份,根据
开始日期
列获取该月份之前的所有行,并过滤
结束日期
仅下个月以后的行(过滤掉该月份之前的所有行),这将给出2月份的4行

示例:如果选择了第2个月的切片器,我将从
开始日期(1月和2月)中选择前8行,然后从
结束日期
中筛选2月之后的任何日期(匹配、4月等),然后我将根据
ID
列的计数显示
规则
的分布

当前尝试: 根据所选月份获取开始日期的度量:

StartDt = VAR test_var = MAX('Table'[Uniq]) 
return CALCULATE(FIRSTNONBLANK('Table'[Start Date],1),FILTER(Calendar_Table,Calendar_Table[Uniq]=test_var))
然后应用上述条件:

YTD_RULE_Breakup = var stdt = [StartDt] 
return CALCULATE(COUNT('Table'[ID]),FILTER(ALL('Table'),'Table'[Start Date]<=stdt && 'Table'[End Date]>stdt))
YTD\u规则\u分解=var stdt=[StartDt]
返回计算(计数('Table'[ID])、过滤器(全部('Table')、'Table'[Start Date]stdt))
电流输出:

当我在一张卡中提取该值时,我得到了正确的值(4),但是我无法得到基于此度量的规则分布:

预期产出

我的预期产出是:


如果有人能帮我做这件事,我将不胜感激。

关于YTD_RULE_分解度量,请尝试用以下内容替换过滤器(全部(‘表’):


如果我们只对总计感兴趣,则过滤器(全部)可以成功运行。我们可以将ALLEXCEPT与[Rule]-列一起使用,以确保度量值也会计算每个规则列的度量值。

Nice.。它工作正常,无法按正确方向思考和过滤。谢谢:)将测试一些样本并在一段时间内接受,如果你能为将来的读者添加一些解释,那就太好了。我很高兴这对你有所帮助!当度量开始增大时,很容易与过滤器混淆。我试着给我的答案加上一点解释。
YTD_RULE_Breakup = var stdt = [StartDt] 
return CALCULATE(COUNT('Table'[ID]),FILTER(ALL('Table'),'Table'[Start Date]<=stdt && 'Table'[End Date]>stdt))
FILTER(ALLEXCEPT('Table','Table'[Rule])