【问题标题】:Help with SUMIF function with CONTAINS functionality使用包含功能的 SUMIF 功能帮助
【发布时间】:2011-05-10 20:37:00
【问题描述】:

假设我有下表:

  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

我对@9​​87654325@很熟悉,但是由于CompanyTypes列中的逗号分隔值,我不知道如何填写第一个表的Sales列。

有人知道吗?

【问题讨论】:

  • 我不确定如何使用 excel 函数来完成此任务,但一个小宏将能够轻松完成此任务

标签: excel excel-2007 worksheet-function


【解决方案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 Docs link。 该公式已在 Excel 2010 中测试过。Google Docs 不显示公式,而是在导入 excel 文件时计算的总和。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    根据 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)
    

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

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      相关资源
      最近更新 更多