Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA,countif函数_Excel_Vba - Fatal编程技术网

Excel VBA,countif函数

Excel VBA,countif函数,excel,vba,Excel,Vba,在解释我目前的问题之前,我想说我对excel和vba的经验很少;因此,我在这里的斗争可能看起来很愚蠢,但它是天才的 我有一列,其中的值范围从0到6500。我想计算超过100、200、300的值的数量。。。6500并绘制给定数字与100的对比图。200300等 在excel上,我可以简单地使用函数countif函数,但我想根据该函数调用大部分值,而且,这将非常费劲 我正在考虑一个简单的循环,它将计算每个数据的值,然后将结果写在特定的列上,但我不知道如何做到这一点 非常欢迎提供任何帮助或提示。您可以

在解释我目前的问题之前,我想说我对excel和vba的经验很少;因此,我在这里的斗争可能看起来很愚蠢,但它是天才的

我有一列,其中的值范围从0到6500。我想计算超过100、200、300的值的数量。。。6500并绘制给定数字与100的对比图。200300等

在excel上,我可以简单地使用函数countif函数,但我想根据该函数调用大部分值,而且,这将非常费劲

我正在考虑一个简单的循环,它将计算每个数据的值,然后将结果写在特定的列上,但我不知道如何做到这一点


非常欢迎提供任何帮助或提示。

您可以通过将值按100分组来解决数据透视表的问题。

Inoiae对此有一个很好的解决方案-按100分组的数据透视表可能是最好的方法,但由于您询问的是VBA,您可以这样做:

Sub CreateNumbers()
'this will populate the worksheet with column 1 being numbers 1 - 65535
    Dim topNum&
    topNum = 65535
    Dim rA(topNum, 0)

    For i = LBound(rA) To UBound(rA)
        rA(i, 0) = i
    Next i

    ActiveSheet.Range(Cells(1, 1), Cells(topNum + 1, 1)) = rA

End Sub

Sub countifIteration()
'this will output the number based on criteria
    Dim rA
    rA = ActiveSheet.UsedRange
    '& dim as long
    Dim Cols&, maxNum&, i&

    'defines maximum number of columns for plotting counts
    maxNum = Application.WorksheetFunction.Max([a:a])
    Cols = maxNum / 100

    ReDim rA2(1, Cols)
    For i = LBound(rA2, 2) To UBound(rA2, 2)
        rA2(0, i) = CLng(i & "00")
        For j = LBound(rA) To UBound(rA)
            If rA(j, 1) > rA2(0, i) Then rA2(1, i) = rA2(1, i) + 1
        Next j
    Next i

    Range(Cells(1, 3), Cells(2, Cols + 3)) = rA2

End Sub

你能提供一个数据样本和你期望得到的结果吗?据我所知,excel中的CountIf()或其vba对应工作表函数。CountIf()似乎是合适的工具。由于它是一个可写入的CountIf,所以我希望它是一个累积分布函数(对数)。我从未在excel中见过此选项,它实际上可以工作。谢谢你的提示!杰出的这正是我所需要的,一个注释良好的代码,在这里我可以掌握VBA语言。