使用CONTAINS功能帮助SUMIF功能

时间:2011-05-10 20:37:00

标签: excel excel-2007 worksheet-function

假设我有下表:

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

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

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

 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,但由于CompanyTypes列中的逗号分隔值,我不知道如何填写第一个表的Sales列。

有人知道吗?

2 个答案:

答案 0 :(得分:1)

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

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

此公式可查找特定年份特定州的所有销售总额,无论公司如何。请注意,如果您在sales表中有这样的内容,这将不起作用。

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”块,每种类型的公司一个。如果还有更多,则还应添加相应的“IF”块。

包含两个表格的Google文档link。 该公式已在Excel 2010中进行了测试.Google Docs不显示公式,而是显示导入excel文件时计算的总和。

希望这有帮助。

答案 1 :(得分:1)

根据CompanyTypes中“A,B,C”的确切格式(即空格不重要),您可以使用以下公式。我使用了CompanyType的“CT”的命名范围,TotalSales的“TS”,State的“State”,所有都在源表中。我在B列中有CompanyTypes,第一个State列是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)

只需将其放在第一个Sales单元格中(例如假设第2行)并填写。