簡體   English   中英

比較並計算Excel中的連續數據

[英]Compare and count consecutive data in Excel

我正在嘗試制作一個Excel宏來比較和計算同一列中的數據。

具體來說,我只想計算一個單元格和該單元格下面的單元格的絕對值都小於100。

最終目標:說下面的列是我擁有的數據,

241.197
96.747
88.325
156
53.666
55.372
-45.667
-207.152

我希望宏返回2的值。它需要計數[96.747 88.325]

[53.666 55.372 -45.667]

假設您有A列,數據從A1開始

sub countTotal

    dim i as integer
    dim sum as double
    dim count as integer

    for i = 1 to Cells(Rows.Count, "A").End(xlUp).row

        sum = Abs(Range("A" & i).Value) + Abs(Range("A" & i + 1).Value)
        if sum < 100 then count = count + 1
    next

    msgbox count
end sub

未經測試。 您應該查看它是否計算了列中的最后一個值+空值(如果存在),然后將循環縮短1。

Sub countTotal()

Dim i As Integer
Dim sum As Double
Dim count As Integer

For i = 1 To Cells(Rows.count, "A").End(xlUp).Row
    If Abs(Range("A" & i).Value) < 100 And Abs(Range("A" & i + 1).Value) < 100 Then
        count = count + 1
    Else
        count = count
    End If
Next

MsgBox count
End Sub

根據您的代碼,這就是我想到的。 如果數據如下所示,則效果很好:

120
70
-90
110
80
60

在這種情況下,宏將返回值2。

問題是我的一些數據如下所示:

100
-80
90
70
-180
-190

宏返回2值,因為它計數為[-80 90]和[90 70]。 但是我想這樣做,以便當連續數據集的絕對值都小於100時,宏會將其計數為1。因此,理想情況下,在這種情況下宏應該返回1,而不是返回2作為值。

你能指引我正確的方向嗎? 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM