首页 文章

PowerBi将卡值更改为上个月当前月份值不可用时的值

提问于
浏览
3

我正在研究powerbi,使用2个月以上的数据,编写dax查询并尝试构建报告 .

我试图在卡片视觉效果中显示月度值 .

我可以使用下面的措施来做到这一点 .

样本数据: -
enter image description here

PlanPrevMon = CALCULATE([PlanSum],PREVIOUSMONTH('Month Year'[Date]))

CustomKPI = IF(ISBLANK([PlanSum]),"No Data Available ",[PlanSum])&" "&IF([PlanSum]=[PlanPrevMon],"",IF([PlanSum] > [PlanPrevMon],UNICHAR(8679),UNICHAR(8681))&IF([PlanSum]<=0,"",""))

但在这里我不希望用户从切片器中选择月份值 . 我想显示卡值,好像当前月份值不可用,然后它应该自动与上个月的值进行比较,如下图所示

enter image description here

例如,2017年4月的 Value 不可用;在这种情况下,我希望它与2017年3月的 Value 进行比较 . 如果2017年3月的 Value 也不可用,那么前一个月的 Value 等等


Edit

我尝试了@ user5226582建议但仍然得到错误的值,如下图所示 .

enter image description here

你可以看到我限制交叉检查 Value 是否以正确的方式得到 .

但不是 .

这是我用@ user5226582建议的措施 .

c = 
var temp = 'Revenue Report'[Date]
return CALCULATE(LASTNONBLANK('Revenue Report'[Planned Rev],
  'Revenue Report'[Planned Rev]),
  ALL('Revenue Report'),
  'Revenue Report'[Date]<=temp)`

如果我做错了什么,请你纠正我

2 回答

  • 1

    您可以使用LASTNONBLANK DAX功能 .

    示例数据:

    a b 
    1 1 
    2  
    3 2 
    4   
    5 3
    

    计算栏:

    c = 
    var temp = Table1[a]
    return CALCULATE(LASTNONBLANK(Table1[b],Table1[b]),ALL(Table1),Table1[a]<=temp)
    

    结果是:

    a b c
    1 1 1
    2   1
    3 2 2
    4   2
    5 3 3
    
  • 0

    这有帮助......?

    enter image description here

    为了使PlanPrevMon列显示如下,我首先创建了一个新的索引列:

    id = COUNTROWS(FILTER(Sheet1, EARLIER(Sheet1[Date],1)>Sheet1[Date]))
    

    然后我使用索引来帮助创建PlanPrevMon列 in two steps

    第1步:我创建了一个名为PlanPrevMon1的列 .

    PlanPrevMon1 = SUMX(FILTER(Sheet1,Sheet1[id]=EARLIER(Sheet1[id])-1),Sheet1[PlanSum])
    

    第2步:我创建了另一个名为PlanPrevMon的列 .

    PlanPrevMon = if(ISBLANK(Sheet1[PlanPrevMon1]),
    if(Sheet1[id]=1,0,CALCULATE(LASTNONBLANK(Sheet1[PlanPrevMon1],Sheet1[PlanPrevMon1]),ALL(Sheet1),ISBLANK(Sheet1[PlanSum]))),
    Sheet1[PlanPrevMon1])
    

    对于卡,我使用了这个措施:

    Card = CALCULATE(LASTNONBLANK(Sheet1[PlanPrevMon],1),FILTER(Sheet1,Sheet1[id]=max(Sheet1[id])))
    

    我希望这有帮助 .

相关问题