带有SumIf()的ArrayFormula()匹配“ This” Row()

时间:2019-02-15 05:32:50

标签: google-sheets

我正在尝试实现以下功能: 在每一行中,查看列B的值(例如)1。然后,如果列C的值也为{例如, )1,并在每行B列中捕获它。

因此,第4,5和6行的G的预期结果分别为3,3和1。

enter image description here

我在想类似的东西(这是伪造的)

G

我也不太确定如何获得“此行”,我知道您可以使用=ArrayFormula(SumIf(RangeForB,THISROW=OTHERROWS,RangeForC)) ,但这将给我索引而不是行的值。据我所知,ROW()INDEX()中也无法使用

非常感谢您的帮助,干杯。

2 个答案:

答案 0 :(得分:1)

=ARRAYFORMULA(MMULT(QUERY(B1:C, 
 "select B, C where B matches '1' and C matches '2'", 0),
 (TRANSPOSE(COLUMN(B1:C1)^0))))

答案 1 :(得分:1)

您可以使用SUMIF,其中条件本身就是一个范围:

=ArrayFormula(filter(sumif(C4:C,C4:C,D4:D),C4:C<>""))

因此,首先对在C列中的值与C4中的数字匹配的所有行(行4和5)求和,然后对与C5中的数字匹配的行(也就是4和5行)求和。匹配C6中的数字(仅适用于第6行)。需要使用过滤器来抑制零,否则零将在第7行及以后出现。

enter image description here