FILTER函数的筛选条件必须是指定的列区域(或行区域),如果要对任意指定列进行筛选呢?此时,需要使用OFFSET函数来引用指定的列数据区域,再进行判断。
下图是一个示例,要求筛选出指定产品、指定最低发货量以上的客户数据。
由于是任意指定的产品,因此需要使用OFFSET函数引出这列数据,此时,首先使用OFFSET函数引用指定产品的数据区域的表达式如下:
OFFSET($A$3,,MATCH($J$2,$B$2:$F$2,0),COUNTA($A$3:$A$26),1)
然后将对这个OFFSET函数引用的区域进行条件判断,是否大于指定的最低发货量:
OFFSET($A$3,,MATCH($J$2,$B$2:$F$2,0),COUNTA($A$3:$A$26),1)>$J$3
FILTER($A$3:$F$26,
OFFSET($A$3,,MATCH($J$2,$B$2:$F$2,0),COUNTA($A$3:$A$26),1)>$J$3)
FILTER函数得到的结果是一个筛选数据表,因此需要使用INDEX函数从这个筛选结果数据表中提取出客户名称和指定产品的数据,其中客户名称在第1列,指定产品的列位置可以使用MATCH函数确定:
=IFERROR(INDEX(FILTER($A$3:$F$26,OFFSET($A$3,,MATCH($J$2,$B$2:$F$2,0),COUNTA($A$3:$A$26),1)>$J$3),ROW(A1),1),"")
=IFERROR(INDEX(FILTER($A$3:$F$26,OFFSET($A$3,,MATCH($J$2,$B$2:$F$2,0),COUNTA($A$3:$A$26),1)>$J$3),ROW(A1),MATCH($J$2,$A$2:$F$2,0)),"")
==============================
近期文章一览表