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

Excel公式求助:如何将子项编号与对应父类编号匹配?

问题:将子项与最近的父类编号配对

需求:当Parent列存在非空父类编号时,对应行输出该编号;Parent列为空白时,输出最近的上方非空父类编号。
尝试过以下公式但无法正确处理子项数量不一致的情况,会出现空白忽略错位的问题:

  • =IF(D14="",XLOOKUP(TRUE,D13:D75544>0,D13:D75544,,-1,1),"WRONG")
  • =INDEX(A2:A7,MATCH(TRUE,A2:A7<>"",0))

解决方案1:Excel 365/2021 版本(动态数组)

使用SCAN函数可以一次性生成所有结果,无需手动下拉填充。假设Parent列数据范围是D2:D75544,在目标列(比如E2)输入公式:

=SCAN("", D2:D75544, LAMBDA(acc, curr, IF(curr<>"", curr, acc)))
  • 原理:SCAN逐行遍历Parent列,用acc变量记录最近一次的非空父类编号。当前行Parent值非空时,更新acc为当前值;为空时则沿用acc的上一次值,完美匹配需求。

解决方案2:旧版Excel(无动态数组支持)

使用LOOKUP函数实现,在目标列第一行(比如E2)输入公式后下拉填充:

=LOOKUP(2,1/(D$2:D2<>""),D$2:D2)
  • 原理:1/(D$2:D2<>"")会生成一个由1和错误值组成的数组,非空行对应1,空行对应#DIV/0!。LOOKUP(2,1/...)会自动忽略错误值,找到最后一个等于1的位置,返回对应的Parent值——也就是最近的上方非空父类编号。如果当前行Parent非空,自然返回自身值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:38:17