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

DAX实现:基于年份条件跨表取值生成计算列

解决方案

以下是不同工具下的实现方法:

一、Excel 环境

直接在Table B的计算列中使用公式提取年份并匹配:

  • 用XLOOKUP(Excel 365及以上版本支持):
    =XLOOKUP(YEAR([@日期(Date)]), TableA[年份(Year)], TableA[目标值(Objective)], "")
  • 用VLOOKUP(兼容所有Excel版本):
    =VLOOKUP(YEAR([@日期(Date)]), TableA, 2, FALSE)

原理:YEAR([@日期(Date)])提取当前行日期的年份,再通过匹配函数找到Table A中对应年份的目标值。

二、Power BI(DAX语法)

在Table B中新建计算列,使用LOOKUPVALUE函数:
我的计算列 = LOOKUPVALUE(TableA[目标值(Objective)], TableA[年份(Year)], YEAR(TableB[日期(Date)]))

原理:因为Table A中每个年份唯一,LOOKUPVALUE会直接返回与Table B日期年份匹配的目标值。

三、数据库SQL实现

方式1:新增计算列(以SQL Server为例)

ALTER TABLE TableB
ADD 我的计算列 AS (
    SELECT Objective
    FROM TableA
    WHERE TableA.Year = YEAR(TableB.Date)
);

方式2:查询时生成对应列

SELECT 
    Date AS 日期(Date),
    Value AS 数值(Value),
    (SELECT Objective FROM TableA WHERE TableA.Year = YEAR(TableB.Date)) AS 我的计算列
FROM TableB;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:53:16