【问题标题】:How to Sumproduct in Excel if partial string is found ignoring characters and specific cell values如果发现部分字符串忽略字符和特定单元格值,如何在 Excel 中求和
【发布时间】:2019-07-31 12:53:42
【问题描述】:

我在 Excel 中有一个类似于下面的表格,我想计算变量名称(第一行)中出现“*weightl*”的所有列的总和。

但是,如果值为 8888 或字符/字符串,则应忽略此值。

在这种情况下,结果应该是 64。

我尝试使用 {+sumproduct(sumif(A1:F1,"\*weightl\*",A2:F4))} 之类的东西

但是,这只返回 16(第一行的结果)。另外,我不知道如何排除 8888 值。

如果你能提供一个公式来解决这个问题,那就太好了!

【问题讨论】:

    标签: excel excel-formula sumproduct


    【解决方案1】:

    欢迎来到 SO。为此,您需要一个数组公式:

    =SUM(IF(IFERROR(SEARCH("weight",$A$1:$F$1),0)>0,IF($A$2:$F$4<>8888,$A$2:$F$4)))

    注意:因为这是在数组公式中,所以必须使用 CTRL+ENTER+SHIFT 插入而不仅仅是 ENTER 否则不起作用!

    这是如何工作的?

    1. IF($A$2:$F$4<>8888,$A$2:$F$4) 将返回一个仅包含值不等于 8888 的单元格的数组
    2. IF(IFERROR(SEARCH("weight",$A$1:$F$1),0)>0,IF($A$2:$F$4<>8888,$A$2:$F$4)) 将检查先前的值数组,并在第 1 行搜索单词 weight。如果找到,这些值将被检查为 ok。如果不是,这些值将在最终总和中被忽略。

    正如你在我发布的图片中看到的,最终结果是 64。

    希望您可以根据自己的需要进行调整。

    【讨论】:

    • 刚刚击败了我的答案,但我会改用=SUMPRODUCT(ISNUMBER(SEARCH("weightl",A1:F1))*(ISNUMBER(A2:F4)*(A2:F4<>8,888)),A2:F4)。没有数组输入公式,也没有IFERROR :)
    • @JvdV 我不擅长处理 SUMPRODUCT。我知道我应该,但我不是:)。对我来说,使用其他公式或数组公式更容易,因为我可以理解正在发生的事情和逻辑,但 SUMPRODUCT 对我来说就像 magic。但是您的答案很好,并且有效!请张贴!
    • 请随意在您的回答中使用该建议,我不介意。将其包装在一种解决方案中:)。仔细检查评估以检查其工作原理。请注意,SUMPRODUCT 仍然是一个数组函数!
    猜你喜欢
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多