Board logo

標題: [發問] 如何列出指定重複次數以內的資料呢? [打印本頁]

作者: starry1314    時間: 2019-3-26 09:17     標題: 如何列出指定重複次數以內的資料呢?

1.需要列出 項目名稱 重複出現次數是在指定的數字內的資料

目前是用SQL語法 列出 群組計算有哪些品項符合,在由這些資料去進行查詢
但語法串的密密麻麻....變得很難維護
[attach]30305[/attach]
[attach]30306[/attach]
作者: ikboy    時間: 2019-3-26 10:28

  1. Sub zz()
  2. Dim d As Object, a, k, t, n&
  3. Set d = CreateObject("scripting.dictionary")
  4. a = [a1].CurrentRegion.Value
  5. For i = 1 To UBound(a)
  6.     k = a(i, 2)
  7.     If Not d.exists(k) Then
  8.         d(k) = Array("|" & i, a(i, 3))
  9.     Else
  10.         t = d(k)
  11.         t = Array(t(0) & "|" & i, t(1) + a(i, 3))
  12.         d(k) = t
  13.     End If
  14. Next
  15. t = d.items
  16. For i = 0 To UBound(t)
  17.     k = Split(t(i)(0), "|")
  18.     If UBound(k) < 6 Then
  19.         For ii = 1 To UBound(k)
  20.             n = n + 1
  21.             For j = 1 To UBound(a, 2)
  22.                 a(n, j) = a(k(ii), j)
  23.             Next
  24.         Next
  25.     End If
  26. Next
  27. [h2].Resize(n, j - 1) = a
  28. End Sub
複製代碼

作者: hcm19522    時間: 2019-3-26 10:35

https://blog.xuite.net/hcm19522/twblog/587182470
作者: starry1314    時間: 2019-3-26 15:51

回復 2# ikboy


    感謝~符合需求
想請問 "|" 這個的用意是?
作者: starry1314    時間: 2019-3-26 15:53

回復 3# hcm19522
感謝~雖然有達到目標
但因為數量有數萬列,使用函數會運算很久


還是感謝幫忙了!
作者: ikboy    時間: 2019-3-27 09:06

回復 4# starry1314


    是分隔符。
作者: 准提部林    時間: 2019-3-28 10:15

Sub TEST()
Dim Arr, xD, N&, i&, j%
Arr = Range([A1], [B65536].End(xlUp)(1, 2))
Set xD = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Arr)
    xD(Arr(i, 2) & "") = xD(Arr(i, 2) & "") + 1
Next
For i = 2 To UBound(Arr)
    If xD(Arr(i, 2) & "") > 5 Then GoTo 101
    N = N + 1
    For j = 1 To 3: Arr(N + 1, j) = Arr(i, j): Next
101: Next
If N > 0 Then [H2].Resize(N + 1, 3) = Arr
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)