Excel公式-查找,索引匹配和组合以查找第一个匹配项

时间:2018-10-12 04:31:23

标签: excel excel-formula excel-2010

我有两个看起来像这样的表: enter image description here

每个订单ID可以无限制显示多次。 E行中的总销售额是OrderDetail表中具有该订单ID的所有销售额的总和,因此在这种情况下,订单122的总销售额应为97。

但是,如果在列J中出现“取消”,则无论下达多少订单,该订单ID的所有销售金额都将被取消。因此,在此示例中,订单120和121的总销售金额应为零,并且应在Col D中为两个订单ID记录“取消”状态。

我尝试了D4和E4的这些公式,将它们向下拖动到表格的末尾。但是如您所见,这些公式显然不起作用。

D4: =INDEX($J$4:$J$11,MATCH(B4,$G$4:$G$11,0))
E4: =SUMIFS($H$4:$H$11,$G$4:$G$11,B$4,$J$4:$J$11,$J$4:$J$11<>"Cancel")

公式不能是数组公式,因为随着新订单的到来,两个表都会不断扩展。

有人可以帮助我解决这个问题吗?也许我错过了一些东西,但是我似乎无法弄清楚。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

您的公式中存在一些范围不匹配的问题,可以通过使用完整的列引用而不是范围来解决。 (我确定吉普车会在评论中提出建议)

INDEX(MATCH())仅返回D4中公式中的第一个匹配项,您最好使用条件COUNTIFS()代替:

=IF(COUNTIFS(J:J,"Cancel",G:G,B4)>0,"Cancel","")

第二个公式中有一些错别字,如果您使用完整的列引用,则更容易纠正,这可以解决问题:

=SUMIFS(H:H,G:G,B4,J:J,"<>Cancel")