如果有多个条件,excel会返回index-small的结果


亲爱的社区,

我目前陷入困境。 我已经与我们的团队build立了一个开发工作跟踪表,使我们能够pipe理和跟踪完成需求和软件发布所需的任务。

对于每个版本,我都有表格,这些表格可以填充表格,其中包含源表单中不同团队成员的释放信息,帮助我们跟踪任务,并包含进一步的自动化图表。 我只认为自己是一个关于excel的padawan,基本上是基于一些谷歌search和试验和错误build立了这张表。 现在让我们来看看细节

表格内容

  • 请求ID

  • 需求ID

  • 功夫

  • 发布

  • 等等

使用的声明:

=IF(ISERROR(INDEX($J$1:$M$4;SMALL(IF($J$1:$J$4=$B$7;ROW($J$1:$M$4));ROW(1:1));4));"";INDEX($J$1:$M$4;SMALL(IF($J$1:$J$4=$B$7;ROW($J$1:$M$4));ROW(1:1));1)) 

不幸的是,我不知道该怎么走。 我期望修改语句,以便返回符合满足两个或更多条件的结果,即仅版本2.0和要求ID DFE1。

我试图嵌套IF声明如下所示,但没有成功。

 =INDEX($J$1:$M$4;SMALL(IF($J$1:$J$4=$B$7;ROW($J$1:$M$4);IF($K$1:$K$4=$B$8;ROW($J$1:$M$4)));ROW(1:1));1) 

请build议可行的方法来解决这个问题。

如果您需要任何进一步的细节,请让我知道。

如果您使用的是Excel 2010那么您可以使用IFERROR而不是ISERROR来避免公式中的重复,所以您的原始公式可以

=IFERROR(INDEX($J$1:$M$4;SMALL(IF($J$1:$J$4=$B$7;ROW($J$1:$M$4));ROW(1:1));1);"")

然后,如果你想添加额外的条件,你可以使用*作为“伪AND”,这样你的两个条件将是

 =IFERROR(INDEX($J$1:$M$4;SMALL(IF(($J$1:$J$4=$B$7)*($K$1:$K$4=$B$8);ROW($J$1:$M$4));ROW(1:1));1);"") 

如果需要,可以以相同的方式添加更多的条件

这应该工作正常,但为了增加“健壮性”,我会build议这个版本,其中第一个公式是在单元格D2(根据需要调整)。

 =IFERROR(INDEX($J$1:$M$4;SMALL(IF(($J$1:$J$4=$B$7)*($K$1:$K$4=$B$8);ROW($J$1:$M$4)-MIN(ROW($J$1:$M$4))+1);ROWS(D$2:D2));1);"")