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

Excel 365如何提取每行最右侧有效厚度值及对应日期?

提取每行最右侧有效厚度及对应日期(Excel 365)

问题背景

  • 表格包含ITEM、POS列,后续是数量不固定的配对THICKNESS(厚度)和THK DATE(厚度日期)列
  • 无读数的THICKNESS单元格标记为N,对应日期列保留内容
  • 需要在BASETHK和BASEDATE列,分别提取每行最右侧非“N”的厚度值及其匹配的日期

解决方案

提取最右侧有效厚度(BASETHK列)

假设数据从第2行开始,第一个厚度列为C列,在目标单元格(如J2)输入以下公式,下拉填充:

=LOOKUP(2,1/(C2:XFD2<>"N"),C2:XFD2)

逻辑:通过1/(C2:XFD2<>"N")将非N的厚度位置转为1,N的位置转为错误值;LOOKUP会忽略错误值,找到最后一个符合条件的数值(即最右侧有效厚度)。

提取对应日期(BASEDATE列)

在日期目标单元格(如K2)输入:

=LOOKUP(2,1/(C2:XFD2<>"N"),OFFSET(C2:XFD2,0,1))

逻辑:用OFFSET将厚度列整体偏移1列,得到对应的日期列范围,再用相同的LOOKUP逻辑匹配最右侧有效厚度的对应日期。

更精准的XLOOKUP写法(推荐)

针对Excel 365的动态数组特性,可直接定位所有厚度/日期列,避免OFFSET的兼容性问题:

// BASETHK 公式
=XLOOKUP(TRUE,INDEX(C2:XFD2,SEQUENCE(,COLUMNS(C2:XFD2),1,2))<>"N",INDEX(C2:XFD2,SEQUENCE(,COLUMNS(C2:XFD2),1,2)),,0,-1)

// BASEDATE 公式
=XLOOKUP(TRUE,INDEX(C2:XFD2,SEQUENCE(,COLUMNS(C2:XFD2),1,2))<>"N",INDEX(C2:XFD2,SEQUENCE(,COLUMNS(C2:XFD2),2,2)),,0,-1)

逻辑:SEQUENCE(,COLUMNS(C2:XFD2),1,2)生成所有厚度列的索引(1、3、5...),INDEX提取对应列的数值;XLOOKUP的最后一个参数-1指定从右往左查找,直接定位最右侧有效数据。

注意事项

  • C2:XFD2涵盖了从第一个厚度列到Excel最大列的范围,Excel 365会自动忽略空列,无需手动指定最后一列
  • 若某行所有厚度均为N,公式会返回#N/A,可添加IFERROR处理:=IFERROR(LOOKUP(...),"无有效读数")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:48:13