【问题标题】:How to calculate contract fraction of the year by percent?如何按百分比计算年度合同分数?
【发布时间】:2021-12-26 22:21:42
【问题描述】:

团队,

我正试图逐年获得财务数据。在提取财务数据之前,我需要逐年找出合同结束年度内有效合同的百分比。我将合同开始日期和结束日期作为源数据点,以提取当年合同的百分比。

我在 dax 中使用这个公式得到“语法不正确”:

Z - 2020 % = IF(OR('Sales Force_Contract'[StartDate]>=NEXTYEAR(),'Sales
 Force_Contract'[EndDate]<STARTOFYEAR()),MIN('Sales
 Force_Contract'[EndDate],NEXTYEAR())-MAX('Sales
 Force_Contract'[StartDate],STARTOFYEAR()))))

或者这个公式(测试2):

Z - 2020 %% = 
IF (
    NEXTYEAR('Sales Force_Contract'[StartDate]>="2021")) ||
    STARTOFYEAR('Sales Force_Contract'[EndDate]<="2020")),
    "0" ,min('Sales Force_Contract'[EndDate],nextyear()(-max('Sales Force_Contract'[StartDate],NEXTYEAR))))

我走对了吗?

【问题讨论】:

  • 在第一个公式中,你的大括号比要求的要多
  • Siva - 你能确认额外的括号在哪里吗?我删除了一些,现在得到“通过的论点太少了”?我复制了您的编辑,并收到了错误。想法?非常感谢您的帮助!
  • 我在 notepad++ 中复制了您的第一个公式,发现最后 2 个右大括号没有任何匹配的左大括号

标签: powerbi dax


【解决方案1】:

您使用 NEXTYEAR 和 STARTOFYEAR 的方式不对。在 Microsoft 文档中查找您正在使用的函数以查看示例。例如,NEXTYEAR( ) 需要一列日期并返回一个日期表。因为它返回一个表,所以它通常用作 CALCULATE 语句中的过滤器。下面是在 CALCULATE 语句中使用 NEXTYEAR 的示例:

=CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTYEAR('DateTime'[DateKey]))

如果您在编写公式时需要更多帮助,请粘贴 StartDate 和 EndDate 的示例数据表。例如,他们都总是填写吗? EndDate 有时是空的吗?还包括预期结果。如果合同跨越多年,应该如何计算?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多