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

如何将Table1多列与Table2的ColA匹配,提取ColB值生成新列

实现方案

以下提供三种常用工具的实现方式,可根据自己的使用场景选择:

1. Excel/WPS 表格实现

适用无代码基础的用户,直接用公式实现:

  • 前提假设:Table1表头在第1行,数据从第2行开始,Col1Col6对应AF列;Table2放在Sheet2的A、B列,数据范围为A2:B5。
  • 在Table1的G列(OUTPUT列)第一个数据单元格G2输入以下公式,下拉填充即可:
=XLOOKUP(LOOKUP(1,0/(A2:F2<>"")/(A2:F2<>"-"),A2:F2),Sheet2!A$2:A$5,Sheet2!B$2:B$5,"无匹配")
  • 旧版Excel无XLOOKUP可替换为INDEX+MATCH组合:
=INDEX(Sheet2!B$2:B$5,MATCH(LOOKUP(1,0/(A2:F2<>"")/(A2:F2<>"-"),A2:F2),Sheet2!A$2:A$5,0))

2. Python Pandas 实现

适用数据量较大、需要批量处理的场景:

import pandas as pd
import numpy as np

# 读入数据,实际使用时替换为pd.read_excel/ pd.read_csv读自己的文件
table1 = pd.DataFrame({
    'Col1': ['-', '-', '-', 'P1'],
    'Col2': ['P2', '-', '-', '-'],
    'Col3': ['-', 'P3', '-', '-'],
    'Col4': ['-', '-', 'P4', '-'],
    'Col5': ['-', '-', '-', '-'],
    'Col6': ['-', '-', '', '-']
})
table2 = pd.DataFrame({
    'ColA': ['P1', 'P2', 'P3', 'P4'],
    'ColB': ['MSH3', 'MSH5', 'L6', 'V5']
})

# 构造匹配字典
match_map = table2.set_index('ColA')['ColB'].to_dict()

# 提取每行有效匹配值后生成结果列
def get_match_val(row):
    for v in row:
        if v not in ('-', '', np.nan):
            return match_map.get(v)
    return None

table1['OUTPUT'] = table1.apply(get_match_val, axis=1)

# 导出结果到Excel
table1.to_excel('匹配结果.xlsx', index=False)

3. SQL 实现

适用数据存储在关系型数据库的场景,以MySQL为例:

SELECT 
    t1.Col1, t1.Col2, t1.Col3, t1.Col4, t1.Col5, t1.Col6,
    t2.ColB AS OUTPUT
FROM Table1 t1
LEFT JOIN Table2 t2 ON t2.ColA = CASE
    WHEN t1.Col1 NOT IN ('', '-') THEN t1.Col1
    WHEN t1.Col2 NOT IN ('', '-') THEN t1.Col2
    WHEN t1.Col3 NOT IN ('', '-') THEN t1.Col3
    WHEN t1.Col4 NOT IN ('', '-') THEN t1.Col4
    WHEN t1.Col5 NOT IN ('', '-') THEN t1.Col5
    WHEN t1.Col6 NOT IN ('', '-') THEN t1.Col6
END

PostgreSQL可简化写法:

SELECT 
    t1.*, t2.ColB AS OUTPUT
FROM Table1 t1
LEFT JOIN Table2 t2 ON t2.ColA = COALESCE(
    NULLIF(t1.Col1, '-'), NULLIF(t1.Col2, '-'), NULLIF(t1.Col3, '-'),
    NULLIF(t1.Col4, '-'), NULLIF(t1.Col5, '-'), NULLIF(t1.Col6, '-')
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:54:08