如何在Power BI中用DAX在卡片展示指定日期的期末现金余额
解决Power BI中按日期切片器返回对应期末现金余额的DAX方案
嘿,这个需求其实很容易实现,只需要写一个简单的DAX度量值就能搞定。根据你的描述,你的数据表已经有现成的Saldo final de caixa(期末现金余额)非计算列,我们只需要让它跟着日期切片器的选择动态展示就行。
步骤1:创建核心DAX度量值
首先打开Power BI的建模选项卡,点击新建度量值,输入下面的代码(记得把'你的表名'替换成你实际的表名称):
Saldo Selecionado = CALCULATE( MAX('你的表名'[Saldo final de caixa]), '你的表名'[Data] = SELECTEDVALUE('你的表名'[Data]) )
代码解释:
SELECTEDVALUE('你的表名'[Data]):获取切片器中选中的单个日期值,如果用户选了多个日期,这个函数会返回空白(后面我会给多日期的处理方案)CALCULATE:用来筛选出选中日期对应的行,然后用MAX取出该行的期末余额——这里用MAX是因为如果某天有多条记录(比如同一日期有流入和流出的行),只要这些行的期末余额是一致的,MAX/MIN/SUM都能拿到正确的值;如果你的数据里每个日期只有一行记录,用哪个聚合函数都没问题。
步骤2:配置视觉对象
- 把新建的
Saldo Selecionado度量值拖到卡片视觉组件中 - 把
Data列拖到切片器视觉组件中,根据你的喜好设置切片器样式(比如单选按钮、下拉菜单都可以)
这样当你在切片器中选择任意日期时,卡片就会自动展示对应日期的期末现金余额了!
进阶:处理多日期选择的情况
如果你的切片器允许用户选择多个日期,想要展示最后一个选中日期的余额,可以用下面的度量值:
Saldo Ultima Data Selecionada = VAR UltimaData = LASTDATE(ALLSELECTED('你的表名'[Data])) RETURN CALCULATE( MAX('你的表名'[Saldo final de caixa]), '你的表名'[Data] = UltimaData )
这个版本会自动取用户选中的日期范围里的最后一天,返回对应的期末余额。
注意事项
- 确保你的
Data列是日期/时间数据类型,否则切片器可能无法正确筛选 - 提前检查数据:如果同一日期有多条记录,确认所有记录的
Saldo final de caixa值是相同的,避免出现错误的聚合结果
内容的提问来源于stack exchange,提问作者Daniel Bugim
相关产品推荐
相关产品推荐

