发布网友 发布时间:2022-04-21 20:24
共1个回答
热心网友 时间:2023-05-31 17:07
=IFERROR(INDEX('6.27库存表'!$B:$B,SMALL(IF('6.27库存表'!$G$4:$G$200>=90,ROW($4:$200)),ROW(A1))),""),数组公式,即必须Ctrl+Shift+Enter三键齐按结束公式编辑,会自动生成一对{ }。追答因为提取出的是行号,而B列是空的话,比如B8是空,但空白(真空,即真正的空单元)默认为是0,所以会返回0。
此类公式正常不用IFERROR,此函数只对错误值起作用,而用不符合条件返回一个较大的行号,正常用4^8,即65536,如果6.27库存表的B列不是数值,后面加&"",遇到空格直接显示空值。
=INDEX('6.27库存表'!$B:$B,SMALL(IF('6.27库存表'!$G$4:$G$200>=90,ROW($4:$200),4^8),ROW(A1)))&""
返回的数据,是按符合条件的数据,从上到下依次提取出来的,原来是什么顺序还是什么顺序,只是跳过了不符合条件的数据。
如果B列是数值,则要加判断条件,判断返回的单元格是否为空,如果为空,显示为空,否则为原值。
=IF(INDEX('6.27库存表'!$B:$B,SMALL(IF('6.27库存表'!$G$4:$G$200>=90,ROW($4:$200),4^8),ROW(A1)))="","",INDEX('6.27库存表'!$B:$B,SMALL(IF('6.27库存表'!$G$4:$G$200>=90,ROW($4:$200),4^8),ROW(A1))))
当然,最后的条件判断根据不同的实际情况,可能会有更简单的判断。