Excel如何提取存在第二个非空值的站点及对应列标题
方案1:Excel 365/2021 动态数组公式
直接在J2单元格输入以下公式,下拉填充即可:
=LET( 非空列,FILTER($B$1:$I$1,B2:I2<>""), IF(COUNTA(非空列)>=2,INDEX(非空列,2),"") )
公式逻辑:
- 先用FILTER筛选出当前行非空值对应的表头列
- 判断非空列的数量是否≥2,符合条件就返回第2个值,否则返回空
执行后所有J列有结果的行就是符合要求的站点,单元格值就是对应的第二个非空值的列标题。如果需要输出示例中的【站点+第二个非空列名】的结果表格,只需要筛选J列非空值,复制对应的A列(Site列)和J列内容即可。
方案2:旧版Excel 数组公式
在J2单元格输入以下公式,输入完成后按Ctrl+Shift+Enter三键组合触发数组计算,再下拉填充:
=IF(COUNTA(B2:I2)<2,"",INDEX($B$1:$I$1,SMALL(IF(B2:I2<>"",COLUMN(B2:I2)-COLUMN(B2)+1),2)))
公式逻辑:
- 你之前的公式错误点是INDEX的第一个参数选了当前行,所以返回的是单元格值,改成表头行
$B$1:$I$1就能返回对应列标题 - 先加判断COUNTA(B2:I2)<2的话直接返回空,过滤掉不符合条件的站点
- 符合条件的再用SMALL找到第二个非空值的位置,用INDEX匹配对应的表头
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

