excel - 如何在power pivot excel中进行范围索引和匹配或vlookup?
问题描述
这些是 的各个数据点data model
:
这些是员工的月薪(使用数据模型数据中的数据透视表获得):
然后,每个单元格将用作查找值,该值将在表格中运行。
查找值将在下表中查找column A
,column B
如果匹配(在范围内),它将返回对应的值column C
。
我无法在 excel 的 Power Pivot 功能中找到任何功能,这些功能index and match
用于获取对报表对象(例如数据透视表)的聚合值的一些分析。vlookup
measures
我发现LOOKUPVALUE( <result_columnName>, <search_columnName>, <search_value>[, <search_columnName>, <search_value>]…)
这是一个DAX
函数,但是这里的问题是我正在进行范围查找,如下所示,我不知道您是否可以将数组作为函数的参数。
传统calculated fields
也不允许在公式中使用数组。
Lookupvalue()
仅适用于单列查找,因为如果找不到匹配项,它将返回一个空单元格,如下所示:
但是当它确实使用下表找到匹配项时:
它会工作得很好:
解决方案
首先,您需要为 Pay 创建一个度量:
Total Pay = SUM(Table1[Pay])
重要的是把它作为一种衡量标准,而不是仅仅将“支付”放入数据透视表(这被称为“隐含衡量标准”,被认为是一种不好的做法)。
然后,假设您的薪酬范围表被命名为“薪酬范围”。创建另一个度量:
Returned Value =
CALCULATE(
VALUES('Pay Ranges'[Value To Return]),
FILTER( 'Pay Ranges',
[Total Pay] >= 'Pay Ranges'[Lower Bound] &&
[Total Pay] < 'Pay Ranges'[Upper Bound]
))
确保所有这些公式都是度量,而不是计算列。此外,该公式依赖于范围的正确构造。如果它们重叠,您将收到错误消息。
推荐阅读
- java - 在 java selenium 中,我试图将退格字符 ('\uE003') 或 (\u0008) 发送到文本框以清除现有文本
- c++ - 如何在 Linux 上使用自定义 `iconv` 构建`boost`?
- c++ - 为 C++ 开发配置 Opensuse Leap 15.2
- laravel - Laravel 码头工人部署
- html - 当有圆角时,如何阻止主题背景颜色泄漏?
- python - 'urllib' 无限循环
- python - 带有验证令牌的 Python 发布请求
- python - 按数量分组获得前 3 名
- scala - Spark数据框替换scala中不同数据类型的空值
- python - 无法从 Docker 容器访问本地主机