2016-12-07 321 views
-2

索引和匹配不会返回多个值,需要找到一种方式,无论是函数还是VBA。Excel索引返回与多个条件匹配的多个值

基本上我有一个索引和匹配功能,着眼于两个变量,然后返回从不同的表匹配相应的公司。

即你从下拉,然后“GOLD”从另一个下拉那么指数和匹配选择“澳大利亚”将拉动公司从澳大利亚和矿山黄金操作的另一片。 到目前为止该功能的作品,但它只返回第一个结果,并可能有多个公司,我还没有想出如何返回多个结果。

到目前为止的代码如下:

=INDEX(Datapage!B$2:B$280,MATCH(1,(A$8=Datapage!$C$2:$C$280) * (B$8=Sheet11!$D$2:$D$280),0)) 

我也尝试这一个:

= IFERROR(INDEX(Table26 [[位置]:[商品],SMALL(IF( Table26 [位置] = $ B8,ROW(Table26 [商品]) - ROW($ d $ 2)+1),COLUMNS($ B14:B14))), “”) 数据片具有在B2值 - D280

但没有任何反应,它只搜索一个对此需求无用的变量。

B为公司名称

C是位置

d是商品

我们已经附上一些照片澄清

这是张什么样子

Data page containing the names of companies

Search page

任何帮助将不胜感激! 感谢

+0

欢迎SO!您的问题还不太清楚,请阅读[问]和[mcve] - 然后[编辑]您的帖子,以便在不启动TeamViewer会话的情况下回答问题。干杯! –

+0

我试着尽我所能解释,还有什么我错过了? – VOSS

+0

尼斯的编辑,我想* *我明白这个问题,但我还是不明白你想要什么 - 一个小区只能有一个值,你怎么期待一个公式“返回多个值” ? –

回答

1

任何有兴趣我想通了,不需要任何VBA函数。

=IFERROR(INDEX(Data!$B$2:$B$280, SMALL(IF($A$8&" "&$B$8=Data!$A$2:$A$280, ROW(Data!$B$2:$B$280)-1,""), ROW()-14)),"") 

B中列的第一个数据是,如果找到匹配我想返回的数据。

“Small(IF(A ...)”函数结合了我想要比赛寻找的两个变量,即A =澳大利亚& B = GOLD等等,它会在下一个比赛中寻找比赛012(ROW(Data!$ B $ 2:$ B $ 280)) - “ROW(Data ...”)将单元格A8和B8中的值与范围内的每个值进行比较。 1“返回相应行的编号(-1用于扣除标题行),如果比较值不匹配,则IF函数返回空字符串。 “””功能作为一个递增计数器。由于公式被复制到细胞A15,我们添加-14的函数返回1细胞A15(行15减去14),15单元A16(行16减15)等