excel - 在度量中使用 LOOKUPVALUE 函数的替代方法?
问题描述
我有一个方法可以成功计算每个月的计划收入累计金额:
Revised Revenue :=
CALCULATE (
SUM ( Rev_Revised[Revenue] ),
Data_Types[Data Types] = "Projected"
)
Cumulative Revised Revenue :=
IF (
MIN ( MonthDate[MonthDate] )
<= CALCULATE ( MAX ( Rev_Revised[MonthDate] ), ALL ( Rev_Revised ) ),
CALCULATE (
[Revised Revenue],
FILTER (
ALL ( MonthDate[MonthDate] ),
MonthDate[MonthDate] <= MAX ( MonthDate[MonthDate] )
)
)
)
当在数据透视表中与 Running Total In... 结合使用时,它看起来像这样:
我现在需要做的是创建一个新的度量,将收入捕获百分比乘以每个月的累积金额(这就像对实际收集收入的滞后的预测),这些百分比可以在相关表中找到:
在度量中使用LOOKUPVALUE
显然会引发错误,因为它不会产生一个值。我可以轻松地在执行此计算的数据透视表下创建自己的附加行,但我真的希望它在数据模型中执行。有任何想法吗?
编辑:我现在能找到的最接近的解决方案是我的支出计划数据集中的一个计算列,用于查找每一行的百分比:
Monthly Rev Capture :=
LOOKUPVALUE (
Rev_Capture[Revenue Capture],
Rev_Capture[MonthDate], Rev_Revised[MonthDate]
)
然后对此进行衡量:
Rev Capture Amount :=
[Cumulative Revised Revenue] * AVERAGE ( Rev_Revised[Monthly Rev Capture] )
但这在数据透视表中计算不正确。这是它的样子,在表格下方显示了正确的手动计算以供验证:
我需要的是类似于其中之一的措施,但当然这些都失败了:
Rev Capture Total:=
[Cumulative Revised Revenue]*RELATED(Rev_Capture[Revenue Capture])
Rev Capture Total v2:=
[Cumulative Revised Revenue]*LOOKUPVALUE(Rev_Capture[Revenue Capture],
MonthDate[MonthDate],
Rev_Capture[MonthDate])
解决方案
您的 v2 度量看起来很接近,但由于它不是计算列,因此您不能只引用列而不使用聚合函数,例如AVERAGE
or MAX
,VALUES
因为查找函数需要单个值来查找。
试试这样:
Rev Capture Total v2 :=
[Cumulative Revised Revenue]
* LOOKUPVALUE (
Rev_Capture[Monthly Rev Capture],
Rev_Capture[MonthDate], SELECTEDVALUE ( MonthDate[MonthDate] )
)
如果您的过滤器上下文只有一个月,SELECTEDVALUE
将返回与其他聚合器相同的/// SUM
,MAX
但如果过滤AVERAGE
器VALUES
上下文中有多个值,则返回空白,因为不只有一个选项。
推荐阅读
- c - 如OS-ThreeEasySteps一书的介绍章节所示,如何在windows上同时运行gcc 4.8.3版的C程序?
- spring - Spring Boot 休息最佳实践
- python-3.x - 如何访问 GStreamer webrtcbin 中作为 gobject.GParamSpec 提供的值?
- python - 无法在 Tkinter 中使用两个不同的按钮在我从 Python 中的 Selenium 打开的同一个 chrome 窗口上执行任务
- google-bigquery - 如何从谷歌 bigquery 中的地理点创建多边形
- laravel - 尝试使用 axios 补丁方法更新购物车项目数量:错误:请求失败,状态码 405
- android - Moshi 转换器阵列
- dc.js - 为每个类别创建直方图
- windows - 如何使用 curl 检查站点是否存在并在 Windows 中不存在时运行脚本
- c# - 通过脚本传递变量的问题