index-small-if 具有来自同一列的一个或多个条件
index-small-if with one or multiple criterias from the same column
在这个论坛的帮助下,我得到了以下数组公式。
=IFERROR(INDEX(SalesOrderLine, SMALL(IF(SalesOrderLine[SalesOrderId]=SalesOrderId, ROW(SalesOrderLine[SalesOrderId])-1, IF(SalesOrderLine[SalesOrderId]=SalesOrderId2, ROW(SalesOrderLine[SalesOrderId])-1)), ROWS(A:A23)), 13),"")
遗憾的是,此公式仅在条件 SalesOrderId
和 SalesOrderId2
都有数据时才有效。即使第二个条件 SalesOrderId2
没有数据,我也希望看到第一个条件的结果。
鉴于您的以下评论 - 修订版:
=IFERROR(INDEX(SalesOrderLine,SMALL(IF(ISNUMBER(MATCH(SalesOrderLine[SalesOrderId],CHOOSE({1,2},SalesOrderId,SalesOrderId2),0)),ROW(SalesOrderLine[SalesOrderId])-MIN(ROW(SalesOrderLine[SalesOrderId]))+1),ROWS(A:A23)),13),"")
已通过 CTRL+SHIFT+ENTER
确认
CHOOSE
函数为您的两个 ID 创建一个 "array"。 MATCH
函数在与该数组匹配时仍会产生有效结果,即使某些值是错误的。
在这个论坛的帮助下,我得到了以下数组公式。
=IFERROR(INDEX(SalesOrderLine, SMALL(IF(SalesOrderLine[SalesOrderId]=SalesOrderId, ROW(SalesOrderLine[SalesOrderId])-1, IF(SalesOrderLine[SalesOrderId]=SalesOrderId2, ROW(SalesOrderLine[SalesOrderId])-1)), ROWS(A:A23)), 13),"")
遗憾的是,此公式仅在条件 SalesOrderId
和 SalesOrderId2
都有数据时才有效。即使第二个条件 SalesOrderId2
没有数据,我也希望看到第一个条件的结果。
鉴于您的以下评论 - 修订版:
=IFERROR(INDEX(SalesOrderLine,SMALL(IF(ISNUMBER(MATCH(SalesOrderLine[SalesOrderId],CHOOSE({1,2},SalesOrderId,SalesOrderId2),0)),ROW(SalesOrderLine[SalesOrderId])-MIN(ROW(SalesOrderLine[SalesOrderId]))+1),ROWS(A:A23)),13),"")
已通过 CTRL+SHIFT+ENTER
确认CHOOSE
函数为您的两个 ID 创建一个 "array"。 MATCH
函数在与该数组匹配时仍会产生有效结果,即使某些值是错误的。