Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


21059 / 76732 ←次へ | 前へ→

【61079】Re:VBAのCountif処理を高速にしたい
発言  Yuki  - 09/4/8(水) 14:54 -

引用なし
パスワード
   ▼質問者 さん:

ディクショナリで処理して見ました。
数秒で終わると思います。
未検証です。

Sub TESTaa()
  Dim i  As Long
  Dim v1 As Variant
  Dim v2 As Variant
  Dim v3 As Variant
  Dim Dic As Object
  
  v1 = Range("Q2:Q274872").Value
  v2 = Range("A2:A274872").Value
  ReDim v3(1 To UBound(v2), 1 To 1)
  Set Dic = CreateObject("Scripting.Dictionary")
  ' 最初に同じ物は合計して置く
  For i = 1 To UBound(v1)
    If Dic.Exists(v1(i, 1)) Then
      Dic(v1(i, 1)) = Dic(v1(i, 1)) + 1
    Else
      Dic(v1(i, 1)) = 1
    End If
  Next
  ' 全件チェックあったら数量をセット
  For i = 1 To UBound(v2)
    If Dic.Exists(v2(i, 1)) Then
      v3(i, 1) = Dic(v2(i, 1))
    End If
  Next
  Range("S2").Resize(UBound(v3)).Value = v3
End Sub

1 hits

【61078】VBAのCountif処理を高速にしたい 質問者 09/4/8(水) 14:00 質問
【61079】Re:VBAのCountif処理を高速にしたい Yuki 09/4/8(水) 14:54 発言
【61082】Re:VBAのCountif処理を高速にしたい 質問者 09/4/8(水) 16:20 お礼

21059 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free