index-small-if具有来自同一列的一个或多个标准

在这个论坛的帮助下,我得到了下面的数组公式。

=IFERROR(INDEX(SalesOrderLine, SMALL(IF(SalesOrderLine[SalesOrderId]=SalesOrderId, ROW(SalesOrderLine[SalesOrderId])-1, IF(SalesOrderLine[SalesOrderId]=SalesOrderId2, ROW(SalesOrderLine[SalesOrderId])-1)), ROWS(A$23:A23)), 13),"") 

不幸的是,这个公式只有在标准SalesOrderIdSalesOrderId2都有数据的时候才起作用。 即使第二个标准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$23:A23)),13),"")

CTRL + SHIFT + ENTER确认

CHOOSE函数会创build两个ID的“数组”。 匹配该数组时, MATCH函数仍然会生成有效的结果,即使某些值是错误的。