【问题标题】:index-small-if with one or multiple criterias from the same columnindex-small-if 具有来自同一列的一个或多个条件
【发布时间】:2015-04-27 21:54:17
【问题描述】:

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

=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 没有数据,我也想查看第一个条件的结果。

【问题讨论】:

    标签: excel indexing


    【解决方案1】:

    鉴于您的 cmets 以下 - 修订版:

    =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 函数创建一个包含两个 ID 的“数组”。 MATCH 函数在与该数组匹配时仍会产生有效结果,即使某些值是错误的。

    【讨论】:

    • 不幸的是还是同样的问题。当第二个条件为 #N/A 时,第一个条件的结果不显示
    • 好吧,你没有说这是一个错误 - 你的意思是 SalesOrderId2 = #N/A?
    • 对不起,是的。如果SalesOrderId2 是错误#N/A,则第一个条件SalesOrderId 的结果将不会显示。
    • 好的,您可以使用MATCH,当其中一个标准出现错误时,它不会中断 - 我会修改我的建议
    • 感谢您的修改,这很有效。如果我有两个以上的标准,公式会是什么样子?我了解 IF(ISNUMBER(MATCH......),CHOOSE 部分,但不了解 ROW(.......)-MIN(ROW(... ..) 部分。我只是在问,因为在某些时候我可能会遇到 SalesOrderId,SalesOrderId1,SalesOrderId2,SalesOrderId3,.......
    猜你喜欢
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多