..
但資料太長不適用,Application.Transpose 能處理的大小有上限
Sub test()
Dim s, i As Integer
s = Split(Join(Application.Transpose(Application.Transpose(Range("b5:r5").Value)), ""), "/")
For i = 0 To UBound(s)
s(i) = Right(s(i), 1)
Next i
Range("b8:r8").Value = ""
Range("b8").Resize(, UBound(s) + 1) = s
End Sub
資料量不固定的話,2樓高手的寫法,才是最安全、不會出錯的方法
f10629 wrote:
我算的是每個區間的格子數
三樓大大取的是每個區間最右方的文字...(恕刪)
重新看一次圖片
我認為您是對的,他要的是格子數
我被範例誤導,很巧的是每區間最後一格的值,剛好是區間格子數
為什麼不用a、b、c
……如果每格只有一個字,程式碼改一行,s(i) = Len(s(i))
2019/9/19 08:00 補充
如果字數不固定,不用vba,改用公式

資料範圍,暫定$B$5:$Z$5
建議最後多加上一個 "/",這樣公式比較好寫,暫時想不到比較短的,請參考
B8=IFERROR((SMALL(IF($B$5:$Z$5="/",MATCH(COLUMN($B$5:$Z$5),COLUMN($B$5:$Z$5),0),""),COLUMN(A$1))-IFERROR(SMALL(IF($B$5:$Z$5="/",MATCH(COLUMN($B$5:$Z$5),COLUMN($B$5:$Z$5),0),""),COLUMN(A$1)-1),0)-1),"")
(陣列公式,其它往右拉)
1.最後設定範圍的最後一個儲存格須為「/」。
2.超過統計數量的儲存格會自動填入0。

1、點取B8儲存格輸入公式:
=COUNT(OFFSET($A5,0,SUMPRODUCT(LARGE(($B5:$T5="/")*COLUMN($B5:$T5),COUNTIF($B5:$T5,"/")+3-COLUMN())),1,SUMPRODUCT(LARGE(($B5:$T5="/")*COLUMN($B5: $T5),COUNTIF($B5:$T5,"/")+2-COLUMN()))-SUMPRODUCT(LARGE(($B5:$T5="/")* COLUMN ($B5:$T5),COUNTIF($B5:$T5,"/")+3-COLUMN()))))
再將公式複製到C8:E13及B15:E15儲存格。
錦色如月,子耀光芒。
內文搜尋
X





























































































