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

如何在不拆分拼接列的前提下,基于列表检索匹配值?

可以实现,以下是几种主流工具的实现方案

Excel 场景

不用拆分列,直接用数组公式就能搞定。假设你的数据在A列(ID)、B列(Aleatory Stuff),先把list_0里的内容放到一个单元格区域(比如D1:D5),然后通过名称管理器把这个区域命名为list_0。之后在C2单元格输入公式:
=TEXTJOIN(", ", TRUE, IF(ISNUMBER(SEARCH(list_0, B2)), list_0, ""))

  • 如果你用的是Excel 365/2021版本,直接回车就行;旧版本需要按Ctrl+Shift+Enter作为数组公式执行,然后下拉填充到所有行。

Python Pandas 场景

用apply遍历每行,在不拆分原列的前提下匹配元素,代码示例如下:

import pandas as pd

list_0 = ["Ball", "cellphone", "breakfast", "rice", "test"]
# 读取你的表格,根据实际格式调整(比如csv)
df = pd.read_excel("your_file.xlsx")

def get_matches(row):
    # 按原列的分隔符拆分(如果是纯逗号就改成",")
    raw_items = row["Aleatory Stuff"].split(", ")
    # 筛选出在list_0里的元素
    matched = [item for item in raw_items if item in list_0]
    # 重新拼接成字符串
    return ", ".join(matched)

# 生成新列
df["List Stuff"] = df.apply(get_matches, axis=1)
# 保存结果
df.to_excel("result_file.xlsx", index=False)

SQL 场景(以MySQL为例)

通过子表生成list_0的元素列表,结合字符串匹配函数实现,不需要拆分原列:

SELECT 
    ID,
    `Aleatory Stuff`,
    GROUP_CONCAT(
        CASE 
            WHEN FIND_IN_SET(item, `Aleatory Stuff`) > 0 THEN item 
            ELSE NULL 
        END
        SEPARATOR ', '
    ) AS `List Stuff`
FROM 
    your_table_name,
    -- 把list_0的元素构造成临时表
    (SELECT "Ball" AS item UNION ALL
     SELECT "cellphone" UNION ALL
     SELECT "breakfast" UNION ALL
     SELECT "rice" UNION ALL
     SELECT "test") AS list_temp
GROUP BY ID, `Aleatory Stuff`;

如果原列的元素带空格,FIND_IN_SET可能失效,MySQL 8.0+可以改用REGEXP_CONTAINS来调整匹配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:23:12