返回值,或使用绝对导航从视觉矩阵计算表达式。 可以为视觉矩阵上的任何轴提供筛选器。 从上下文推断出任何省略的筛选器。 如果无法确定单个值,则返回错误。
语法
LOOKUP(<expression>, <colref>, <expression>[, <colref>, <expression>]...[, <AssociatedColumnsBehavior>])
参数
| 术语 | 定义 |
|---|---|
expression |
要计算的表达式。 |
colref |
(可选)要筛选的列。 |
expression |
(可选)要筛选的值。 |
AssociatedColumnsBehavior |
(可选)指定如何处理关联的列。 允许的值为 EXPLICIT (默认值) 或 INFERRED。 |
返回值
应用筛选器后 表达式 的值。
如果没有匹配项,则返回错误。
如果多个行与筛选器匹配,则返回错误。
注解
AssociatedColumnsBehavior 参数控制 LOOKUP 如何处理按提供的坐标在功能上确定的轴列:
EXPLICIT (默认值):如果省略或设置为
EXPLICIT此参数,LOOKUP 将仅使用显式提供的筛选器。 未指定的轴列是从当前上下文推断的。 这是原始 LOOKUP 行为。INFERRED:设置为“设置为”时
INFERRED,引擎确定哪些轴列的功能由提供的坐标确定,并在评估查找之前自动填充它们。 例如,如果按 Year、Quarter 和 Month 进行筛选,则引擎可以推断与这些坐标对应的日期或周等相关列。
如果 INFERRED 指定,并且为已推断的列提供值,则会根据推断的值验证所提供的值。 如果冲突,调用将BLANK返回,类似于提供冲突坐标时返回BLANK的方式EXPLICIT。
示例 1
在此示例中,LOOKUP 检索自行车类别的销售总和。 第一个参数可以是列或标量表达式。
Lookup Example 1 = LOOKUP(SUM([Sales Amount]), [Category], "Bikes")
Lookup Example 2 = LOOKUP([Sales Amount], [Category], "Bikes")
下面的屏幕截图显示了具有两个视觉计算的矩阵。
示例 2
在此示例中, LookupExample2 视觉对象计算检索财政年度 FY2018 销售额的总和。 请注意,行中的季度筛选器将自未显式指定后使用,因此自 FY2018 和 FY2019 Q1 组合到 FY2019 Q4 后,FY2019Q4 不会返回任何结果。 LookupExample3 显式指定季度,因此不考虑行上的当前季度。
LookupExample2 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018")
LookupExample3 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018", [Fiscal Quarter], "FY2018 Q1")
示例 3
此示例演示了两者之间的差异 EXPLICIT 和 INFERRED 行为。 这两个视觉计算通过指定年份、季度和月份名称坐标来查找 2025 年 1 月销售额的总和。
Jan 2025 Sales (Explicit) = LOOKUP([Sum of Sales], [Year], 2025, [Quarter], "Q1", [Month Name], "January", EXPLICIT)
Jan 2025 Sales (Inferred) = LOOKUP([Sum of Sales], [Year], 2025, [Quarter], "Q1", [Month Name], "January", INFERRED)
使用 EXPLICIT时,查找仅返回当前上下文与指定坐标匹配的行的值(2025 年 1 月行)。 在所有其他行上,查找将 BLANK 返回,因为当前行的上下文与指定的筛选器冲突。
使用 INFERRED时,引擎会自动标识按 Year、Quarter 和 Month Name 坐标在功能上确定的关联列。 由于这些坐标唯一标识某个时间点,因此查找将返回矩阵中所有行的值。