【问题标题】:SUMIF pairs of data with XOR conditional带 XOR 条件的 SUMIF 数据对
【发布时间】:2016-02-29 17:09:53
【问题描述】:

我正在绞尽脑汁思考如何做到这一点,在使用 SUMIF、数组、SUMPRODUCT 进行了多次试验后,我无法找到任何解决方案,所以我希望有人能提供帮助。

鉴于下面的数据,我想在每个“周”列的底部有一个总和,该总和是该周第一列中每个项目的值。问题是它应该只计算每个项目的值一次,如果它们可用的话,要么采用实际值要么采用预测值(但永远不要同时采用两者)。如果两者都可用,则应使用实际值而不是预测值。

底行表示每列的正确总数,我希望有一个公式来计算它。

请注意,由于工作表的结构,我需要在没有帮助列的情况下执行此操作,并且项目可能并不总是以正确的顺序添加(即它可能是实际、预测、实际、预测)。此外,将有多达 50 个独特的项目,所以我真的需要一个适用于许多项目的更通用的公式。

                 Week1  Week2   Week3   Week4   Week5
Item1   Actual    500    0       100    0   
Item2   Actual    400   100             0   
Item1   Forecast  200   200      300             200
Item2   Forecast  100    0                       100

                  900    100     100    0        300

【问题讨论】:

  • 为什么第 2 周要 300? 0 和空白一样吗?不应该是100吗?为什么第 3 周要 400? Item2和Item1的两个条目都没有数据,不应该是100吗?
  • 如果您对这种数据结构感到困惑,那么我会使用 VBA 解决方案。但是,如果您可以更改数据结构,您将能够使用 SUMIF,而无需费尽心思。
  • @zaptask,呵呵!对不起,你是对的,这两个都应该是 100。
  • @dev1998,谢谢,如果可能的话,我会尽量避免使用 VBA,我真的希望有某种形式的查找与 SUMIF 相结合可以帮助...
  • 我认为@devuxer 提供了一个很好的解决方案。我认为您也无法在没有帮助列的情况下获得公式解决方案。看看它,如果它适合你,那么一定要选择它是正确的。

标签: excel sumifs


【解决方案1】:

我认为完全使用公式而不使用辅助列是不可能的。我想出了一个使用公式和一个辅助列的解决方案。

鉴于工作表是这样设置的......

...您需要执行以下操作:

  • 在 I2 中输入=OR(COUNTIF(A$2:A$7,A2)=1,B2="Actual")
  • 向下复制公式以涵盖所有项目
  • 在 C9 中输入=SUMIF($I2:$I7,TRUE,C2:C7)
  • 将公式复制到右侧以涵盖所有周

I2 中的公式计算与当前项匹配的项数。如果总共有一个总共有两个但当前一个是“实际的”,那么它输入TRUE,否则它输入FALSE。 (我在这里假设每个项目只有一个“预测”和一个“实际”。如果不是这样,请告诉我。)

有了这个帮助列,SUMIF 公式非常简单——它只是将那一周在第一列中具有TRUE 的值相加。

单独工作表上的帮助列

如果您绝对不能在 Sheet1(或任何您的工作表名称)上放置辅助公式,您可以添加一个新工作表 (Sheet2) 并将辅助列放置在该工作表上。在这种情况下,您需要执行以下操作:

  • 在 Sheet 2, A2 中输入 =OR(COUNTIF(Sheet1!A$2:A$7,Sheet1!A2)=1,Sheet1!B2="Actual"))(将 Sheet1 替换为现有工作表的名称)
  • 向下复制公式以涵盖所有项目
  • 在 C9 中输入 =SUMIF(Sheet2!$A2:$A7,TRUE,C2:C7)(将 Sheet2 替换为新工作表的名称)
  • 将公式复制到右侧以涵盖所有周

【讨论】:

  • 聪明,谢谢!我应该说我不想要一吨辅助列,但一个很好。感谢您花时间帮助我。
【解决方案2】:

这应该在没有帮助列的情况下完成。

=SUMPRODUCT((COUNTIFS($A$2:$A$5,$A$2:$A$5,C2:C5,"")+($B$2:$B$5="Actual")>0)*1,C2:C5)

用 ctrl+alt+enter 确认

这是第 1 周的公式,即单元格 C7。

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2014-11-24
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多