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

预订数据中特定房间/子单元组合查找公式求助

解决方案:无需拆分数据的查找公式

针对合并子单元字段的查找需求,不需要拆分2000+条记录,直接用Excel函数就能实现快速查找。以下分两种场景给出具体公式:

场景1:Excel 365/2021(支持动态数组函数)

假设数据结构为:

  • Sheet1中A列是合并的「房间/子单元」字段(示例:{6045} {B},{6045} {AB})
  • B列是对应的RES编号字段(示例:RES1234,RES5678)

要查找{6045} {B}所在行中,对应{6045} {AB}的RES编号,使用公式:

=LET(
    目标子单元, "{6045} {B}",
    匹配子单元, "{6045} {AB}",
    筛选行, FILTER(Sheet1!$A:$B, ISNUMBER(SEARCH(目标子单元, Sheet1!$A:$A))),
    子单元列表, TEXTSPLIT(INDEX(筛选行, 1, 1), ","),
    RES列表, TEXTSPLIT(INDEX(筛选行, 1, 2), ","),
    INDEX(RES列表, MATCH(匹配子单元, 子单元列表, 0))
)

公式逻辑:

  1. LET定义变量,简化公式结构;
  2. FILTER筛选出包含目标子单元的行(默认唯一匹配,多匹配场景可调整筛选条件);
  3. TEXTSPLIT将合并的子单元、RES字段拆分为独立列表;
  4. INDEX+MATCH定位目标子单元对应的RES编号。

场景2:旧版Excel(不支持动态数组)

若无法使用动态数组函数,使用以下数组公式(输入后按Ctrl+Shift+Enter触发):

=TRIM(MID(SUBSTITUTE(INDEX(Sheet1!$B:$B, MATCH(TRUE, ISNUMBER(SEARCH("{6045} {B}", Sheet1!$A:$A)), 0)), ",", REPT(" ", 100)), (MATCH("{6045} {AB}", SUBSTITUTE(INDEX(Sheet1!$A:$A, MATCH(TRUE, ISNUMBER(SEARCH("{6045} {B}", Sheet1!$A:$A)), 0)), ",", REPT(" ", 100)), 0)-1)*100+1, 100))

公式逻辑:

  1. 通过MATCH+SEARCH定位包含目标子单元的行;
  2. SUBSTITUTE+REPT将逗号分隔内容替换为固定长度空格,方便用MID提取对应位置的RES;
  3. TRIM去除多余空格,得到最终RES编号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:14:54