EXCEL中如何用公式根据条件选出所需要的数据

如题所述

真的不想写数组公式,觉得烦:
sheet2中:
=INDEX(sheet1!A:A,SMALL(IF(MATCH(sheet1$A$4:$A$11,sheet1$A$4:$A$11,0)=ROW($A$4:$A$11)-3,ROW($A$4:$A$11),4^8),ROW(A1)))
sheet3中:
=INDEX(sheet1!A:A,SMALL(IF((MATCH(sheet1!$A$4:$A$11 & sheet1!$B$4:$B$11,$A$4:$A$11 & $B$4:$B$11,0)=ROW($A$4:$A$11)-3)*(sheet1!$B$4:$B$11="完好"),ROW($A$4:$A$11),4^8),ROW(A1)))
sheet4中:
=INDEX(sheet1!A:A,SMALL(IF((MATCH(sheet1!$A$4:$A$11 & sheet1!$B$4:$B$11,$A$4:$A$11 & $B$4:$B$11,0)=ROW($A$4:$A$11)-3)*(sheet1!$B$4:$B$11="有划痕"),ROW($A$4:$A$11),4^8),ROW(A1)))
都是数据公式,仅取一个值,不排序
如果在sheet3、sheet4中取重复值公式为:
=INDEX(sheet1!A:A,SMALL(IF(sheet1!$B$4:$B$11="完好",ROW($A$4:$A$11),4^8),ROW(A1)))
同为数组公式
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-07
1.sheet2的结果可以通过"数据透视表"来完成,而且会自动的排序;
2.sheet3的公式是=INDEX(Sheet1!A:A,SMALL(IF(ISERROR(FIND("完好",(Sheet1!B$2:B$100))),"",ROW(Sheet1!B$2:B$100)),ROW(A1))).以ctrl,shift.enter三个键结束公式输入.然后向下拉公式就可以了.
3.sheet4的公式是=INDEX(Sheet1!A:A,SMALL(IF(ISERROR(FIND("有划痕",(Sheet1!B$2:B$100))),"",ROW(Sheet1!B$2:B$100)),ROW(A1))).以ctrl,shift.enter三个键结束公式输入.然后向下拉公式就可以了.追问

我下拉后出现#NUM!这个错误符号,请问怎么去掉这个符号而显示为空白呢。

追答

那是因为你的原表里的型号全部取完了,最简单的方法就是你公式别往下拉了.要么就是加一个IF条件.=IF(ISERR(INDEX(Sheet1!A:A,SMALL(IF(ISERROR(FIND("有划痕",(Sheet1!B$2:B$100))),"",ROW(Sheet1!B$2:B$100)),ROW(A1)))),"",INDEX(Sheet1!A:A,SMALL(IF(ISERROR(FIND("有划痕",(Sheet1!B$2:B$100))),"",ROW(Sheet1!B$2:B$100)),ROW(A1))))同样以ctrl,shift.enter三个键结束公式输入

追问

=INDEX(Sheet1!A:A,SMALL(IF(ISERROR(FIND("完好",(Sheet1!B$2:B$100))),10000,ROW(Sheet1!B$2:B$100)),ROW(A1)))&""
改成这样就不会出现了
谢谢你了

追答

你也是高手呀,这样更简单方便.我也学到了一个,谢谢.

本回答被提问者采纳
第2个回答  2012-09-27
做一个简单的小数据库。需要用到if公式。
shee3:=if('sheet1!b2="完好",'sheet1!a1,""),其它各表以此类推。
第3个回答  2012-09-27
INDEX函数即可
第4个回答  2012-09-27
在sheet2的单元格中输入:=vlookup(选择区域,要查找的型号,希望返回值所在的列);
在sheet3中输入:=vlookup(选择区域,要查找的型号,希望返回值所在的列),在这之前,首先将sheet1中的型号和外观两列交换位置,然后在公式中输入要查找的型号所在的列;
在sheet4中,执行的命令与sheet3一样
相似回答