【问题标题】:Summing a Dynamic Range based on multiple criteria根据多个标准对动态范围求和
【发布时间】:2021-07-22 16:52:03
【问题描述】:

(包括图片)- 我正在尝试编写一个基于多个标准对预测数量(动态范围)求和的公式。我要基于的标准是零件号和月份(8 月 21 日、9 月 21 日等)。每个部分每个月可以有多个预测,我运行了一个匹配公式,显示每个部分变化的第一行,但不确定如何将其进一步细分为几个月。

之前的图片会让我更深入地了解我想要什么。第一张图片显示了我的原始数据和我为找到对应部分的第一行而执行的匹配函数。第二张图片显示了我想要的最终结果。所选单元格中的“100”是我在下面运行的公式的结果。

=IF(VLOOKUP(F2,HIghJump!B:F,4,FALSE)>DATEVALUE("9/01/2021"),SUM(HIghJump!F2:F6))

我的问题是如何获得求和公式 (F2:F6) 中的范围,以根据相应的月份进行更改。除此之外,我如何根据每月的不同部分和不同数量的预测来改变这个公式。

非常感谢任何帮助!

【问题讨论】:

  • @ScottCraner,感谢您的回复。我试过使用 SUMIFS,但我真的在逻辑和语法上苦苦挣扎。无论如何你可以带我过去吗?谢谢。

标签: excel excel-formula


【解决方案1】:

使用 SUMIFS:

=SUMIFS(HIghJump!$F:$F,HIghJump!$B:$B,$F2,HIghJump!$E:$E,">="&EOMONTH(K$1,-1)+1,HIghJump!$E:$E,"<"&EOMONTH(K$1,0)+1)

这应该进入 L2 并向下复制。移动列时将K$1 更改为每个对应的目标日期。

【讨论】:

  • 嗨,斯科特,感谢您的回复。跑了这个,我没有得到预期的结果。你能告诉我你的逻辑吗?
  • 第一个条件是 sum 字段,第二个条件是 B 列与 F2 匹配,然后我们使用 K1 作为日期参考,并在该月的第一天和最后一天使用书末列 E。我有一个错字并且有 K2,它应该是 K1。见编辑。
  • 好的,谢谢。我没有得到预期的 100、644、570 等,而是得到全 0。
  • 看来您的 forcast_qty 是存储为文本的数字,因此文本不会相加。
  • @Euler'sDisgracedStepchild SUMIFS 的美妙之处在于它不关心日期是存储为文本还是真实日期。如果它们可以转换为日期,那么无论它们是文本日期还是真实日期,都可以在条件中使用它们。它唯一不会做的是将数字存储为 sum 列中的文本。
【解决方案2】:

如果我理解正确并且您拥有最新版本的 Excel,那么FILTER 将派上用场。

试试:

=SUM(FILTER(HIghJump!F:F, 
(HIghJump!B:B=$F2)*(HIghJump!B:B>=K$1)*(HIghJump!B:B<EOMONTH(K$1,0)+1))

请注意,使用部分范围通常被认为是最佳做法(例如,$B$1:$F$100 和 $B$1:$B$100 而不是 B:F 和 B:B),因此您可能会这样做想考虑性能是否对您很重要。还要确保您的工作表名称确实是“HIghJump”而不是“High Jump”或某些变体。

【讨论】:

  • 谢谢回复,我好像没有FILTER功能。
【解决方案3】:

回答: 必须使用 MONTH(x) 创建一个列,然后将 SUMIFS 与原始月份列相比较。

=SUMIFS(HIghJump!F:F,HIghJump!H:H,MONTH(K$1),HIghJump!B:B,F2)

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2022-10-23
    • 2021-11-05
    • 1970-01-01
    • 2012-11-16
    相关资源
    最近更新 更多