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))),"")

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

=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)中使用数据验证来创建第二个标准(项目)。

我希望它能够将名称返回到每个利益相关者分析标题中。问题是,例如,如果我在一个项目的“密切管理”中有 3 个名称 - 我无法让它返回所有三个名称……只有一个。

这一直让我发疯

4

1 回答 1

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_trueIF子句(您当前使用的那个不正确)以及SMALL'sk 参数(ROWSROW这里更健壮: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这里使用 can 的效率非常低:

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

问候

于 2016-09-23T12:44:47.010 回答