寻找 SUMIFS + Arrayformula 的解决方法

问题描述 投票:0回答:2

我正在尝试制定一个公式来计算日期范围内每支球队每个赛季的总得分(C 列)。

作为公式的参数,我有球队(蓝色、红色、黄色)、开始和结束日期以及赛季。

我遇到的问题是,为了找出该人属于哪个团队,我使用 Filter,它返回一个表。 这与 SUMIF 配合得很好,但不允许我添加任何附加条件。 如果我尝试用 SUMIFS 替换它,它只需要 FILTER 的第一个结果。

Data sample image

这是文件的链接:https://docs.google.com/spreadsheets/d/1TBOYb3ysBvApLrvJH5gOvvucw8c2P78d2F6qWcSZgMQ/edit#gid=0

使用 SUMIF 我尝试了这个:

=arrayformula(SUM(SUMIF(A4:A10,FILTER(G4:G7,H4:H7=D15),C4:C10)))
它几乎可以工作,但我无法将其余条件添加到总和中。

所以我选择了 SUMIFS:

=SUMIFS(C4:C10, A4:A10,FILTER(G4:G7,H4:H7=D15),B4:B10,">="&F15,B4:B10,"<"&G15,D4:D10,E15)
但 SUMIFS 只取 FILTER 的第一个结果。

我正在努力寻找这种方法的替代方法,我已经开始研究 lambda 和 map 组合,但到目前为止还没有成功

google-sheets array-formulas sumifs
2个回答
0
投票

您可以尝试:

=sum(ifna(filter(C4:C10,D4:D10=E15,xlookup(A4:A10,G4:G7,H4:H7,)=D15,isbetween(B4:B10,F15,G15))))


0
投票

您可以尝试

MAP()
然后
SUM()

=SUM(MAP(FILTER(G4:G7,H4:H7=D15),
LAMBDA(x,FILTER(C4:C10,A4:A10=x,B4:B10>=F15,B4:B10<=G15,D4:D10=E15))))

© www.soinside.com 2019 - 2024. All rights reserved.