需要 SUMIFS 到 return 多行
Need SUMIFS to return multiple rows
我遇到的错误:
Function ARRAY_ROW parameter 2 has mismatched row size. Expected: 3.
Actual: 1.
我想我知道为什么会出现此错误。正如您在下面的公式和 table 中所见,有三个月的数据。这将导致第一个数组出现三行。但是,SUMIFS 函数似乎只是 returning 一个数字。但是,我每个月都需要 return 一行。我怀疑错误中预计有 3 行,因为有三个月,如第一个数组 return 编辑的那样。我对这个错误的理解是否正确?
公式:
=ArrayFormula({{unique(text(A1:A,"MMM YY"))},
{ABS(SUMIFS(C1:C,B1:B,G1,text(A1:A,"MMM YY"), unique(text(A1:A,"MMM YY"))))}})
注意:我使用的是整列,因此当添加更多数据时,该功能无需调整也能正常工作。
数据:
Date
Category
Payment
01/03/2021
Food
02/03/2021
Food
02/06/2021
Fee
03/03/2021
Food
G1
是 Food
预期输出:
Jan 21
Feb 21
Mar 21
如何让 SUMIFS 每个月 return 新一行?我需要使用像 OFFSET 这样的函数吗?
您可以按月汇总付款,并使用使用 pivot
子句的 query()
公式在单独的列中显示每个类别的结果,如下所示:
=arrayformula(
query(
{ A1:C, text(A1:A, "yyyy-mm") },
"select Col4, sum(Col3)
where Col3 is not null
group by Col4
pivot Col2",
1
)
)
要仅显示单元格 G1
中指定的类别,请使用:
=arrayformula(
query(
{ A1:C, text(A1:A, "yyyy-mm") },
"select Col4, sum(Col3)
where Col2 = '" & G1 & "'
group by Col4
label sum(Col3) '" & G1 & "' ",
1
)
)
您可以使用 SUMIF
+ ARRAYFORMULA
代替 SUMIFS
=ArrayFormula(unique(if(A2:A<>"",{text(A2:A,"MMM YY"),sumif(text(A2:A,"MMM YY")&B2:B,text(A2:A,"MMM YY")&"Food",C2:C)},)))
我遇到的错误:
Function ARRAY_ROW parameter 2 has mismatched row size. Expected: 3. Actual: 1.
我想我知道为什么会出现此错误。正如您在下面的公式和 table 中所见,有三个月的数据。这将导致第一个数组出现三行。但是,SUMIFS 函数似乎只是 returning 一个数字。但是,我每个月都需要 return 一行。我怀疑错误中预计有 3 行,因为有三个月,如第一个数组 return 编辑的那样。我对这个错误的理解是否正确?
公式:
=ArrayFormula({{unique(text(A1:A,"MMM YY"))},
{ABS(SUMIFS(C1:C,B1:B,G1,text(A1:A,"MMM YY"), unique(text(A1:A,"MMM YY"))))}})
注意:我使用的是整列,因此当添加更多数据时,该功能无需调整也能正常工作。
数据:
Date | Category | Payment |
---|---|---|
01/03/2021 | Food | |
02/03/2021 | Food | |
02/06/2021 | Fee | |
03/03/2021 | Food |
G1
是 Food
预期输出:
Jan 21 | |
Feb 21 | |
Mar 21 |
如何让 SUMIFS 每个月 return 新一行?我需要使用像 OFFSET 这样的函数吗?
您可以按月汇总付款,并使用使用 pivot
子句的 query()
公式在单独的列中显示每个类别的结果,如下所示:
=arrayformula(
query(
{ A1:C, text(A1:A, "yyyy-mm") },
"select Col4, sum(Col3)
where Col3 is not null
group by Col4
pivot Col2",
1
)
)
要仅显示单元格 G1
中指定的类别,请使用:
=arrayformula(
query(
{ A1:C, text(A1:A, "yyyy-mm") },
"select Col4, sum(Col3)
where Col2 = '" & G1 & "'
group by Col4
label sum(Col3) '" & G1 & "' ",
1
)
)
您可以使用 SUMIF
+ ARRAYFORMULA
代替 SUMIFS
=ArrayFormula(unique(if(A2:A<>"",{text(A2:A,"MMM YY"),sumif(text(A2:A,"MMM YY")&B2:B,text(A2:A,"MMM YY")&"Food",C2:C)},)))