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

Excel中查找指定匹配项并返回其上一行值,实现多结果拼接

问题:Excel单列匹配所有目标名称,返回对应上一行时间并合并

需求说明

  • 在Excel某列中精确匹配目标名称(例如匹配JonP而非JonF)
  • 返回每个匹配名称所在行的上一行时间值
  • 已实现返回第一个匹配项的公式:=IFERROR(INDEX(A$2:A$9,MATCH("*"&$D2&"*",A$2:A$9,0)-1,1),""),但需要提取所有匹配项对应的时间,并用TEXTJOIN合并输出

最终解决方案公式

如果使用Excel表结构(表名为Schedule,时间列也命名为Schedule,名称列位于时间列的下一行位置),可直接使用以下公式:

=TEXTJOIN(", ",TRUE,FILTER(Schedule[Schedule],ISNUMBER(SEARCH(D2,OFFSET(Schedule[Schedule],1,0)))))

公式逻辑拆解

  1. OFFSET(Schedule[Schedule],1,0):将时间列整体向下偏移1行,偏移后的区域恰好对应原时间列每一行的下一行(即名称所在行)
  2. SEARCH(D2, ...):在偏移后的区域中查找是否包含目标名称D2,找到则返回位置值,找不到返回错误值
  3. ISNUMBER(...):将SEARCH的结果转换为布尔值——匹配到目标时返回TRUE,否则返回FALSE
  4. FILTER(Schedule[Schedule], ...):用布尔值数组筛选原时间列,仅保留对应偏移区域中匹配到目标名称的行(也就是匹配名称的上一行时间)
  5. TEXTJOIN(", ",TRUE, ...):将筛选出的所有时间值用「逗号+空格」分隔合并,TRUE参数用于忽略空值

场景适配说明

当名称列存在混排情况(目标名称分散在不同行)时,公式会自动定位所有匹配的JonP,并提取每个实例对应的上一行时间,最终输出类似9:00, 14:30, 16:15的合并结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:33:14