powerbi - 将未来日期的行的值更改为 0
问题描述
故事: 基本上,我试图展示本月至今与平行月的对比以及增量。
通常这只会用于当月。我能够添加未来的日期,但本月至今的值在未来的所有日子里都会重复
目标: 我希望该值为 0,而不是在整个未来日期重复最后一个值
本质上,我希望以下代码用于我的度量,但它不起作用:
_Join MTD =
IF(
TODAY()<Current Row date,
0,
TOTALMTD(SUM('Fact Table'[Join Count]),'Date Table'[Date])
)
解决方案
措施没有“当前行”的概念。度量仅受过滤器上下文影响。起初这可能会让人感到困惑,因为表格视觉对象或矩阵视觉对象具有行标签,但这些东西正在贡献过滤器上下文。唯一可以找到行上下文的地方是向数据表或迭代器函数中添加计算列时。
您可能可以执行如下所示的操作,但如果您需要更多帮助,则需要共享数据模型的样本(表格、列、每个示例中的一些示例行、表格之间的关系)以及视觉你正在建设。
_Join MTD =
IF(
TODAY () < MIN ( 'Date Table'[Date] ), // here we find the smallest day in filter
// context with MIN. If there is only one day
// in context, well then that is the min
0,
TOTALMTD ( SUM ( 'Fact Table'[Join Count] ), 'Date Table'[Date] )
)
当您想要一个“当前选定的”值时,DAX 中的一个常见习惯用法是取列的MAX
or MIN
,尽管还有更多选择性功能,例如SELECTEDVALUE
如果您想保证只有一个值在过滤器上下文中。
编辑:根据评论,目标是与昨天而不是今天进行比较。我们可以简单地采取上述措施并修改其谓词如下:
( TODAY () - 1 ) < MIN ( 'Date Table'[Date] )
算术运算符对 DAX 中的日期和时间类型执行合理的操作。有时也有用的是,该DATE
函数可以优雅地处理溢出和下溢,如下例所示:
DATE ( 2018, 1, 366 ) // => 2019-01-01
DATE ( 2018, 0, 1 ) // => 2017-12-01
DATE ( 2019, 2, 31 ) // => 2019-03-03
DATE ( 2019, 3, 0 ) // => 2019-02-28
因此,如果必须,您也可以滥用此功能进行日期转换,尽管它通常是最后的手段。
推荐阅读
- design-patterns - 如何从现有的写入数据库生成 CQRS 中的读取数据?
- javascript - 如何在 react-data-grid 中的行选择中禁用行的复选框
- android - Android Kotlin 应用程序未根据接收到的蓝牙数据显示或隐藏图像
- python - DataTable(JQuery):如何用浏览器语言切换语言?
- java - 玩家控制的 JPanel 对象卡在 JFrame 的某些角落
- python - 我怎么能把输入保存为一个整数然后通过一个函数运行它
- reactjs - 在 React Typescript 中配置更漂亮的空格
- python - python抛物线拍摄动画与matplotlib
- python - 如何在模板中获取 Flask 蓝图的名称?
- php - 在 php 类中动态创建“受保护的静态”变量