返回列表 上一主題 發帖

[發問] 列出不相同數值或字串出現次數

[發問] 列出不相同數值或字串出現次數

本帖最後由 jesscc 於 2019-8-4 09:53 編輯

問題在附件敘述
[attach]31120[/attach]

test.rar (7.25 KB)

Jess

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習1#範例方案如下,請各位前輩指教

執行前:


執行結果:



Option Explicit
Sub TEST_1()
Dim Brr, Crr, Y, R&, i&, j%, N&, T1$, T2$, V1&, V2&
Set Y = CreateObject("Scripting.Dictionary")
[E2:F2000].ClearContents
Brr = Range([B7], Cells(Rows.Count, 1).End(3))
ReDim Crr(1 To UBound(Brr), 1 To 2)
For i = 1 To UBound(Brr)
   T1 = Brr(i, 1): T2 = Brr(i, 2)
   If T1 = "" Or Val(T2) = 0 Then GoTo i01
   V1 = Val(T2): V2 = StrReverse(Split(StrReverse(T2), "-")(0))
   For j = V1 To V2
      If Y(T1) = "" Then N = N + 1: Y(T1) = N: Crr(N, 1) = T1
      If Y(T1 & j) = "" Then
         R = Y(T1): Y(T1 & j) = 1: Crr(R, 2) = Crr(R, 2) + 1
      End If
   Next
i01: Next
If N > 0 Then [E2].Resize(N, 2) = Crr
Set Y = Nothing: Erase Brr, Crr
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 10# jesscc


    放大取 >=5  結果一樣   5   9   99    999   均可
google"EXCEL迷"  blog  或google網址:https://hcm19522.blogspot.com/

TOP

hcm19522 發表於 2019-8-5 12:29


h大,我看了您的公式,有一點不明白,就是
E7:E17=IF(ISERR(FIND("-",D7)),(COUNTIFS($A$7:A7,A7,D$7:D7,D7)=1)*1,MID(D7,FIND("-",D7)+1,9)-LEFT(D7,FIND("-",D7)-1)+1)
其中那個9是什麼意思?D欄的資料,總字元長度不是最多也只有5個字元嗎?
Jess

TOP

google"EXCEL迷"  blog  或google網址:https://hcm19522.blogspot.com/

TOP

種類其實不是水果,只有三大類。
小弟VBA很粗淺,我是第一次看到公式搭配程式這樣的寫法。
想請問准大
GetCount 是自定義函數的名稱嗎?
If Arr(i, 1) <> C Or Val(Brr(i, 1)) = 0 這一段完全看不懂
能請准大教一下嗎?
Jess

TOP

以下程式碼放在一般模組:
Function GetCount(xA As Range, xB As Range, C$)
Dim Arr, Brr, xD, i&, j&, B
Set xD = CreateObject("Scripting.Dictionary")
Arr = xA: Brr = xB
For i = 1 To UBound(Arr)
    If Arr(i, 1) <> C Or Val(Brr(i, 1)) = 0 Then GoTo 101
    B = Split(Brr(i, 1) & "-" & Brr(i, 1), "-")
    For j = B(0) To B(1):  xD(j) = 1:  Next j
101: Next
GetCount = xD.Count
End Function


D3/公式:
=IF(B3="","",GetCount(A$7:A$20,D$7:D$20,B3))


資料多的話, 應該會卡
===============================

TOP

回復 5# jesscc


這是實際表格???
種類固定只有3種???

TOP

原表格如附件
test1.rar (7.53 KB)
Jess

TOP

回復 3# jesscc


公式是沒辦法,
表格是什麼樣???  上傳看看~~

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題