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

Excel 365如何从长文本提取多匹配值生成文本或数组?

解决方案

针对Excel 365环境,以下公式可实现从C列食谱文本中提取所有匹配的食材(A列)和厨具(B列),并以空格分隔的文本形式返回:

D列(IngUsed:提取食材)

在D2单元格输入以下公式,下拉填充或利用Excel 365动态数组自动溢出到下方行:

=TEXTJOIN(" ", TRUE, FILTER($A$2:$A$31, ISNUMBER(SEARCH(" "&$A$2:$A$31&" ", " "&C2&" ")), ""))

E列(AppUsed:提取厨具)

在E2单元格输入以下公式,同理下拉或自动溢出:

=TEXTJOIN(" ", TRUE, FILTER($B$2:$B$31, ISNUMBER(SEARCH(" "&$B$2:$B$31&" ", " "&C2&" ")), ""))

公式说明

  • SEARCH(" "&$A$2:$A$31&" ", " "&C2&" "):给食材和食谱文本前后加空格,确保匹配完整单词,避免误识别(比如不会把"Butterfly"当成"Butter");SEARCH返回匹配位置,无匹配则返回错误值。
  • ISNUMBER(...):将SEARCH结果转换为布尔值(匹配为TRUE,不匹配为FALSE)。
  • FILTER($A$2:$A$31, ..., ""):按布尔值筛选A列中所有在C2食谱里出现的食材,无匹配时返回空文本。
  • TEXTJOIN(" ", TRUE, ...):把筛选出的匹配项用空格连接成字符串,TRUE参数会忽略空值。

注意事项

  • 若A/B列后续会新增条目,可将范围调整为更大的固定区域(比如$A$2:$A$1000),或把A/B列转为Excel表格,让范围自动扩展。
  • 若存在大小写不一致的情况(比如食谱写"flour",A列是"Flour"),可统一大小写后匹配,示例公式:
=TEXTJOIN(" ", TRUE, FILTER($A$2:$A$31, ISNUMBER(SEARCH(" "&UPPER($A$2:$A$31)&" ", " "&UPPER(C2)&" ")), ""))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 18:42:10