2016-09-23 157 views
0

我试图使用多个条件返回多个值...下面是我尝试过的代码(但使用特殊括号),但它不断返回,好像我在尝试创建一个总和,并有错误...如何在Excel中使用多个条件返回多个值

=IFERROR(INDEX(Sheet2!$C$4:$C$25,SMALL((IF(Sheet2!$D$4:$D$41=Sheet3!G2)*(Sheet2!$E$4:$E$67=Sheet3!$L$3),ROW(Sheet2!C4:C24)),ROW(1:1))),"") 

下面是返回一个结果代码,但是有两个匹配标准的多个名称。

=IFERROR(INDEX(Sheet2!$C$4:$E$43,MATCH(1,(Sheet2!$D$4:$D$26=Sheet3!$G$2)*(Sheet2!$E$4:$E$26=Sheet3!$L$3),0),1)," ") 

基本上,我有一个利益相关者分析方 - 细分为:

  • 保持满意(表3:细胞C2
  • 管理密切(表3:细胞G2
  • 保持信息通畅(工作表3:电池C13
  • 监视器(工作表3:电池GG13

我在工作表3中使用数据验证:单元格L11(链接到工作表2),以创建第二个标准(工程)。

我想要发生的是它将名称返回到每个利益相关者分析标题。问题是,例如,如果我在一个项目中“管理紧密”有三个名字 - 我无法让它返回所有三个名字......只有一个名字。

这已经让我疯狂

+0

细胞G3 - 不是格GG3 –

回答

0

有你给第一个公式,即在几个错误:

=IFERROR(INDEX(Sheet2!$C$4:$C$25,SMALL((IF(Sheet2!$D$4:$D$41=Sheet3!G2)*(Sheet2!$E$4:$E$67=Sheet3!$L$3),ROW(Sheet2!C4:C24)),ROW(1:1))),"")

其一,通过应该是相同的尺寸的范围;你的情况,所有四个都是不同的,即:

Sheet2!$C$4:$C$25:22行

Sheet2!$D$4:$D$41:38行

Sheet2!$E$4:$E$67:64行

Sheet2!C4:C24:21行

我只能猜测什么应该是正确的范围,所以让我们假设为争论的最大。

其次,我假定参考:

Sheet3!G2

实际上应绝对,即

Sheet3!$G$2

以便作为该式向下复制到不变?

我也会做一些其他的修正,到value_if_true被用于IF声明(目前正在使用的一个是不正确的)条款,同时也SMALL“SK参数(ROWS比更稳健ROW here:https://excelxor.com/2014/08/25/row-vs-rows-for-consecutive-integer-generation/)。

总而言之:

=IFERROR(INDEX(Sheet2!$C:$C,SMALL(IF(Sheet2!$D$4:$D$67=Sheet3!$G$2,IF(Sheet2!$E$4:$E$67=Sheet3!$L$3,ROW(Sheet2!$C$4:$C$67))),ROWS($1:1))),"")

,并抄下来。

你也可能要注意的是,如果被质疑的范围其实非常大,使用IFERROR可以在这里是非常低效的:

https://superuser.com/questions/812727/look-up-a-value-in-a-list-and-return-all-multiple-corresponding-values/812848

问候

+0

非常感谢您的帮助。 - 我已经设法解决它,在我今天得到这个之前......新公式看起来像:= IFERROR(INDEX(Sheet2!C:C,SMALL(IF((Sheet2!D:D ='SH Tool'!$ G $ 2)*(Sheet2!E:E ='SH Tool'!$ L $ 3),ROW(Sheet2!E:E)),ROW(D3))),“”) - 我会补充肯定)我不知道为什么会有最终的ROW(D3)。我只是在其他地方跟着指导,但没有真正的解释为什么那里有。最初它是D1,但由于它不是绝对的,当我拖下来时发生了改变。 D1是一个空单元... D的全部都是空的...... –

+0

在数组公式中引用整个列并不是一个好主意。看起来你还没有听取我的建议,如果再次发生IFERROR。 –