我想将一个已经是 arrayformula 的公式应用于整列
I want to apply, to a whole column, a formula that is already an arrayformula
我有一个分类帐,其中按日期、类别和金额列出了一堆费用。
Expenses ledger
另外,我有一个针对“天然气”类别的分析 sheet。我希望分析 sheet 能够逐月显示 Gas 总支出,而无需更新分类帐以外的任何内容。
我可以用这个公式得到一个独特月份的列表:
=UNIQUE(ARRAYFORMULA(DATE(YEAR('Main Ledger'!A2:A), MONTH('Main Ledger'!A2:A), 1)))
这会按照我想要的方式填充月份,并且列表会随着分类帐自动增长。我把这些放在 A 列中。
对于每个月,我想将分类帐中的每个条目与 A 列中的日期和类别“Gas”进行比较。我可以使用 B 列中的以下公式在一个月内执行此操作:
=ArrayFormula(SUMIFS('Main Ledger'!D:D,MONTH('Main Ledger'!A:A),MONTH(A2),YEAR('Main Ledger'!A:A),YEAR(A2),'Main Ledger'!F:F,"Gas"))
Gasoline analytics
因为我必须使用 arrayformula 在分类帐上进行日期比较,所以我无法弄清楚如何使用 arrayformula 自动将这个怪物公式应用于所有 B 列。随着 A 列的增长(自动因为 UNIQUE
,我希望 B 列也增长。
我不想预填充 B 列并且周围有一堆零,主要是因为我将使用 A 列和 B 列来填充图表。
一次尝试:
=QUERY({Sheet1!A2:D},
"select month(Col1),sum(Col4)
where Col4 is not null
group by month(Col1)
label month(Col1)'month'")
更新:
=INDEX(ARRAY_CONSTRAIN(QUERY({TEXT(Sheet1!A2:A, "mmmm"), Sheet1!A2:D},
"select Col1,sum(Col5),month(Col2)
where Col5 is not null
group by month(Col2),Col1
label Col1'month'"), 9^9, 2))
我有一个分类帐,其中按日期、类别和金额列出了一堆费用。 Expenses ledger
另外,我有一个针对“天然气”类别的分析 sheet。我希望分析 sheet 能够逐月显示 Gas 总支出,而无需更新分类帐以外的任何内容。
我可以用这个公式得到一个独特月份的列表:
=UNIQUE(ARRAYFORMULA(DATE(YEAR('Main Ledger'!A2:A), MONTH('Main Ledger'!A2:A), 1)))
这会按照我想要的方式填充月份,并且列表会随着分类帐自动增长。我把这些放在 A 列中。
对于每个月,我想将分类帐中的每个条目与 A 列中的日期和类别“Gas”进行比较。我可以使用 B 列中的以下公式在一个月内执行此操作:
=ArrayFormula(SUMIFS('Main Ledger'!D:D,MONTH('Main Ledger'!A:A),MONTH(A2),YEAR('Main Ledger'!A:A),YEAR(A2),'Main Ledger'!F:F,"Gas"))
Gasoline analytics
因为我必须使用 arrayformula 在分类帐上进行日期比较,所以我无法弄清楚如何使用 arrayformula 自动将这个怪物公式应用于所有 B 列。随着 A 列的增长(自动因为 UNIQUE
,我希望 B 列也增长。
我不想预填充 B 列并且周围有一堆零,主要是因为我将使用 A 列和 B 列来填充图表。
一次尝试:
=QUERY({Sheet1!A2:D},
"select month(Col1),sum(Col4)
where Col4 is not null
group by month(Col1)
label month(Col1)'month'")
更新:
=INDEX(ARRAY_CONSTRAIN(QUERY({TEXT(Sheet1!A2:A, "mmmm"), Sheet1!A2:D},
"select Col1,sum(Col5),month(Col2)
where Col5 is not null
group by month(Col2),Col1
label Col1'month'"), 9^9, 2))