Power Bi,Dax-计算,过滤器,余额

时间:2020-10-01 11:13:47

标签: powerbi dax

请问我是DAX的新手,并且英语不是我的母语,所以请您帮我解决问题。

这是问题所在。

我有两个表:

start_balance

+------+---------------+
| Type | Start balance |
+------+---------------+
| A    |             0 |
| B    |            10 |
+------+---------------+

进出

+------+-------+------+----+-----+
| Year | Month | Type | In | Out |
+------+-------+------+----+-----+
| 2020 |     1 | A    | 20 |  20 |
| 2020 |     1 | A    |  0 |  10 |
| 2020 |     2 | B    | 20 |   0 |
| 2020 |     2 | B    | 20 |  10 |
+------+-------+------+----+-----+

我想得到如下结果:

未过滤:

+------+-------+------+---------+----+-----+------+
| Year | Month | Type | Balance | In | Out | Left |
+------+-------+------+---------+----+-----+------+
| 2020 |     1 | A    |       0 | 20 |  20 |    0 |
| 2020 |     1 | B    |      10 | 20 |  10 |   20 |
| 2020 |     2 | A    |       0 | 20 |  10 |   10 |
| 2020 |     2 | B    |      20 | 20 |  10 |   30 |
+------+-------+------+---------+----+-----+------+

已过滤(例如,2020/2年/月):

+------+-------+------+---------+----+-----+------+
| Year | Month | Type | Balance | In | Out | Left |
+------+-------+------+---------+----+-----+------+
| 2020 |     2 | A    |       0 | 20 |  10 |   10 |
| 2020 |     2 | B    |      20 | 20 |  10 |   30 |
+------+-------+------+---------+----+-----+------+

因此,在为年/月选择切片器时,应在选择的年/月之前计算余额,然后显示选定的年/月值。

编辑:更正了起始余额表。

1 个答案:

答案 0 :(得分:0)

样本数据正确吗?

A->初始余额为10,但在您未过滤的表格示例中为0。

这些表之间有任何关系吗? 期初余额是否始终适用于本年度?如果2021年出现在in_out表中怎么办?您怎么知道开始余额何时开始?

没有开始余额的示例

如果要显示给定过滤器带来的价值突破,则应使用语句ALL或REMOVEFILTERS函数(自2019年10月起在Analysis Services 2019和Power BI中)。

calculate(sum([in]) - sum([out]), all('in_out'[Year],'in_out'[Month]))

更多有用的信息: https://www.sqlbi.com/articles/managing-all-functions-in-dax-all-allselected-allnoblankrow-allexcept/