PowerBI 和 MAX 用于乘法值?
PowerBI and MAX for Multiplying Values?
log1
date cost
15-May 10
18-May 15
17-May 12
log2
date cost
15-May 1
16-May 3
18-May 2
我想做的是创建一个“当前成本”度量,方法是根据 log1 中的日期(5 月 18 日和 15 美元)查找最新成本值,然后将其乘以 log2 中的最新成本(5 月 18 日)和 2).然后我想将该度量值放在一个带有日期的简单条形图中,在此示例中为 5 月 18 日和 30 美元。
我玩过 MAX,但似乎无法解决这个问题。帮忙?
谢谢!
我认为这类似于 Multiply columns based on the Year and Month 但不确定。
如果您 table 真的那么简单,您可以使用名为 lookupvalue 的 dax 函数
它类似于excel中的vlookup,您可以根据日期
查找费用
所以在这个例子中它会被添加到 log2 table
Amount = 'log2'[cost] * LOOKUPVALUE('log1'[cost],'log1'[date],'log2'[date])
https://docs.microsoft.com/en-us/dax/lookupvalue-function-dax
如果日期的列之间存在关系,您可以使用 Related() 函数
你需要什么样的输出?
Measure =
var maxLog1 = CALCULATE( MAX(Log1[date]), REMOVEFILTERS(Log1[date]))
var maxlog2 = CALCULATE( MAX(log2[date]), REMOVEFILTERS(Log2[date]))
var result = CALCULATE( MAX(Log1[cost]), Log1[date] = maxLog1) * CALCULATE(MAX(log2[cost]), log2[date] = maxlog2)
return
result
这是一个替代解决方案,假设如下:
- 每个日志中每天有唯一的
cost
table
- 没有空的缺失日期,尽管它不会破坏计算。
Calendar
Table 存储日期。
数据模型
日历Table:计算
Calendar =
CALENDAR (
MIN ( MIN ( log1[date] ), MIN ( log2[date] ) ),
MAX ( MAX ( log1[date] ), MAX ( log2[date] ) )
)
计算:测量
此计算取决于使用 Calendar[Date]
作为视觉效果的中心 Date
值。
Cost = sum(log1[cost])*sum(log2[cost])
输出 1
或者,如果您想要创建独立于将日期作为视觉对象一部分的计算并检索正确的总数。
CostSumx =
sumx('Calendar',RELATED('log1'[cost])*RELATED(log2[cost]))
这意味着您需要将您的关系更改为 1:1 和 BOTH
输出 2
Tables
log1
date
cost
15 May 2021
20
16 May 2021
30
17 May 2021
40
log2
date
cost
15 May 2021
1
16 May 2021
2
17 May 2021
3
log1
date cost
15-May 10
18-May 15
17-May 12
log2
date cost
15-May 1
16-May 3
18-May 2
我想做的是创建一个“当前成本”度量,方法是根据 log1 中的日期(5 月 18 日和 15 美元)查找最新成本值,然后将其乘以 log2 中的最新成本(5 月 18 日)和 2).然后我想将该度量值放在一个带有日期的简单条形图中,在此示例中为 5 月 18 日和 30 美元。
我玩过 MAX,但似乎无法解决这个问题。帮忙?
谢谢!
我认为这类似于 Multiply columns based on the Year and Month 但不确定。
如果您 table 真的那么简单,您可以使用名为 lookupvalue 的 dax 函数 它类似于excel中的vlookup,您可以根据日期
查找费用所以在这个例子中它会被添加到 log2 table
Amount = 'log2'[cost] * LOOKUPVALUE('log1'[cost],'log1'[date],'log2'[date])
https://docs.microsoft.com/en-us/dax/lookupvalue-function-dax
如果日期的列之间存在关系,您可以使用 Related() 函数
你需要什么样的输出?
Measure =
var maxLog1 = CALCULATE( MAX(Log1[date]), REMOVEFILTERS(Log1[date]))
var maxlog2 = CALCULATE( MAX(log2[date]), REMOVEFILTERS(Log2[date]))
var result = CALCULATE( MAX(Log1[cost]), Log1[date] = maxLog1) * CALCULATE(MAX(log2[cost]), log2[date] = maxlog2)
return
result
这是一个替代解决方案,假设如下:
- 每个日志中每天有唯一的
cost
table - 没有空的缺失日期,尽管它不会破坏计算。
Calendar
Table 存储日期。
数据模型
日历Table:计算
Calendar =
CALENDAR (
MIN ( MIN ( log1[date] ), MIN ( log2[date] ) ),
MAX ( MAX ( log1[date] ), MAX ( log2[date] ) )
)
计算:测量
此计算取决于使用 Calendar[Date]
作为视觉效果的中心 Date
值。
Cost = sum(log1[cost])*sum(log2[cost])
输出 1
或者,如果您想要创建独立于将日期作为视觉对象一部分的计算并检索正确的总数。
CostSumx =
sumx('Calendar',RELATED('log1'[cost])*RELATED(log2[cost]))
这意味着您需要将您的关系更改为 1:1 和 BOTH
输出 2
Tables
log1
date | cost |
---|---|
15 May 2021 | 20 |
16 May 2021 | 30 |
17 May 2021 | 40 |
log2
date | cost |
---|---|
15 May 2021 | 1 |
16 May 2021 | 2 |
17 May 2021 | 3 |