Excel VBA 对一列数据进行分组并求最大值及最大值的和

有下面以个问题,如图:

Excel VBA 对一列数据进行分组并求最大值及最大值的和

现在有A1到A21有21个数据。有如下三个问题:

问题1:每五行找出最大值,结果如B列。

问题2:每五行找出最大值,结果如C列。

问题3:每五行找出最大值结果总和如D列。

先看两个已经写好的代码:

代码一:常规的解决方案

Excel VBA 对一列数据进行分组并求最大值及最大值的和

代码二:数组的解决方案

Excel VBA 对一列数据进行分组并求最大值及最大值的和

针对问题,对代码进行分析:

1:需要求出最大值,采用之前《Excel VBA 数组的最值、求和、个数统计》提到的max函数

2:每五行分成一组。两个代码采用了相同的方式。

Cells(i, 1).Resize(5)

Resize属性表示调整指定区域的带下,其语法如下:

expression.Resize(RowSize, ColumnSize)

参数expression是必需的,返回要调整大小的Range 对象

参数RowSize是可选的,新区域中的行数。如果省略该参数,则该区域中的行数保持不变。

参数ColumnSize是可选的,新区域中的列数。如果省略该参数。则该区域中的列数保持不变。

本例Resize(5),省略了ColumnSize参数,表示5列数据

3:用if函数,找出与最大值相同的数值,并在B列排出。

4:把得到的最大致,按先后循序,直接排在C列

5:把C列最大用sum函数进行求和。

[d1] = Application.WorksheetFunction.Sum(Range("c:c"))

[d1] 为range("D1")的简写方式。

sum用来求和。

Range("c:c")表示C列


分享到:


相關文章: