Excel VBA質問箱 IV

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

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


872 / 13644 ツリー ←次へ | 前へ→

【77817】点数のランキング まさひで 15/12/31(木) 14:53 質問[未読]
【77819】Re:点数のランキング マナ 15/12/31(木) 23:08 発言[未読]
【77822】Re:点数のランキング γ 16/1/2(土) 7:27 発言[未読]

【77817】点数のランキング
質問  まさひで  - 15/12/31(木) 14:53 -

引用なし
パスワード
   ロト6のデータベースを作成しています。過去の当選番号の6個数字を全て入力して、あるセルに当選の多かった数字ランキングベスト5と、それが何回当選されたのかを表示させたいのですが、何分にもかじりはじめで、ほとんど知識がなく分かりません。教えてくだされば幸いです。

【77819】Re:点数のランキング
発言  マナ  - 15/12/31(木) 23:08 -

引用なし
パスワード
   ▼まさひで さん:

1)データを1個ずつ辞書に登録
2)新規シートに登録結果を書き出し
3)回数の多い順に並べ替え
4)回数の多いものトップ5でフィルター

Sub test()
  Dim dic As Object
  Dim c As Range
  
  Set dic = CreateObject("scripting.dictionary")
  
  For Each c In Range("a1").CurrentRegion   '★データ範囲
    dic(c.Value) = dic(c.Value) + 1
  Next
  
  With Worksheets.Add
    .Range("a1:b1").Value = Array("番号", "回数")
    .Range("a2").Resize(dic.Count).Value = WorksheetFunction.Transpose(dic.keys)
    .Range("b2").Resize(dic.Count).Value = WorksheetFunction.Transpose(dic.items)
    
    With .Range("a1").CurrentRegion
      .Sort Key1:=.Columns(2), Order1:=xlDescending, Header:=xlYes
      .AutoFilter Field:=2, Criteria1:="5", Operator:=xlTop10Items
    End With
  End With

End Sub

【77822】Re:点数のランキング
発言  γ  - 16/1/2(土) 7:27 -

引用なし
パスワード
   ▼まさひで さん:
>ロト6のデータベースを作成しています。過去の当選番号の6個数字を全て入力して、あるセルに当選の多かった数字ランキングベスト5と、それが何回当選されたのかを表示させたいのですが、何分にもかじりはじめで、ほとんど知識がなく分かりません。教えてくだされば幸いです。

詰まっているのはどこですか?
丸投げではなくて、困っているところを具体的に質問した方が
良いと思いますよ。

マクロでなくても、手作業で可能だと思います。
COUNTIF(データ範囲、数値)で数値がデータ範囲にいくつあるかを計算できます。
あとは普通に個数でソートすればいいですね。

余談ですけど、
一つの数値の出現回数がわかっても、6つの数値の組み合わせですからねえ。
練習問題かなにかですか?

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