excel 具有多个条件的SUMIF,在条件中使用公式

lbsnaicq  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(177)

此问题的示例工作簿可在此处找到https://docs.google.com/spreadsheets/d/1IkNv6outjKzwgvnG_7IPLpSt2vEAtcrq/edit?usp=share_link&ouid=117355411294900898171&rtpof=true&sd=true
我在Excel中有一个表,看起来像这样。

我想要的是从数据中创建这个表。

如果这就是我所需要的,那么我可以使用一个数据透视表,但是由于一些不重要的原因,这不是一个可行的解决方案。
我可以使用SUMIF(Category, "Car", Amount)来获取所有汽车的数据,但这不适用于两个变量。
因此,我转到SUMIFS(Table1[Amount], YEAR(Table1[Date]), 2021, Table1[Category], "Car"),但这抛出了一个“此公式错误的问题”,并且不会接受它。顺便说一句,无论我使用单元格引用还是写入条件信息,这都不起作用。
也许使用SUMPRODUCT或数组或其他方法可以找到答案,但这超出了我的能力。
我发现了一个类似于=SUMIFS(Table1[Amount], Table1[Category], "car", Table1[Date], ">=01/01/"&C22, Table1[Date], "<=12/31/"&C22)的解决方案。其中C22是年份“2022”或其他年份,“car”可以很容易地被单元格引用替换。这很有效,但感觉不太优雅。有更好的方法吗?

enyaitl3

enyaitl31#

正如您所说,您可以使用SUMPRODUCT:

=SUMPRODUCT(Table1[Amount], (YEAR(Table1[Date])=2021)*(Table1[Category]="Car"))

注意,使用Office 365 SUMPRODUCT时,可以仅为SUM
或使用SUMIFS,如图所示。

=SUMIFS(Table1[Amount], Table1[Category], "car", Table1[Date], ">=01/01/"&C22, Table1[Date], "<=12/31/"&C22)

您还可以使用(与office 365配合使用):

=SUM(FILTER(Table1[Amount], (YEAR(Table1[Date])=2021)*(Table1[Category]="Car")))

但这只是SUMPRODUCT的一个变体。

相关问题