用CONTAINSfunction帮助SUMIF函数

假设我有下面的表格:

State CompanyTypes Year Sales AZ A, C 2008 CA B, C, D 2009 TX C 2007 WA A, D 2008 

我需要根据某个特定年份某个特定州的所有公司types的销售额SUM来填写Sales列。

所有数据的源表如下所示:

  Year State CompanyType TotalSales 2008 AZ A 100 2008 AZ C 500 2009 CA B 9000 2009 CA C 15664 2009 CA D 12351 2008 TX C 5 2009 WA A 789 

我对SUMIF很熟悉,但是我不知道如何填写第一个表的Sales列,因为CompanyTypes列中有逗号分隔的值。

有人知道吗?

雷,我注意到销售表具有以下属性:在每行中,状态和年份组合是唯一的,因为“AZ”和“2008”在所有行中只出现一次。 如果这是真的,那么这个公式应该工作

 =SUMIFS(D4:D10,A4:A10,I4,B4:B10,G4) 

这个公式找出某个特定年份的所有销售总额,而不考虑公司。 请注意,如果你在销售表中有这样的东西,这将不起作用。

 AZ A 2008 AZ C 2008 

相反,你可以使用下面的公式,虽然比较一般,但是很长。

 =IF( IFERROR( FIND("A",$H4), 0 ), SUMIFS( D$4:D$10, C$4:C$10,"A", A$4:A$10,$I4, B$4:B$10,$G4 ), 0 ) +IF( IFERROR( FIND("B",$H4), 0 ), SUMIFS( D$4:D$10, C$4:C$10,"B", A$4:A$10,$I4, B$4:B$10,$G4 ), 0 ) +IF( IFERROR( FIND("C",$H4), 0 ), SUMIFS( D$4:D$10, C$4:C$10,"C", A$4:A$10,$I4, B$4:B$10,$G4 ), 0 ) +IF( IFERROR( FIND("D",$H4), 0 ), SUMIFS( D$4:D$10, C$4:C$10,"D", A$4:A$10,$I4, B$4:B$10,$G4 ), 0 ) 

您可以直接复制粘贴到配方栏中。 该公式包含4个“IF”块,每个公司types一个。 如果还有更多,则应该添加相应的“IF”块。

包含这两个表格的Google文档链接 。 该公式已在Excel 2010中进行了testing。Google文档不显示公式,而是导入Excel文件时计算的总和。

希望这可以帮助。

基于公司types“A,B,C”(即空格)的确切格式,可以使用以下公式。 我使用了CompanyType的“CT”命名范围,TotalSales的“TS”,State状态的“State”,都在源表中。 我在B列有公司types,第一个州列是A.

 =SUMIFS(TS, CT, MID(B2,1,1), State, A2) + SUMIFS(TS, CT, MID(B2,4,1), State, A2) + SUMIFS(TS, CT, MID(B2,7,1), State, A2) 

只要把它放在第一个销售单元(假设第二行),并填写。