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

如何修改XLOOKUP公式获取每行第二个非空单元格的值?

问题背景

数据表格

AB2023年销售额2023年利润率E2024年销售额2024年利润率H2025年销售额2025年利润率K结果
1产品2023年销售额2023年利润率2024年销售额2024年利润率2025年销售额2025年利润率结果
2产品A50030%15040%1605%30%
3产品B20010%90060%7508%10%
4产品C30019%40010%40060%19%
5产品D70050%93025%50%
6产品E80015%15%
7产品F43032%32%
8产品G36045%45%

需求说明

希望在L列中显示每个产品的首个利润率,即每行的第二个非空单元格。当前使用公式=XLOOKUP(TRUE,ISNUMBER(C2:J2),C2:J2)可正确获取每行第一个非空数值单元格(首个销售额),需修改公式以获取第二个非空数值单元格。


解决方案

方案1:INDEX + FILTER(推荐,Excel 365及以上版本)

直接筛选出当前行所有非空数值单元格,再提取第二个元素:

=INDEX(FILTER(C2:J2,ISNUMBER(C2:J2)),2)

逻辑清晰:FILTER先提取行内所有数值型非空单元格,形成动态数组;INDEX定位数组的第二个元素,正好对应首个利润率。

方案2:XLOOKUP + COUNTIF(兼容更多Excel版本)

通过统计区域内非空数值的数量,匹配第二个符合条件的单元格:

=XLOOKUP(2,COUNTIF(OFFSET(C2,0,0,1,COLUMN(C2:J2)-COLUMN(C2)+1),">0"),C2:J2)

原理:OFFSET生成从C2到当前列的动态区域,COUNTIF统计每个区域内非空数值的数量,当数量等于2时,XLOOKUP匹配对应位置的单元格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:30:08