Excel和范围匹配查找

时间:2017-06-22 08:10:45

标签: excel excel-formula

我在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列)必须包含确切的文本,即“服务”或“安装” :

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

3 个答案:

答案 0 :(得分:1)

这是一种方法:

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

这是数组公式,所以要输入公式,请按 Ctrl + Shift + 输入(而不是只需输入

enter image description here

答案 1 :(得分:1)

我支持CallumDA的解决方案,因为我个人是阵列公式的粉丝。但是,由于OP问题的性质表明Excel体验有限,我认为数组公式的目标可能有点高。

A,在我看来,更简单的替代方法是使用 SUMIFS -formula,例如

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

只需将“Client One”替换为您列出客户的其他表的范围,我相信您应该好好去。另请注意, Service 两侧的星号作为通配符,以便您同时获得“Water Service”,“Service Truck”和其他组合......

答案 2 :(得分:0)

您可以使用SUMIF执行某些操作。您可以执行此类操作以获取所有Client One条目

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

要获得所有客户端和服务,您可以使用ISNUMBER(SEARCH)SUMIFS

执行此类操作

首先为&#34添加额外的列;是服务"用这个公式

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

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

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