《在Excel中把符合条件的记录全部显示出来;.docx》由会员分享,可在线阅读,更多相关《在Excel中把符合条件的记录全部显示出来;.docx(2页珍藏版)》请在三一文库上搜索。
1、在Excel中把符合条件的记录全部显示出来如上图所示,在G列中,在A1:D10中,把箱号符合F2(S-02)的代码全部列出来,在G2中输入公式:=INDEX($C:$C,SMALL(IF($A$2:$A$10=$F$2,ROW($2:$10),1000),ROW(1:1),)&然后按 Ctrl + Shift + Enter 组合键,再把G2的公式往下复制即可。先说明这不是我的原创,是别人的贴子,觉得有用也就保存了下来,先发一部分吧,有用再接着发上来)=INDEX(结果列,SMALL(IF(条件,ROW满足条件的行号,较大的空行行号),ROW(1:1)&【原理】1、数组运算;2、空单元格与空文
2、本合并。【特点】得到的结果是文本。【实例】如图:筛选张三的领用记录(条件是E1单元格的“张三”)。 1.=INDEX(B:B,SMALL(IF(A$2:A$8=E$1,ROW(A$2:A$8),48),ROW(1:1)&复制公式或代码【解析】:对照“必杀技”,多数人已可以瞧出一点端倪来。1、条件模块:IF(A$2:A$8=E$1,ROW(A$2:A$8),48)表示如果A2:A8的姓名等于E1的“张三”,则返回A2:A8的行号,否则返回48,即65536。IF(如果,则,否则这语言不难读吧条件模块经过数组运算,因为A2、A5、A8满足条件,所以返回的是行号数组2;65536;65536;5;6
3、5536;65536;8。2、排序模块:SMALL(IF,ROW(1:1)公式的第1行,ROW(1:1)返回1,在第2行返回2因此,利用SMALL+ROW可以将条件模块返回的行号数组从小到大依次排序得出。当然,此例中SMALL(2;65536;65536;5;65536;65536;8,1)得到的是2,第2小的是5,第3小的是8,第4小及以后都是65536。3、引用模块:INDEX(引用列,SMALL得到的行号)=INDEX(B:B,2)引用B2,=INDEX(B:B,65536)引用B655364、容错模块:&当公式到了第4行,3个满足条件的记录都已经找出来,此时公式是=INDEX(B:B,65536)&“”因为Excel2003的最大行数是65536行,而在这一行中,一般不会有人输入数据,是空单元格。因此,利用空单元格与空文本合并返回空文本的特性,将超出结果数量的部分不显示出来。