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

如何用多条件查找数组多单元格并合并至单个单元格(Excel)

解决Excel数组中重复条件下的Output合并问题

问题背景

你有一个从多列表提取生成的Excel原始数组(表1,非格式化表格),包含Day、Shift、Code、Condition、Output列。需要根据Condition列,将Output列内容按Day分类合并到表2对应单元格(例如周五的Internal 1需合并为Change 518-462-731)。

你当前使用的嵌套公式:

=IFERROR(FILTER(IF("Condition Column="Internal 1";UNIQUE("Change" & CHAR(10) & TEXTJOIN ("-";TRUE;RIGHT('Output Column';7);LEFT('Output Column';3)="Mon")))));"";((('Condition Column'="Internal 1")*(LEFT('Output Column';3)="Mon")));""

该公式在单日无重复Condition时有效,但单日出现重复Condition时会触发溢出错误,要求不使用VBA解决此问题。

解决方案公式

假设表2中,目标单元格对应的Day在A2,Condition在B2,可使用以下公式(替换实际数组范围):

=IFERROR("Change " & TEXTJOIN("-", TRUE, UNIQUE(RIGHT(FILTER(表1!$E:$E, (表1!$A:$A=A2)*(表1!$D:$D=B2)),7))), "")

如果需要保留换行(对应原公式中的CHAR(10)),调整为:

=IFERROR("Change" & CHAR(10) & TEXTJOIN("-", TRUE, UNIQUE(RIGHT(FILTER(表1!$E:$E, (表1!$A:$A=A2)*(表1!$D:$D=B2)),7))), "")

公式逻辑说明

  1. 筛选匹配数据:FILTER(表1!$E:$E, (表1!$A:$A=A2)*(表1!$D:$D=B2)) 提取当前Day和Condition对应的所有Output值,支持单日多个相同Condition的场景。
  2. 提取关键内容:RIGHT(...,7) 截取每个Output的后7位(对应示例中的数字部分)。
  3. 去重处理:UNIQUE(...) 移除重复的数字,避免合并时出现重复值。
  4. 合并内容:TEXTJOIN("-", TRUE, ...) 用连字符将所有提取到的数字合并成字符串。
  5. 添加前缀与容错:"Change " & ... 拼接前缀,IFERROR(..., "") 确保无匹配数据时返回空值,避免错误提示。

注意事项

  • 替换公式中的表1!$A:$A(Day列)、表1!$D:$D(Condition列)、表1!$E:$E(Output列)为你实际的数组范围,若原始数组带表头,需调整范围为纯数据区域(比如A2:A100)。
  • 若你的Excel版本支持动态数组(365/2021及以上),公式会自动适配;若版本较低,需按Ctrl+Shift+Enter作为数组公式输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:45:26