みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

数字の最終出現回の表示

どなたかご存じでしたら回答をお願いします。
数字選択式宝くじロト6、ミニロトの抽選結果をエクセルにつけております。
それを利用して、1~43迄の数字が最新抽選回数から遡っていき、
最後に出た抽選回を表示する&”塗りつぶしする”方法が知りたいです。

【例:抽選結果シート】 ※621回を最新抽選回数とする。

抽選回 第1数字 第2数字 第3数字 第4数字 第5数字 第6数字 ボ数字
                       :
611    2      12     18     24      31     39     16
612    7      18     30     32      39     40     35
613    2      6      18     26      32     37     5
614    2      4      22     25      35     41     1
615    6      16     24     32      35     43     28
616    3      7      18     19      24     35     17
617    5      17     18     28      31     36     10
618    4      15     18     31      35     42     13
619    1      11     29     31      33     38     14
620    7      10     18     19      35     38     12
621    2      15     16     28      35     40     20

【最終出現回シート】
1:619
2:621
3:616
4:614

15:621
16:621
17:617
18:620
19:620

29:619
30:612
31:619

35:621
36:617
37:613

40:621
41:614
42:618
43:615

【注意事項】
 ・抽選結果シートは第1回抽選から最新抽選回まで入力されています。
 ・最新抽選結果を追加すると、1~43全ての数字について最終出現回シートに抽選回が
  得られるまで最新抽選回から遡る。
 ・1~43全ての数字について最終出現回の抽選結果にある該当数字を”塗りつぶし”する。
 ・ボーナス数字は最終出現回の対象外です。
 ・最終出現回シートの数字は1~43迄です。
 ・エクセルは2007です。

投稿日時 - 2012-01-14 22:06:18

QNo.7244678

すぐに回答ほしいです

質問者が選んだベストアンサー

言わずもがな抽選結果シートのA列に回数,BCDEFG列に1~6番の数字を記入しているとする


最後に出た回の計算:
最終回シートのA1に数字の1,A2に数字の2…と43まで記入しておく
最終回シートのB1に
=INDEX(抽選結果!A:A,MAX(IF(抽選結果!B:G=A1,ROW(抽選結果!B:G))))
と記入してコントロールキーとシフトキーを押しながらEnterで入力する
B2以下にコピー貼り付ける。



最後に出たセルの塗りつぶし:
抽選結果のB:G列を列選択する
B1がアクティブセル(選択範囲の中で逆反転状態になっているセル)になっている事を,必ず,確認してから
ホームタブの条件付き書式▼を開始する

新しいルールを選び
数式を利用して書式設定…を選び
下の空欄に
=(B1<>"")*(COUNTIF($B$1:$G1,B1)=COUNTIF($B:$G,B1))
と記入し,書式ボタンで色を付ける。

#注意:$の有り無しがややこしいので絶対に間違えないこと

投稿日時 - 2012-01-14 22:34:22

お礼

いつもお世話になります。
また、早速のご回答ありがとうございます。
簡単そうでややこやしそうですね。
できれば、実行されたサンプルを貼り付けて頂けるとありがたいです。

投稿日時 - 2012-01-14 23:36:37

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんばんは!
VBAでの一例です。

Sheet1が【最終出現回シート】・Sheet2が【最終出現回シート】とします。
Sheet2のA列には↓の画像のように2行目以降に1~43の数値が入っているものとします。
そして、Sheet1の最終出現データを「赤」にしてみました。

Sheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, j, k As Long
Dim ws As Worksheet
Set ws = Worksheets(2) '←Sheet2が「最終出現回シート」とします。
Application.ScreenUpdating = False
i = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(2, 1), Cells(i, 7)).Interior.ColorIndex = xlNone
For j = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Range(Cells(i, 2), Cells(i, 7)), ws.Cells(j, 1)) Then
ws.Cells(j, 2) = Cells(i, 1)
End If
Next i
Next j
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For k = 2 To 7
For j = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = ws.Cells(j, 2) And Cells(i, k) = ws.Cells(j, 1) Then
Cells(i, k).Interior.ColorIndex = 3
End If
Next j
Next k
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ Sheet1のデータ変更があるたびにマクロを実行する必要がありますので、
ご希望の方法でなかったらごめんなさいね。m(_ _)m

投稿日時 - 2012-01-15 01:17:13

お礼

いつもお世話になります。
そして、”気持ち”の解ったご回答ありがとうございます。
実行結果を添付して頂き、とても解りやすいです。

投稿日時 - 2012-01-15 09:01:46

あなたにオススメの質問