我想使用 sumif 函数并显示每月每个频道的数据

我想使用 sumif 函数并显示每月每个频道的数据

我有第一幅图像的数据,我希望每个频道每月都能看到它,并使用 sumifs 附加在第二幅图像上 原始数据 主要使用公式表

答案1

您可以尝试使用以下公式,而不是使用SUMIFS()use SUMPRODUCT(),因为要使其SUMIFS()工作,需要额外的函数,因为当每个范围具有相同数量的行和列时,它将处理范围。第二种方法显示了如何使用SUMIFS()+INDEX()函数MATCH()。下面显示的公式应该有效。

在此处输入图片描述


使用SUMPRODUCT()LOOKUP()函数之一criteria

• 单元格中使用的公式H3

=SUMPRODUCT(
    (H$2 = $C$2:$E$2) *
        ($G3 = $A$3:$A$14) *
        (
            LOOKUP(
                2,
                1 /
                    (
                        $H$1:H$1 <>
                            ""
                    ),
                $H$1:H$1
            ) = $B$3:$B$14
        ) * $C$3:$E$14
)

或者,SUMIFS()使用INDEX()+MATCH()函数sum_range

• 单元格中使用的公式H3

=SUMIFS(
    INDEX(
        $C$3:$E$14,
        ,
        MATCH(
            H$2,
            $C$2:$E$2,
            0
        )
    ),
    $A$3:$A$14, $G3,
    $B$3:$B$14, LOOKUP(
        2,
        1 / ($H$1:H$1 <> ""),
        $H$1:H$1
    )
)

根据您的需要相应地更改单元格引用和范围。上面显示的公式都需要向下填充和向右填充。


如果您正在使用MS365,请尝试使用MAKEARRAY()函数通过一个动态数组公式溢出输出:

=LET(
     _Months, G3:G14,
     _Header1, H2:S2,
     _Header2, SCAN(,H1:S1,LAMBDA(x,y,IF(y="",x,y))),
     _Rows, ROWS(_Months),
     _Columns, COLUMNS(_Header1),
     MAKEARRAY(_Rows,_Columns,LAMBDA(r,c,
     SUMIFS(INDEX(C3:E14,,XMATCH(INDEX(_Header1,c),C2:E2)),A3:A14,
            INDEX(_Months,r),B3:B14,INDEX(_Header2,,c)))))

相关内容