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
Powerbi 如何在考虑两列的情况下在汇总表中查找逐日变化_Powerbi_Dax - Fatal编程技术网

Powerbi 如何在考虑两列的情况下在汇总表中查找逐日变化

Powerbi 如何在考虑两列的情况下在汇总表中查找逐日变化,powerbi,dax,Powerbi,Dax,我有一个按日期和建筑名称汇总的汇总表。我正试图找出如何添加一个增加/减少列,如下表所示。我想说明每栋建筑的“未签名总数”是否每天都在增加 我无法得到一个公式,该公式将计算一栋建筑的前几天总计-当前天数#的未签名总计。试图为我的报告找到第四栏 如果我只是显示每天的变化,而不是试图将建筑名称添加到表中,我可以让它工作 Unsigned Prev Day = VAR CurrentDay = SELECTEDVALUE(SummarizeTable[Day Number]) VAR Current

我有一个按日期和建筑名称汇总的汇总表。我正试图找出如何添加一个增加/减少列,如下表所示。我想说明每栋建筑的“未签名总数”是否每天都在增加

我无法得到一个公式,该公式将计算一栋建筑的前几天总计-当前天数#的未签名总计。试图为我的报告找到第四栏

如果我只是显示每天的变化,而不是试图将建筑名称添加到表中,我可以让它工作

Unsigned Prev Day = 
VAR CurrentDay = SELECTEDVALUE(SummarizeTable[Day Number]) 
VAR CurrentMonth = SELECTEDVALUE(SummarizeTable[Month Number]) 
VAR MaxDayNumber = CALCULATE(MAXA(SummarizeTable[Day Number])) 

Return SUMX(
    FILTER(ALL(SummarizeTable),
         IF( CurrentDay = 1, 
          SummarizeTable[Day Number] = MaxDayNumber && SummarizeTable[Month Number]= CurrentMonth-1,
          SummarizeTable[Day Number] = CurrentDay -1)),
            [Total Unsigned])
编辑: 谢谢你的帮助,你肯定让我走上了正轨。这就是我最后使用的公式。再次感谢您的帮助

Unsigned Prev Day =
VAR MostRecentDate = MAX ( 'SummarizeTable'[Date] )
RETURN
  CALCULATE (
    [Total Unsigned],
    ALL ( 'SummarizeTable'[Date], 'SummarizeTable'[Day Number], 'SummarizeTable'[Month Number] ),
    'SummarizeTable'[Date] = MostRecentDate - 1
  )
这假设您拥有或可以创建一列“SummaryTable”[Date]。如果你已经有了月和日,这应该是微不足道的。此解决方案利用了DAX在日期上具有良好性能的算法这一事实

此外,您应该考虑构建一个日期维度,而不是在一个表中完成所有这一切。它最终会让你的生活轻松很多。有很多很好的约会维度,但我偏爱

编辑:根据评论中的讨论,目标是将其作为计算列添加到数据表中。上述定义旨在用作衡量标准

# Increase/ Decrease =
CurrentRowDate = 'SummarizeTable'[Date]
RETURN
CALCULATE (
  SUM ( 'SummarizeTable'[Total Unsigned] ),
  ALLEXCEPT ( 'SummarizeTable'[Building] ),
  'SummarizeTable'[Date] = CurrentRowDate - 1
)

这将在“SummaryTable”中添加一列,该列的[Building]值与当前行的[Building]值相同,且日期比当前行的日期短1。

感谢您抽出时间回复。我遇到的问题是,一旦我将“建筑名称”添加到汇总表中,表中现在有多个日期实例。是否可以通过添加日期维度来解决此问题?我的最终目标是在瀑布可视化中显示每天的变化,可以通过建筑过滤。谢谢你分享你的日期维度,我刚刚下载了它,我将把它合并到我的报告中。如果这是补救措施,很抱歉-我才刚开始。请提供数据表的示例(列出表中的列,以及每个列中的两个示例值),好吗?还有任何显示“当我添加‘建筑物名称’时,有多个日期实例”的屏幕抓图吗?在同一日期存在多个建筑是可以的,数据表将反映这一点。您是否希望不在同一日期拥有多个建筑物?所以我很难得到第四个专栏。我确实希望在同一天会有多座建筑。但我只想显示每栋建筑的国防部增加/减少@如果有很多日期,那么国防部增加/减少的值就很多。如果只想显示一个日期,可以筛选到该日期。现在还不清楚你到底想做什么。您是否正在Power BI中构建可视化?是否在Excel中构建数据透视表?您正在编写DAX查询吗?您正在导入数据吗?同样,我会要求您提供一个数据表的示例,所以我尝试创建一个用于瀑布可视化的表。我已经上传了3个文件,向你展示我现在的工作。1) 当国防部的计算工作正常时,没有“构建”的汇总表。2) 与国防部计算不正确的“建筑物”相加3)我想要的最终结果-一个瀑布表,我可以通过“建筑物”进行过滤,以显示国防部的变化@格雷格布