【问题标题】:Sum of specific number of rows for a id in excelexcel中id的特定行数之和
【发布时间】:2018-05-11 10:49:20
【问题描述】:

我对 excel 公式很陌生。我想计算每个唯一 ID 的价格总和。使用SUMIF,我可以为每个唯一的 id 做到这一点,但我只想计算该 id 的行数之和。

=SumIF(A:A;C2;B:B)

附上样本数据。实际数据集相当大。例如,对于Id 1,我只想计算与该id对应的前3行(列价格)的总和,对于id 2,我只想计算前4行的总和等等。

样本数据:

【问题讨论】:

  • 那么你首先必须确定你想让你的公式工作的范围。如果我按照你的逻辑,并取前 4 行来检查 ID2,将找不到匹配项。
  • 对了,你有什么想法可以在这里定义范围
  • 您可以在结果中使用VloopkupIndirect() 将单元格值包含到您的参考中。就像=Countif(Indirect("A1:A"&D4),C2,Indirect("B1:B"&D4)) 一样,您可以用 vlookup 替换 D4

标签: excel excel-formula


【解决方案1】:

此公式适用于已排序和未排序的数据:

=SUMIF($A$2:INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$20)/($A$2:$A$20=C2),D2)),C2,$B$2:INDEX(B:B,AGGREGATE(15,6,ROW($A$2:$A$20)/($A$2:$A$20=C2),D2)))

【讨论】:

  • 不错。稍作修改以检查匹配项少于指定行数(或没有匹配项)的情况:=IFERROR(SUMIF($A$2:INDEX($A$1:$A$20,AGGREGATE(15,6,ROW($A$2:$A$20)/($A$2:$A$20=C2),MIN(D2,COUNTIF($A$2:$A$20,C2)))),C2,$B$2:$B$20),0)
【解决方案2】:

将此作为数组公式输入 (ctrl+shift+enter):

=IFERROR(SUMPRODUCT(IF(ROW($A$2:$A$20)>SMALL(IF($A$2:$A$20=C2,ROW($A$2:$A$20),FALSE),MIN(D2,COUNTIF($A$2:$A$20,C2))),0,1),IF($A$2:$A$20=C2,1,0),$B$2:$B$20),0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多