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

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

解決済みの質問

数字出現数の印付け

どなたかご存じでしたら回答をお願いします。
数字選択式宝くじロト6、ミニロトの抽選結果をエクセルにつけております。
それを利用して、◎、○、△を付ける方法が知りたいです。

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

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

【出現数カウント範囲】 11
【出現数シート】
1 2 3 4 5 6 7 8 9 10 11 …18 19 20 … 29 30 31… 35 36 37 38 39 40 41 42 43
 ◎     △        △           ○  ○

【注意事項】
 ・抽選結果シートは第1回抽選から最新抽選回まで入力されています。
 ・出現数カウント範囲に数字(1~99)迄を入力すると、最新抽選回数から遡った抽選結果迄を
  範囲として出現数シートのカウント数字の対象とします。
 ・出現シートの印(◎、○、△)は下記のルールでつきます。
   ◎ ・・・ 出現数が6回。
   ○ ・・・ 出現数が5回と7回。
   △ ・・・ 出現数が4回と8回。
  ※ボーナス数字は出現数にカウントしない。
  ※上記以外の出現数は、SPACEとする。
 ・出現数シートの数字は1~43迄です。
 ・エクセルは2007です。

投稿日時 - 2012-01-09 15:00:51

QNo.7234298

すぐに回答ほしいです

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

既に回答は出ていますが、Offset関数の使い方が理解できましたか?
Sumproduct関数を使った別案です。
カウント範囲のA2セルに集計したい範囲の行番号が入っているとして

=SUMPRODUCT((A1=抽選結果!$B2:$H14)*(ROW(抽選結果!$B2:$H14)<カウント範囲!$A2))
と入れて右へコピーすれば、
A1=抽選結果!$B2:$H14) の条件と
ROW(抽選結果!$B2:$H14)<カウント範囲!$A2) の条件が満たされたセルの数が出ます。

後は、NO2の方の様にCHoose関数を使って希望するマークにしてください。
=CHOOSE(SUMPRODUCT((A1=抽選結果!$B2:$H14)*(ROW(抽選結果!$B2:$H14)<カウント範囲!$G1))+1,"","","","","△","○","◎","○","△","","","","")
こんな感じでしょうか。

投稿日時 - 2012-01-09 19:09:52

お礼

ご回答ありがとうございます。
またSumproduct関数という今まで使った事が無い関数を教えて頂きありがとうございます。

投稿日時 - 2012-01-09 19:40:25

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

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

回答(5)

ANo.5

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set WS01 = Sheets("抽選結果")
Set WS02 = Sheets("出現数")

COUNTAREA1 = WS01.Cells(Rows.Count, 1).End(xlUp).Row - WS02.Range("C2") + 1
COUNTAREA2 = WS01.Cells(Rows.Count, 1).End(xlUp).Row

For INP1 = 3 To 7 Step 2
For INP2 = 4 To 23
If IsEmpty(WS02.Cells(INP2, INP1 - 1)) Then
Exit For
Else
WS02.Cells(INP2, INP1).FormulaR1C1 = "=COUNTIF(抽選結果!R" & COUNTAREA1 & "C2:R" & COUNTAREA2 & "C7,RC[-1])"
Select Case WS02.Cells(INP2, INP1)
Case 6
WS02.Cells(INP2, INP1) = "◎"
Case 5, 7
WS02.Cells(INP2, INP1) = "○"
Case 4, 8
WS02.Cells(INP2, INP1) = "△"
Case Else
WS02.Cells(INP2, INP1) = ""
End Select
End If
Next INP2
Next INP1
End Sub
'Alt+F11キーを押して左上の出現数のシートをダブルクリックして貼り付けてください。
'シート名は適宜変更して下さい。
'セルC2にカウント範囲を入力すると結果が出るようになっています。

投稿日時 - 2012-01-09 20:24:14

お礼

ご回答ありがとうございます。
VBAではこのように記述するのですね。
参考になります。

投稿日時 - 2012-01-09 21:12:50

ANo.3

No2の回答の訂正です。

お分かりだと思いますが、提示した数式の「COLUMN(B1)」の部分は、「1」に対応する「COLUMN(A1)」が正しい数式です。

正しくは以下の式になりますが、もちろんこの部分はセル参照してもOKです。

=CHOOSE(COUNTIF(OFFSET(抽選結果!$B$1,COUNTA(抽選結果!$A:$A)-$K$1,0,$K$1,6),COLUMN(A1))+1,"","","","","△","○","◎","○","△","","","","")

投稿日時 - 2012-01-09 18:26:55

ANo.2

K1セルに抽出回数が入力されていて、1から順に横方向に表示するなら以下のような数式を入力して右方向にオートフィルしてください。

=CHOOSE(COUNTIF(OFFSET(抽選結果!$B$1,COUNTA(抽選結果!$A:$A)-$K$1,0,$K$1,6),COLUMN(B1))+1,"","","","","△","○","◎","○","△","","","","")

上記の式は最大12回までの出現数に対応していますが、それよりも回数が多い場合は「""」の数を適宜増やしてください。

投稿日時 - 2012-01-09 18:18:40

お礼

いつもご回答頂きありがとうございます。
また、スマートな回答を頂きありがとうございます。

投稿日時 - 2012-01-09 18:38:39

添付図参照(Excel 2002)
「出現数シート」において、
A4: =IF(COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=6,"◎",IF(OR(COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=5,COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=7),"○",IF(OR(COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=4,COUNTIF(OFFSET(抽選結果シート!$A1,MATCH(1000000,抽選結果シート!$A:$A)-$A1,1,MATCH(1000000,抽選結果シート!$A:$A),6),A3)=8),"△","")))

投稿日時 - 2012-01-09 16:13:49

お礼

早速のご回答ありがとうございます。
ちょっと試してみます。

投稿日時 - 2012-01-09 17:22:30

あなたにオススメの質問