查找

适用于:计算列计算表视觉计算

返回值,或使用绝对导航从视觉矩阵计算表达式。 可以为视觉矩阵上的任何轴提供筛选器。 从上下文推断出任何省略的筛选器。 如果无法确定单个值,则返回错误。

语法

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")

下面的屏幕截图显示了具有两个视觉计算的矩阵。

查找示例 1

示例 2

在此示例中, LookupExample2 视觉对象计算检索财政年度 FY2018 销售额的总和。 请注意,行中的季度筛选器将自未显式指定后使用,因此自 FY2018FY2019 Q1 组合到 FY2019 Q4 后,FY2019Q4 不会返回任何结果。 LookupExample3 显式指定季度,因此不考虑行上的当前季度。

LookupExample2 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018")
LookupExample3 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018", [Fiscal Quarter], "FY2018 Q1")

查找示例 2

示例 3

此示例演示了两者之间的差异 EXPLICITINFERRED 行为。 这两个视觉计算通过指定年份、季度和月份名称坐标来查找 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 坐标在功能上确定的关联列。 由于这些坐标唯一标识某个时间点,因此查找将返回矩阵中所有行的值。

查找示例 3,显示显式与推断行为