精华内容
下载资源
问答
  • 取出很多小区的数据,比如说有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编程实现多期栅格数据,逐像元计算物候...(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价值! 

    展开全文
  • 加多一列自定义列A厂: SELECT “A厂” ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$] SELECT “A厂” as 工厂 ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$] 比较一下上面...
  • excel使用

    2012-11-25 17:06:01
    下面给出一个例子:选中一列,然后单击“格式”菜单中“单元格”命令,在弹出对话框中选择“数字”选项卡,在“分类”列表中选择“自定义”,然后在“类型”文本框中输入“"正数:"($#,##0.00);"负数:"($ #,##...
  • 计算参数区域中去除最大值与最小值之再平均,参数个数有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型数字换算成1.5类型数据后再求和;若为12则按12计算,若为...
  • 的最大网格尺寸10000行和提高到32767行和。(对超大量数据的网格化是个好消息, 比如高程数据体一般都是近亿的数据量) 2、使用了Tabbed(标签)窗口,在工作区顶部显示标签,打开的多个图形窗口,只需要...
  • 计算参数区域中去除最大值与最小值之再平均,参数个数有255个(Excel2003中是1到30个)。 函数名称:hesum 函数功能与参数:左右合并再求和。将1/2类型数字换算成1.5类型数据后再求和;若为12则按12计算,若为1...
  • 【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【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...
  • 【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体...
  • 【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体...
  • 计算参数区域中去除最大值与最小值之再平均,参数个数有255个(Excel2003中是1到30个) hesum左右合并再求和。将1/2类型数字换算成1.5类型数据后再求和;若为12则按12计算,若为1/2则按1.5计算 NOWW不改变当前...
  • 【综合计算显示】 综合计算并显示选中区域存储格的最大值、最小值、平均值、求和、存储格个数、筛选状态下的的加总求和,以及显示选区包含的数字、字符、汉字的个数等信息。 【GB2转BIG5】 将选中区域存储格的简体...
  • 金额最大的费用项目 • 提取无重复水果清单 • 计算按原始股折算某股票最高价格 • 计算用餐记录分摊实例 • 计算最好成绩和最优成绩实例 • 跨多表条件求和 • 宏表函数取得工作表标签名称 • 标识商品...
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    UBound 函数 返回指定维数数组的最大有效下标。 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:02
    UBound 函数 返回指定维数数组的最大有效下标。 UCase 函数 返回的字符串已经被转换为大写字母。 Value 属性 返回在搜索字符串中已发现匹配的或正文。 VarType 常数 定义变体子类型的常数列表。 VarType 函数 ...
  • 7.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...
  • 7.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...
  • ├─第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(标签)窗口,在工作区顶部显示标签,打开的多个图形窗口,只需要...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

vba求一列数据的最大值