首页 文章

如果有两个条件,那就是SUMPRODUCT

提问于
浏览
2

我需要在excel中创建一个公式,该公式返回一个范围内两列产品的总和,基于大于值 . 具体来说,如果E列中的任何行是给定数字且H列中的任何行> 0,则将列F和G相乘并将这些乘积相加 . Excel使用下面的公式给出了值0,但我希望它能给我225 .

=IF(AND(shipping_logs!H2:H999999>0,shipping_logs!E2:E998940="395078"),
(SUMPRODUCT(shipping_logs!F2:F999999,shipping_logs!G2:G999999)),0)

列G和H可以有负值,所以公式也需要最大值为0.如果产品的总和是负值,我希望它给我0,但我不确定我做错了什么..

enter image description here

3 回答

  • 2

    您只想使用SUMPRODUCT function可能的最小行数 . 这使得公式看起来很复杂,但事实并非如此 .

    选择一个重要的列,最好是数字 . 列F或G都可以 . 要查找包含您可以使用的数字的最后一行,

    =MATCH(1e99, F:F)
    

    即使有最后一个数字以下的东西,也不重要,因为我们只想要数字 .

    你的SUMPRODUCT公式现在,

    =SUMPRODUCT((sl!E2:INDEX(sl!E:E, MATCH(1E+99, sl!F:F))=395078)*
                (sl!G2:INDEX(sl!G:G, MATCH(1E+99, sl!F:F))>0)*
                (sl!H2:INDEX(sl!H:H, MATCH(1E+99, sl!F:F))>0),
                 sl!F2:INDEX(sl!F:F, MATCH(1E+99, sl!F:F)),
                 sl!G2:INDEX(sl!G:G, MATCH(1E+99, sl!F:F)))
    

    如果细胞的范围超过2-3千,则该公式将导致显着的计算滞后 .

  • 0

    检查E列中的任何行是否为给定数字的公式之一是错误的 . 请尝试使用以下任何一个公式 .

    = IF(AND(shipping_logs!H2:H999999> 0,(CountIF(shipping_logs!E2:E998940,395078)),(SUMPRODUCT(shipping_logs!F2:F999999,shipping_logs!G2:G999999)),0)

    = IF(AND(shipping_logs!H2:H999999> 0,(ISNUMBER(MATCH(395078,shipping_logs!E2:E998940))),(SUMPRODUCT(shipping_logs!F2:F999999,shipping_logs!G2:G999999)),0)

  • 0

    这是我正在努力的另一种选择:

    =SUMPRODUCT(shipping_logs!F2:INDEX(shipping_logs!F:F,COUNTA(shipping_logs!F:F)),
                shipping_logs!G2:INDEX(shipping_logs!G:G,COUNTA(shipping_logs!G:G)),
                --(shipping_logs!E2:INDEX(shipping_logs!E:E,COUNTA(shipping_logs!E:E))=395078),
                --(shipping_logs!H2:INDEX(shipping_logs!H:H,COUNTA(shipping_logs!H:H))>0))
    

相关问题