You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OTBI中实现列匹配并获取关联列值的公式咨询

OTBI报表实现跨行列关联匹配取值

问题场景

现有报表数据如下:

Column AColumn BColumn CColumn D
321123124
323124null
324125null

需求:用公式填充Column D——当当前行Column C的值与任意行的Column B值匹配时,获取该匹配行的Column A值。例如第1行Column C为124,对应Column B=124的行是第2行,因此Column D需填充323。

已知条件:所有列来自同一表格;Column A、Column B值均唯一;Column C值可与Column B重复(本次按唯一匹配处理)。

之前尝试的问题分析

  1. 第一种公式仅检查当前行内Column C与Column B是否相等,无法实现跨行列匹配,因此全部返回null:
CASE WHEN "Column C"="Column B" THEN "Column A" ELSE null END
  1. 第二种公式仅判断Column C是否存在于Column B的集合中,但返回的是当前行的Column A,而非匹配行的目标值:
CASE WHEN "Column C" IN( SELECT "Column B" FROM  "TABLE") THEN "COLUMN A" ELSE null END

解决方案

使用标量子查询直接获取匹配行的Column A值,公式如下:

CASE 
    WHEN "Column C" IS NOT NULL 
    THEN (SELECT "Column A" FROM "TABLE" t2 WHERE t2."Column B" = "TABLE"."Column C")
    ELSE NULL
END

原理说明

  • 因为Column B的值是唯一的,所以子查询只会返回单个匹配值,符合OTBI对单个值输出的要求。
  • 当当前行Column C为null时,直接返回null;否则通过子查询找到对应Column B匹配的行,取出其Column A值填充到Column D。

用这个公式处理示例数据后,第1行Column D会正确填充为323,其余行Column C为null,因此Column D保持null。

内容的提问来源于stack exchange,提问作者TashaK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:55:10