从Sum Product

时间:2018-10-16 02:24:02

标签: excel excel-formula worksheet-function

我正在尝试从SUMPRODUCT函数的数组中排除文本。

我使用的公式是:

=SUMPRODUCT(--ISNUMBER(FIND("S",Schedule!$AT$14:$DP$100)),(Schedule!$AT12:DP12>=D29)*(Schedule!AT12:DP12<=E29)*(Schedule!$A14:A100="VP")*((Schedule!$AT$14:$DP$100)))

  • Schedule!$AT$14:$DP$100:包含数字和S(或s)
  • Schedule!$AT12:DP12:包含日期
  • D29包含日期
  • Schedule!AT12:DP12:包含日期
  • E29包含日期
  • Schedule!$A14:A100:包含各种文本,我只想在其中包含带VP的行。

如果我将Schedule!$AT$14:$DP$100更改为Schedule!$AT$14:$DO$100,那么它将起作用,所以我知道是否会在产生错误的单元格中S。我知道我不能将数字乘以S

我也尝试过:

=SUMPRODUCT(--SUBSTITUTE(Schedule!$AT$14:$DP$100,"S",0),(Schedule!$AT12:DP12>=D29)*(Schedule!AT12:DP12<=E29)*(Schedule!$A14:A100="VP")*((Schedule!$AT$14:$DP$100)))

我也尝试过,但无济于事。

=SUMPRODUCT(SUBSTITUTE(Schedule!$AT$14:$DP$100,"S",0)*(Schedule!$AT12:DP12>=D29)*(Schedule!AT12:DP12<=E29)*(Schedule!$A14:A100="VP")*((Schedule!$AT$14:$DP$100)))

=SUMPRODUCT(SUBSTITUTE(Schedule!$AT$14:$DP$100,"S",0)*(Schedule!$AT12:DP12>=D29)*(Schedule!AT12:DP12<=E29)*(Schedule!$A14:A100="VP"))

基本上我想说的是:
如果该单元格在日期范围内,并且该行中有VP,则在计划表上添加AT14:DP100范围内的单元格。因此它将是sum of [number x 1(true) x 1(true) x 1(true)] + [number x 0(false) x 1(true) x 1(true)]...

我要去哪里错了?我觉得我可能需要使用数组公式(CTRL SHIFT和ENTER)

1 个答案:

答案 0 :(得分:0)

由于无法在SUMPRODUCT中自动用作数组的函数数量众多,您可能需要使用数组公式。 (即使用 Ctrl + Shift + Enter

幸运的是,您已经已经完成了所有繁重的工作。我们要做的就是将您当前的SUMPRODUCT(<Condition>,<Values>)重写为{SUM(IF(<Condition>,<Values>,0))}

{=SUM(IF(ISNUMBER(FIND("S",Schedule!$AT$14:$DP$100)),(Schedule!$AT12:DP12>=D29)*(Schedule!AT12:DP12<=E29)*(Schedule!$A14:A100="VP")*((Schedule!$AT$14:$DP$100)),0))}