ARRAYFORMULA 中的 SUMIFS 添加不应该在 Google 工作表中的行

SUMIFS in ARRAYFORMULA adding rows it shouldn't in Google Sheets

我在 https://docs.google.com/spreadsheets/d/1eIq67HjeOrH8UqWZqtIE5ZhNcfI_lepcL_ADbzVkSzU/edit?usp=sharing 有一个样本 sheet。

report 选项卡中,我在 D1 中有一个公式:

={
    "Totals";
    ARRAYFORMULA(
        IF(
            A2:A <> "",
            SUMIFS(
                data!E:E,
                data!D:D, "" & C2:C,
                data!C:C, "alpha"
            ),
        )
    )
}

思路是如果data!D:D等于数组公式的report!C2:Cdata!C:C等于alpha则求和data!E:Ereport!C2:C 有一个 YYYY-MM 文本格式的日期。而data!C:C也一样。

但公式返回无效行。例如,data!C:C 没有 2022-06,但公式为它返回 350

您不能在 arrayformula 中使用 SUMIFS()。不过,您可以使用 SUMIF()。

=ARRAYFORMULA({"Totals";IF(A2:A="",,SUMIF(data!C:C&data!D:D,"alpha"&C2:C,data!E:E))})

应该可以

尝试:

=INDEX(QUERY(QUERY({FILTER(data!D:E, data!C:C="alpha"); 
 FLATTEN({2021, 2022}&"-"&TEXT(SEQUENCE(12), "00")), SEQUENCE(24, 1,,)}, 
 "select Col1,sum(Col2) where Col1 matches '^(2021.*|2022.*)' group by Col1"), "offset 1", ))