Excel总和范围匹配查找

我在Excel中有以下表格:

__|______A_______|_________B___________|____C____| 1 |Client | Description | Amount | 2 |Client One | Water Services | 50 | 3 |Client One | Installation Fees | 120 | 4 |Client One | Telephone Services | 130 | 5 |Client Two | Food Services | 20 | 6 |Client Two | Pump Installation | 40 | 7 |Client Two | Door Installation | 100 | 8 |Client Three | Telephone Services | 98 | 9 |Client Three | Gas Services | 34 | 10|Client Three | Installation Fees | 46 | 

我需要一个公式来计算每个客户端的服务总量以及第二个工作表中每个客户端的总安装量。 例如,它应该检查描述是否在B列中包含文本“services”,然后返回客户端的总金额,如下所示:

 __|____A________|______B_________|______C_______| 1 |Client | Description | Total Amount | 2 |Client One | Services | 180 | 3 |Client One | Installation | 120 | 4 |Client Two | Services | 20 | 5 |Client Two | Installation | 140 | 6 |Client Three | Services | 132 | 7 |Client Three | Installation | 46 | 

我已经尝试了以下公式,但是我只能返回客户端的第一个值,而表1中的描述(列B)必须包含确切的文本,即“Services”或“Ins​​tallation”:

 =INDEX(Sheet1!C2:C10,MATCH(A2&B2,Sheet1!A2:A10&Sheet1!B2:B10,0)) 
  1. 我需要能够得到总价值,而不是第一个价值。
  2. 我还需要search描述是否包含“服务”或“安装”,然后返回金额。

这是一个办法:

 =SUM(($A$2:$A$10=A13)*(IFERROR(FIND(B13,$B$2:$B$10),0)>0)*$C$2:$C$10) 

这是一个数组公式,所以input公式按Ctrl + Shift + Enter (而不是只是input

在这里输入图像说明

我支持CallumDA的解决scheme,因为我个人是数组公式的粉丝。 但是,由于OP的问题的本质表明Excel的体验有限,所以我认为Array公式可能有点高。

A,在我看来,更简单的select是使用SUMIFS- formulaula,例如

 =SUMIFS($C$2:$C$10;$A$2:$A$10;"Client One";$B$2:$B$10;"*Service*") 

只需将“客户端”replace为您列出客户的其他表格的范围,我相信您应该很好。 此外,请注意, 服务任何一方asterix作为通配符,以便您同时获得“水服务”,“服务卡车”和其他组合…

你可以用SUMIF做一些事情。 你可以做这样的事情来获得你所有的Client One条目

 =SUMIF(A2:A10,"Client One",C2:C10) 

为了获得所有的客户端和服务,你可以使用ISNUMBER(SEARCH)和SUMIFS来做这样的事情

首先用这个公式为“是一个服务”添加一个额外的列

 =ISNUMBER(SEARCH("Service",B1)) =ISNUMBER(SEARCH("Service",B2)) ... 

这将返回true / false,然后像这样做SUMIFS

 =SUMIFS(A2:A10,C2:C10,"Client One",D2:D10,"TRUE")