for-loop - 基于同一列的前一行填充列值的 DAX
问题描述
我正在尝试复制此 Excel 公式或 for 循环,它根据同一列的前一行值计算当前行值。
当 value = 1 时,Result = Rank * 1 Else,Result = Rank * previous Result
| Value | Rank | Result |
| ----- | ---- | ------ |
| 1 | 3 | 3 |
| 2 | 2 | 6 |
| 3 | 1 | 6 |
我已经尝试生成一个系列表来获取 Value 和 Rank 列,但我无法引用现有的 Result 列来更新它。有没有办法使用 DAX 来完成动态行数?
解决方案
这是可以做到的,但你需要让你的思维方式摆脱递归。请注意,我[Rank]
什[Value]
至等于 1,因为[Rank] * [Value]
在这种情况下等于[Rank]
(值等于 1,对吗?)。
Result =
IF (
Table[Value] = 1,
[Rank],
[Rank] *
PRODUCTX (
FILTER ( Table, Table[Value] < EARLIER ( Table[Value] ) ),
[Rank]
)
)
编辑:
前一个是不必要的复杂:
Result =
CALCULATE (
PRODUCT ( [Rank] ),
FILTER ( Table, [Value] <= EARLIER ( [Value] ) )
)
推荐阅读
- git - 让 Git 忽略我对某些文件的更改
- javascript - 如何在javascript中将数字作为字符串进行比较
- php - 在不使用 PHP 的情况下将 Android 应用程序与数据库连接
- azure-blob-storage - Azure Storage Javascript SDK V12 创建追加 blob 问题
- java - Java单元测试中此方法的检查异常无效
- python - Django:在相关模型上的 RunPython 迁移真的很慢
- flutter - 如何在table_calendar包flutter中获取当前显示的月份
- azure - 无法使用 PowerShell 将文件保存到 Blob 存储
- php - 使用explode() 和count() 注入代码的风险?
- python - 动态编写 django 过滤器