Excel VBA質問箱 IV

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

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


47046 / 76736 ←次へ | 前へ→

【34655】Re:カウント方法について
発言  ichinose  - 06/2/9(木) 12:58 -

引用なし
パスワード
   ▼hatena さん:
こんにちは。

>(A列に)より順次下記のようにデータが入ってます。
>3◎
>3×
>3×
>3×
>2◎
>2×

標準モジュールに
'==========================================================
Sub main()
  Dim dic As Object
  Dim crng As Range
  Dim rng As Range
  Dim cnt As Long
  Set rng = Range("a1", Cells(Rows.Count, 1).End(xlUp))
  Set dic = CreateObject("scripting.dictionary")
  With dic
    For Each crng In rng
     If .Exists(CStr(crng.Value)) Then
       .Item(CStr(crng.Value)) = .Item(CStr(crng.Value)) + 1
     Else
       .Add CStr(crng.Value), 1
       End If
     Next
    Range(Cells(rng.Count + 2, 1), Cells(rng.Count + 1 + .Count, 1)).Value = Application.Transpose(.Keys)
    Range(Cells(rng.Count + 2, 2), Cells(rng.Count + 1 + .Count, 2)).Value = Application.Transpose(.Items)
    End With
  Set dic = Nothing
End Sub


>このカウント方法について教えてください。
>尚値は固定ではないので、毎回セルから値をとって、その数を数えたいです。
>っで最終行に
>3◎-1個
>3×-3個...と書かせたい
>
>
>また応用として
>
>(A列に) (B)
>3◎    3
>3×    2
>3×    2  
>3×    1
>2◎    1
>2×    1
>同じく最終行に 
>3◎-3の数1個
>3×-2の数2個
>3×-1の数1個

標準モジュールに
'===============================================================
Sub main2()
  Dim dic As Object
  Dim crng As Range
  Dim rng As Range
  Dim cnt As Long
  Set rng = Range("a1", Cells(Rows.Count, 1).End(xlUp))
  Set dic = CreateObject("scripting.dictionary")
  With dic
    For Each crng In rng
     If .Exists(CStr(crng.Value & "-" & crng.Offset(0, 1).Value)) Then
       .Item(CStr(crng.Value & "-" & crng.Offset(0, 1).Value)) = .Item(CStr(crng.Value & "-" & crng.Offset(0, 1).Value)) + 1
     Else
       .Add CStr(crng.Value & "-" & crng.Offset(0, 1).Value), 1
       End If
     Next
    Range(Cells(rng.Count + 2, 1), Cells(rng.Count + 1 + .Count, 1)).Value = Application.Transpose(.Keys)
    Range(Cells(rng.Count + 2, 2), Cells(rng.Count + 1 + .Count, 2)).Value = Application.Transpose(.Items)
    End With
  Set dic = Nothing
End Sub


いづれも対象シートをアクティブにして実行してみて下さい

0 hits

【34650】カウント方法について hatena 06/2/9(木) 10:47 発言
【34655】Re:カウント方法について ichinose 06/2/9(木) 12:58 発言
【34660】Re:カウント方法について hatena 06/2/9(木) 14:30 質問
【34667】Re:カウント方法について hatena 06/2/9(木) 15:53 質問
【34678】Re:カウント方法について ichinose 06/2/9(木) 18:31 発言
【34710】Re:カウント方法について hatena 06/2/10(金) 12:04 お礼
【34733】Re:カウント方法について hatena 06/2/10(金) 18:21 質問
【34752】Re:カウント方法について ichinose 06/2/10(金) 23:29 発言
【34754】Re:カウント方法について ichinose 06/2/11(土) 5:48 発言
【34796】Re:カウント方法について hatena 06/2/13(月) 11:39 発言
【34805】Re:カウント方法について ichinose 06/2/13(月) 14:33 発言
【34818】Re:カウント方法について hatena 06/2/13(月) 18:42 お礼
【34662】Re:カウント方法について Kein 06/2/9(木) 15:00 回答
【34709】Re:カウント方法について hatena 06/2/10(金) 12:02 質問
【34713】Re:カウント方法について Kein 06/2/10(金) 13:47 回答
【34715】Re:カウント方法について hatena 06/2/10(金) 14:33 質問
【34716】Re:カウント方法について Kein 06/2/10(金) 14:48 回答

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