麻辣家族討論版版's Archiver

oak0723-1 發表於 2022-4-26 22:42

計算特定區間有顯示的儲存格個數

如附件壓縮檔
只要A欄位有顯示之區間就計算該區間的C欄位及E欄位裡有顯示的儲存格個數
直到找不到後續的A欄位儲存格有顯示為止(A~E欄位有顯示的列數為不一定)
例如附件圖片所示
A3儲存格有顯示,A20儲存格有顯示,所以計算C3~C19及E3~E19儲存格顯示的個數
1>L3儲存格內容等於A3儲存格格內容
2>M3儲存格內容等於B3儲存格格內容
3>N3儲存格內容等於C3~C19儲存格顯示的個數
4>O3儲存格內容等於E3~E19儲存格顯示的個數
以下類推

samwang 發表於 2022-4-27 09:33

[i=s] 本帖最後由 samwang 於 2022-4-27 09:34 編輯 [/i]

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=118711&ptid=23642]1#[/url] [i]oak0723-1[/i] [/b]

請測試看看,謝謝
Sub test()
Dim Arr, Brr(), i&, i2&
Arr = [a2].CurrentRegion
ReDim Brr(1 To UBound(Arr), 1 To 6)
For i = 2 To UBound(Arr)
    If Trim(Arr(i, 1)) <> "" Then
        Brr(i - 1, 1) = Arr(i, 1): Brr(i - 1, 2) = Arr(i, 2)
        If Trim(Arr(i, 3)) <> "" Then Brr(i - 1, 3) = 1
        If Trim(Arr(i, 5)) <> "" Then Brr(i - 1, 4) = 1
        For i2 = i + 1 To UBound(Arr)
            If Trim(Arr(i2, 1)) <> "" Then Exit For
            If Trim(Arr(i2, 3)) <> "" Then Brr(i - 1, 3) = Brr(i - 1, 3) + 1
            If Trim(Arr(i2, 5)) <> "" Then Brr(i - 1, 4) = Brr(i - 1, 4) + 1
        Next
        Brr(i - 1, 5) = Brr(i - 1, 2) / Brr(i - 1, 3)
        Brr(i - 1, 6) = Brr(i - 1, 2) / Brr(i - 1, 4)
    End If
Next
Range("L3").Resize(UBound(Brr), 6) = Brr
End Sub

hcm19522 發表於 2022-4-27 11:14

[url]https://blog.xuite.net/hcm19522/twblog/590359821[/url]

oak0723-1 發表於 2022-4-29 21:34

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=118712&ptid=23642]2#[/url] [i]samwang[/i] [/b]


  謝謝~感恩~

oak0723-1 發表於 2022-4-30 06:20

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=118713&ptid=23642]3#[/url] [i]hcm19522[/i] [/b]

抱歉,我不太懂如何使用(如附件檔案)

准提部林 發表於 2022-4-30 09:05

Sub TEST_A1()
Dim Arr, Brr, R&, i&, j%, V, S&, X(6)
R = Range("a:e").Find("*", , , , 1, 2).Row
Arr = Range("a2:e" & R + 1)
ReDim Brr(1 To R, 1 To 6)
For i = 2 To R - 1
    If Trim(Arr(i, 1)) <> "" Then
       X(1) = Trim(Arr(i, 1)): X(2) = Trim(Arr(i, 2)):  S = i - 1
       For j = 3 To 6: X(j) = 0: Next
    End If
    X(3) = X(3) - (Trim(Arr(i, 3)) <> ""): X(5) = X(2) / X(3)
    X(4) = X(4) - (Trim(Arr(i, 5)) <> ""): X(6) = X(2) / X(4)
    If Trim(Arr(i + 1, 1)) <> "" Or i = R - 1 Then
       For j = 1 To 6: Brr(S, j) = X(j): Next
    End If
Next i
[l3].Resize(R, 6) = Brr
End Sub


'==========================

oak0723-1 發表於 2022-4-30 10:51

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=118732&ptid=23642]6#[/url] [i]准提部林[/i] [/b]


    謝謝
感恩
感恩

hcm19522 發表於 2022-4-30 10:59

[b]回復 [url=http://forum.twbts.com/redirect.php?goto=findpost&pid=118730&ptid=23642]5#[/url] [i]oak0723-1[/i] [/b]

數據空白 非全空白 {=IF($A2=" ","",IF(COLUMN(A1)<3,A2,SUM(N(LEN(OFFSET(A2,,,-LOOKUP(9,-MATCH(1=1,$A3:$A22<>" ",{1,0}))))>1))))

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供