【问题标题】:DAX - A couple of measures depending on each otherDAX - 几个相互依赖的措施
【发布时间】:2022-06-22 16:43:19
【问题描述】:

从包含一系列简单的年度结果(损益)的 POWER BI 表中,我试图计算年度应税收入。为此,

  • 以前一年或几年的亏损可以从当期利润中扣除
  • 如果以前的亏损金额超过当前的利润金额,超出的部分可以用于盈利
  • 但是,利润超过亏损的部分不能用于进一步的亏损

因此,亏损年度的应纳税所得额始终 =0,而盈利年度则始终 >=0。

我追求的结果可能是这样的:

Taxable income calculation

这里的问题是“以前的损失补偿”取决于“以前的损失余额”,反之亦然,产生循环依赖。我已尝试使用度量值和计算列,但均无济于事。

任何建议将不胜感激。提前致谢。

【问题讨论】:

    标签: dax circular-dependency tax


    【解决方案1】:

    对于它的价值,我想我在这里找到了某种解决方案。数据在[Tabla5]中,我定义了

    Year's result = SUM(Tabla5[RCAT])
    

    首先,我认为每次损失后立即有积极的结果,必须有补偿:

    Last year's loss compensation = 
    

    VAR _Comp= SUMX(表 5, VAR _CurrentResult= [年度结果] VAR _LastResult=MAXX(FILTER(ALL(Tabla5),Tabla5[AÑO]=EARLIER(Tabla5[AÑO])-1),[年份结果]) 返回 如果( AND(_LastResult0), MIN(_CurrentResult,ABS(_LastResult)),0 ) )

    返回 _Comp

    其次,我们需要通过以下方式找出第一次补偿后可用的税收信用额度:

    Cumm First compensation = 
    

    CALCULATE([去年的损失补偿], FILTER(ALL(Tabla5),Tabla5[AÑO]

    Prior losses = 
    

    SUMX(FILTER(ALL(Tabla5),Tabla5[AÑO]

    Tax credit available = [Prior losses]-[Cumm First compensation]
    

    第三步是将仍然可用的税收抵免与可用于补偿的利润金额进行比较:

    Profit available for compensation = 
    

    如果( AND([年份结果]>0, [可用税收抵免]>0), [年度结果]-[去年损失补偿],0 )

    和 卡姆秒补偿 = MIN(SUMX(FILTER(ALL(Tabla5),Tabla5[AÑO]0, [可用税收抵免]>0),[可用利润补偿])),[可获得税收抵免])

    最后一项措施的年份差将带来当年第二次补偿的价值:

    Prior years losses compensation = 
    

    [卡姆秒补偿]- MAXX(FILTER(ALL(Tabla5), Tabla5[AÑO]=MAX(Tabla5[AÑO])-1),[卡姆秒补偿])

    最后,我们只需将补偿金额相加,然后从当年的利润中减去该值,即可得出应纳税所得额:

    Total compensation = [Last year's loss compensation]+[Prior years losses compensation]
    

    Taxable income = 
    

    IF([年度成绩]>0, [年度成绩]-[总薪酬],0)

    结果会是这样的

    Outcome

    我一直在尝试构建一个仅测量一次的解决方案,但遇到了一些行/过滤器上下文问题,这对我来说太复杂了。也许有人可以解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多