excel函数托技巧:lookup+countifs+offset匹配项目编号-趣帮office教程网

项目源图示

excel函数托技巧:lookup+countifs+offset匹配项目编号-趣帮office教程网

结果图示

如图,结果图示中的项目金额进行了折分,并且拆分后的数据进行了顺序打乱,如张三分别在2、3、22、23行,如何用函数实现从SHEET1中引出到SHEET2中的项目,一一对应到结果图示里的数据上,公式如下:

下拉=LOOKUP(COUNTIFS(A$1:A1,A2,B$1:B1,B2),COUNTIF(OFFSET(Sheet1!A$1,,,ROW($1:50)),B2),Sheet1!B$2:B51)

公式思路:利用下拉过程中设定绝对引用和相对引用的区域,实现了累加计数,如COUNTIFS(A$1:A1,A2,B$1:B1,B2),,随着下拉,没有$符号的行列会增加,从而进行区分并得到相应的结果。这是excel表格行、列引用的特色,估计很多编程语言也实现不了。

当然作为函数研究者肯定对下拉这种半自动化的方式有点不舒服,想实现一键输出,公式如下:

=TAKE(SORT(DROP(REDUCE("",UNIQUE(B2:B133),LAMBDA(x,y,LET(

filter_index,FILTER(SEQUENCE(ROWS(B2:B133)),B2:B133=y),

filter_xiangmu,FILTER(Sheet1!B:B,Sheet1!A:A=y),

array_xiangmu,TEXTSPLIT(REPT(TEXTJOIN(",",,filter_xiangmu)&",",ROWS(filter_index)/ROWS(filter_xiangmu)),,",",1),

VSTACK(x,HSTACK(filter_index,array_xiangmu))))),1),1),,-1)

公式思路:利用SEQUENCE(ROWS(B2:B133)),确定好位置,然后再通过sort函数进行排序得到结果。

日常工作中,小姜推荐大家用第一种方法,因为更简洁,也更充分的利用了excel函数行列的性质,您觉得哪种更好呢?