EXCEL怎样传回符合指定条件的多个值

2024-11-13 04:02:07
推荐回答(4个)
回答1:

你需要结果怎样显示?不会是都返回到一个单元格吧?
下面公式可将结果返回到条件单元格后面的同一行的单元格内:
=INDIRECT("sheet1!b"&SMALL(IF($A1=Sheet1!$A$1:$A$100,ROW($A$1:$A$100),65536),COLUMN(A1)))
注意:输入完毕后同时按:Ctrl+Shift+Enter三个键(公式两端会出现一对大括号{})
完毕后该单元格出现第一个结果,拖拽该单元格的句柄(右下角小黑点)向右拖拽,将会得到第二个、第三个…… 结果

回答2:

根据标题,应该是一个机型对应多个代号。比如4010H对应代号有A01\A02\A03等等。

【解决方案】

在Sheet2的A2单元格输入一个需要查询的机型,在B2输入以下公式并按下CTRL+SHIFT+ENTER组合键,向右复制,可以列出所有满足条件的记录:

=INDEX(Sheet1$B:$B,SMALL(IF(Sheet1!$A$2:$A$100=$A2,ROW($2:$100),4^8),COLUMN(A:A)))&""

【公式含义】

  1. 公式中使用IF函数判断Sheet1的A2:A100=本表的A2单元格,满足条件返回其行号2~100,不满足的返回4^8也就是65536(Excel2003最大行,一般是空的单元格)。

  2. 使用SMALL函数+COLUMN函数将IF函数得到的一系列行号从小到大依次取出

  3. 使用INDEX函数与SMALL取出的行号结合,就取得Sheet1的B列中满足条件的单元格内容,当取完没有满足条件的则取B65536

  4. 最后,由于B65536是个空单元格,所以&""合并之后变成空文本""。

 

    在《疑难133 如何按条件筛选提取数据记录》中总结了“筛选满足条件记录列表的通用数组公式”:

=INDEX(引用列,SMALL(IF(条件,ROW(引用区域行号),较大的空行行号),ROW(1:1)))&""

向右复制的将ROW(1:1)改为COLUMN(A:A),如本例。

回答3:

在sheet2中的B1输入公式
=VLOOKUP(A1,sheet1!A:B,2,false)
然后下拉填充即可

回答4:

把问题作为内容、样表(03版,把现状和目标效果表示出来)作为附件发来看下 yqch134@163.com