根据选择的切片器计算日期

时间:2018-11-16 14:20:11

标签: powerbi dax

我需要您在PowerBI上的帮助。我想根据用户选择的切片器来计算一些东西。我读到我最初想做的事情是不可能的(我想根据用户选择的切片器添加计算列),但是也许您会找到另一种成功的方法。让我解释一下。

我有2张桌子,没有关联。

表1将用于添加3个切片器:切片器Category,切片器Type,切片器Rp

Category Type Rp
c1  A   X
c1  B   X
c2  C   X
c2  D   Y

表2将包含我的数据(我的日期格式为dd / mm / yyyy)。

ID  TheoreticalDeadline RealDeadline    Done    Type _A Type _B Type _C Type _D
Abc 01/05/2018  02/05/2018  Y   5   0   0   3
Def 05/04/2018  05/04/2018  Y   0   0   2   0
Ghi 12/03/2018  18/03/2018  N   0   0   0   1

我已经采取了以下措施(效果很好):

Done_Where = if(Table2[Done]="Y"; 1; 0)

DoneGood_Where=if(Table2[Done]="Y";
               if(Table2[RealDeadline]<=Table2[TheoreticalDeadline]; 1; 0))

Result1 = SUM(Table2[DoneGood_Where])/sum(Table2[Done_Where])

在我的示例中,Result1 = 1 / 2是因为:

  • Def的{​​{1}}等于RealDeadline
  • TheoreticalDeadlineGhi,因此未考虑在内

我要创建一个Done = N,具体取决于用户的选择。

Result2

问题是要计算Result2 = SUM(Table2[DoneGood_WhereSelected])/sum(Table2[Done_Where]) 。我想要这样的东西:

DoneGood_WhereSelected

例如,如果用户单击切片器DoneGood_WhereSelected = if(Table2[Done]="Y"; if(Table2[RealDeadline]<=Table2[TheoreticalDeadline] + values from Table2 stored in the columns for which the user has clicked;1;0)) ,则:

  • 对于Resp=XAbc(因为TheoreticalDeadline + 5属于Type_A)= 06/05/2018
  • 对于XDef(因为TheoreticalDeadline + 2属于Type_C)= 2018年7月4日

然后X因为:

  • Result2 = 2/2Abc已存储Def <RealDeadline +个值

在我的示例中,用户仅单击一个切片器的一个复选框,但实际上,我想授权他在不同的切片器上进行多个选择(示例:用户单击TheoreticalDeadline和( Rp=XType=A)。在现实生活中,我有15个Type=B,5个Types和2个categories,因此并未针对计算每种可能的组合进行优化加载数据时。

那么,我可以使用哪种公式?

0 个答案:

没有答案