-
VBA筛选出最大的四行,然后每列求平均,最终得到一行(源代码)
2017-05-23 14:34:04取出很多小区的数据,比如说有7行,根据某列值排序取出前4行的值,然后每列按照这个值平均。VBA通信领域的实际应用。 -
VBA 去掉最大值,最小值,求方差
2015-03-05 10:20:23此算法是从一列数据中去掉最大数值和最小数值,求出总和,平均值,计算出 在cell中填充去掉的最大值,最小值, 总和,平均值和方差. 算法效率有点低,主要解决业务问题了. Public Sub aver() Application....此算法是从一列数据中去掉最大数值和最小数值,求出总和,平均值,计算出
在cell中填充去掉的最大值,最小值, 总和,平均值和方差.
算法效率有点低,主要解决业务问题了.
Public Sub aver()
Application.ScreenUpdating = False
Dim maxCount
maxCount = 10 //最大行数
For k = 0 To 12 //最大的列数
Dim largeIndex
Dim smallIndex
Dim largerValue
Dim smalValue
Dim index
Dim tAvgValue
Dim varianceValue As Double
index = 0
'Largervalue And SmallValue
For Each x In Range(Cells(1, k + 1), Cells(maxCount, k + 1))
If index = 0 Then
largerValue = x
smallValue = x
largerIndex = index
smallIndex = index
End If
If x > largerValue Then
largerValue = x
largerIndex = index
End If
If x < smallValue Then
smallValue = x
smallIndex = index
End If
‘Debug.Print "largerValue: " & largerValue & " x:" & x
index = index + 1
Next x
'Sum Value
Dim sum
sum = 0
Dim arr(0 To 7) //10个数的话,去掉最大,最小就是8的数组
Dim i
i = 0
Dim curIndex
curIndex = 0
For Each x In Range(Cells(1, k + 1), Cells(maxCount, k + 1))
If curIndex = largerIndex Then
ElseIf curIndex = smallIndex Then
Else
sum = sum + x
arr(i) = x
i = i + 1
End If
curIndex = curIndex + 1
Next x
tAvgValue = sum / (maxCount - 2)
Dim sum1 As Double
sum1 = 0
Dim temp
For Each y In arr
If Abs(y) > Abs(tAvgValue) Then
temp = Abs(y) - Abs(tAvgValue)
sum1 = sum1 + temp * temp
Else
temp = Abs(tAvgValue) - Abs(y)
sum1 = sum1 + temp * temp
End If
Next y
varianceValue = Sqr(sum1 / (maxCount - 2))
'MsgBox " largerValue: " & largerValue & "smallValue:" & smallValue & " the sum is :" & sum & " the Avg is :" & sum / 8
Worksheets("Sheet1").Cells(maxCount + 5, k + 1) = "LargerValue: " & largerValue
Worksheets("Sheet1").Cells(maxCount + 6, k + 1) = "smallValue: " & smallValue
Worksheets("Sheet1").Cells(maxCount + 7, k + 1) = "sum: " & sum
Worksheets("Sheet1").Cells(maxCount + 8, k + 1) = "Avg: " & tAvgValue
Worksheets("Sheet1").Cells(maxCount + 9, k + 1) = varianceValue
Next k
Application.ScreenUpdating = True
End Sub
-
利用Excel VBA批量计算长时间序列植被物候动态阈值(逐像元)
2015-11-06 11:10:05本文演示利用Excel VBA编程实现多期栅格数据,逐像元计算物候...(2)动态阈值的实现方法是逐像元计算,(d2-d1)/d1,物候始期求最大值(正),物候末期求最小值(负); (3)sheet里保存38998*24的原始数据,shee本文演示利用Excel VBA编程实现多期栅格数据,逐像元计算物候参数:生长季始期(SOS)、生长季末期(EOS)和生长季长度(LOS),计算过程速度快!
说明:
(1)利用Raster to Point工具将栅格数据转换为点图层,结果为38998个点,由于每年有24个数据(半月合成),所以得到的一年的数据为一个38998行、24列的矩阵;
(2)动态阈值的实现方法是逐像元计算,(d2-d1)/d1,物候始期求最大值(正),物候末期求最小值(负);
(3)sheet里保存38998*24的原始数据,sheet2为比率数据,sheet4为动态阈值及对应的影像期数。
代码如下:
Sub 逐像元阈值() Dim i As Integer Dim max As Double Dim min As Double Dim j As Long For j = 1 To 38998 For i = 1 To 24 If Sheet1.Cells(j, i).Value = 0 Then Sheet1.Cells(j, i).Value = Sheet1.Cells(j, i).Value + 0.000001 End If If Sheet1.Cells(j, i).Value > 1 Then Sheet1.Cells(j, i).Value = 0.8 End If If Sheet1.Cells(j, i).Value < 0 Then Sheet1.Cells(j, i).Value = 0.0000001 End If Next i Next j max = 0 min = 0 For j = 1 To 38998 1: For i = 1 To 23 If Sheet1.Cells(j, 1).Value = "" Then j = j + 1 GoTo 1 End If Sheet2.Cells(j, i).Value = (Sheet1.Cells(j, i + 1).Value - Sheet1.Cells(j, i).Value) / Sheet1.Cells(j, i).Value Next i For i = 1 To 17 max = Application.WorksheetFunction.max(max, Sheet2.Cells(j, i).Value) If Sheet2.Cells(j, i).Value = max Then Sheet4.Cells(j, 1).Value = Sheet1.Cells(j, i + 1).Value Sheet4.Cells(j, 2).Value = i End If Next i max = 0 For i = 16 To 23 min = Application.WorksheetFunction.min(min, Sheet2.Cells(j, i).Value) If Sheet2.Cells(j, i).Value = min Then Sheet4.Cells(j, 4).Value = Sheet1.Cells(j, i).Value Sheet4.Cells(j, 5).Value = i End If Next i min = 0 Next j MsgBox "Done !" End Sub
计算结果:
物候计算结果 刘一哥GIS:专注GIS教育,探索GIS奥秘,分享GIS价值!
-
数据透视表SQL语句入门
2011-05-06 14:10:25加多一列自定义的列A厂: SELECT “A厂” ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$] SELECT “A厂” as 工厂 ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$] 比较一下上面... -
excel的使用
2012-11-25 17:06:01下面给出一个例子:选中一列,然后单击“格式”菜单中的“单元格”命令,在弹出的对话框中选择“数字”选项卡,在“分类”列表中选择“自定义”,然后在“类型”文本框中输入“"正数:"($#,##0.00);"负数:"($ #,##... -
Excel百宝箱9.0无限制破解版.rar
2012-09-05 09:31:51计算参数区域中去除最大值与最小值之再求平均,参数个数有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为... -
surfer9汉化版-单文件未拆分的完整版
2012-04-02 11:35:32的最大网格尺寸10000行和列提高到32767行和列。(对超大量数据的网格化是一个好消息, 比如高程数据体一般都是近亿的数据量) 2、使用了Tabbed(标签)窗口,在工作区顶部显示标签,打开的多个图形窗口,只需要... -
Exce百宝箱——2012版本.rar
2012-10-19 19:52:33计算参数区域中去除最大值与最小值之再求平均,参数个数有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1... -
EXCEL集成工具箱完整版 (简体/繁体/英文多国语言版) V7.0
2010-08-13 10:31:10【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体字... -
-
EXCEL集成工具箱V6.0
2010-09-11 01:44:37【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体... -
Excel百宝箱8.0
2011-06-07 21:32:17计算参数区域中去除最大值与最小值之再求平均,参数个数有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1... -
EXCEL集成工具箱V8.0 多国语言版(2003-2010通用)
2010-09-11 12:08:58【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体... -
EXCEL集成工具箱V8.0完整增强版(精简)
2010-09-23 16:58:17【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体... -
Excel百宝箱 9.0 破解版 批量导入图片等200种功能
2013-05-11 22:46:24计算参数区域中去除最大值与最小值之再求平均,参数个数有255个(Excel2003中是1到30个) hesum左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1/2则按1.5计算 NOWW不改变的当前... -
EXCEL集成工具箱V9.0 多国语言最终原版(2003-2010通用)
2011-01-07 20:40:25【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体... -
《Excel应用大全》示例文件 光盘文件
2012-02-24 15:34:56• 求金额最大的费用项目 • 提取无重复的水果清单 • 计算按原始股折算的某股票最高价格 • 计算用餐记录分摊实例 • 计算最好成绩和的最优成绩实例 • 跨多表条件求和 • 宏表函数取得工作表标签名称 • 标识商品... -
VBSCRIPT中文手册
2010-11-12 10:13:06UBound 函数 返回指定维数数组的最大有效下标。 UCase 函数 返回的字符串已经被转换为大写字母。 Value 属性 返回在搜索字符串中已发现匹配的值或正文。 VarType 常数 定义变体子类型的常数列表。 VarType 函数 ... -
EXCEL百宝箱8.0终极版
2011-11-05 16:48:02计算参数区域中去除最大值与最小值之再求平均,参数个数有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1... -
vb Script参考文档
2009-07-28 22:13:02UBound 函数 返回指定维数数组的最大有效下标。 UCase 函数 返回的字符串已经被转换为大写字母。 Value 属性 返回在搜索字符串中已发现匹配的值或正文。 VarType 常数 定义变体子类型的常数列表。 VarType 函数 ... -
中文版Excel.2007公式与函数应用宝典 1/2
2012-04-06 18:29:447.5.3 求n个最大值的和 7.5.4 使用单个条件求和 7.5.5 只对负值求和 7.5.6 根据范围Difference的值求和 7.5.7 基于文本的比较结果求和 7.5.8 基于日期的比较结果求和 7.6 使用多重条件求和 7.6.1 使用AND... -
中文版Excel.2007公式与函数应用宝典 2/2
2012-04-06 18:37:147.5.3 求n个最大值的和 7.5.4 使用单个条件求和 7.5.5 只对负值求和 7.5.6 根据范围Difference的值求和 7.5.7 基于文本的比较结果求和 7.5.8 基于日期的比较结果求和 7.6 使用多重条件求和 7.6.1 使用AND... -
《Excel实战技巧精粹》示例文件 光盘文件
2012-02-24 15:37:04├─第2篇-基本功能 │ ├─第10章-打印 │ │ line.bmp │ │ Thumbs.db ...│ │ 技巧305 始终突出显示最大值和最小值.xls │ │ 技巧306 画趋势线并显示趋势线公式.xls │ │ 技巧307 动态图表——辅助列.... -
surfer 9.11汉化版.part2
2011-03-23 08:44:20的最大网格尺寸10000行和列提高到32767行和列。(对超大量数据的网格化是一个好消息, 比如高程数据体一般都是近亿的数据量) 2、使用了Tabbed(标签)窗口,在工作区顶部显示标签,打开的多个图形窗口,只需要... -
surfer 9.11 汉化.part1
2011-03-23 08:46:07的最大网格尺寸10000行和列提高到32767行和列。(对超大量数据的网格化是一个好消息, 比如高程数据体一般都是近亿的数据量) 2、使用了Tabbed(标签)窗口,在工作区顶部显示标签,打开的多个图形窗口,只需要... -
surfer9.11汉化.part3
2011-03-23 08:47:20的最大网格尺寸10000行和列提高到32767行和列。(对超大量数据的网格化是一个好消息, 比如高程数据体一般都是近亿的数据量) 2、使用了Tabbed(标签)窗口,在工作区顶部显示标签,打开的多个图形窗口,只需要...