Excel:使用OFFSET计算的动态SUM

时间:2018-03-03 11:22:52

标签: excel excel-vba excel-formula sum powerbi vba

我需要从csv文件中包含的大数据集(> 100k行)中创建数据块的动态总和。计划在PowerBI中显示数据,但我完全不知道DAX编码语言或VBA。所以我希望我可以预先格式化excel中的数据。

区分我想要总结的数据子集的方法是计数行。行以1中的每个新子集开始,但最终的数字> = 1完全是“随机的”。

第一行是countingRow,第二行是dataRow。

> 1    45 
  2    20
  3    20 
  4    10   -> SUM 95 
> 1    30 
  2     5   -> SUM 35 
> 1     X   -> new SUM

我认为可以使用 SUM,IF OFFSET 功能。 我的计划是检查一个单元格是否包含1。检查两个真值减一个单元格之间的范围,然后计算另一列中的偏移量总和。 但当我认为我找到解决方案时,我意识到我无法将指针指向新的数据子集。

我需要哪个函数来移动我的计算?

甚至可以在excel中计算这个比例吗?

PS:我虽然感谢DAX或VBA教程,它可以带给我一个解决方案。

2 个答案:

答案 0 :(得分:4)

在以下示例数据图像中,请在D2中使用以下公式。

=IF(OR(A3={1,""}), SUM(INDEX(B:B, AGGREGATE(14, 6, ROW($1:2)/(A$1:A2=1), 1)):INDEX(B:B, ROW())), TEXT(,))

填写。

enter image description here

答案 1 :(得分:3)

没有数组类型公式的略短的公式:

=IF(OR(A3={1,""}),SUM($B$2:B2)-SUM($C$1:C1),"")

enter image description here