アプリ版:「スタンプのみでお礼する」機能のリリースについて

どなたかご存じでしたら回答をお願いします。
数字選択式宝くじロト6、ミニロトの抽選結果をエクセルにつけております。
それを利用して、『最新抽選回数から指定した範囲迄の抽選結果を別シートに表示させる。』
方法が知りたいです。

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

抽選回 第1数字 第2数字 第3数字 第4数字 第5数字 第6数字 ボ数字               
619      2    11     29     31    33     38     14
620      7    10     13     19    31     38     12
621      6    15     16     28    36     40     20
622      7    16     18     20    27     36     41
623      7     8     16     35    39     42     9
624      4     8     12     22    25     30    43
625      5    17     26     37    39     42    20
626      6    13     14     22    26     28    10
627      2     4     7      19    34     42    30
628      7    13     15     18    29     38    30
629      6    16     21     30    34     43    36
630      3     7     13     18    19     41    38
631      2     5     7      10    36     40    12

【抽出回数】 6

【抽出シート】 ※最新抽選回から6回前迄の抽選結果を表示。
抽選回 第1数字 第2数字 第3数字 第4数字 第5数字 第6数字 ボ数字 
626      6    13     14     22    26     28    10
627      2     4     7      19    34     42    30
628      7    13     15     18    29     38    30
629      6    16     21     30    34     43    36
630      3     7     13     18    19     41    38
631      2     5     7      10    36     40    12

◎注意事項
 ・抽選結果シートは第1回抽選から最新抽選回まで入力されています。
 ・最新抽選回は毎回抽選結果を追加入力します。
 ・抽出回数には1~999までの数字が入ります。
 ・抽出シートには、最新抽選回から抽出回数で指定した回数まで遡り、
  その範囲の抽選結果シートの内容が表示されます。
 ・エクセルは2007です。 

以上、ご回答よろしくお願いします。 

A 回答 (5件)

こんにちは!


一例です。
Sheet1のデータをSheet2に表示するようにしてみました。
Sheet2の1行目はSheet1と同様の項目が入っているものとします。

Sheet2のA2セルに
=INDEX(Sheet1!A:A,MATCH(LARGE(Sheet1!$A:$A,7-ROW(A1)),Sheet1!$A:$A,0))

という数式を入れ
下へ6行分コピー! そのまま列方向へオートフィルでコピーではどうでしょうか?

※ 今回は「6」回分ですが、表示回数を変えたい場合は数式内の
>7-ROW(A1)
の部分で調整してください。m(_ _)m
    • good
    • 0
この回答へのお礼

お久しぶりです。
ご回答ありがとうございます。
シンプルな方法でできるんですね。
また、抽出回数を式に取り込むのはgoodです。

お礼日時:2012/02/12 20:19

抽出シートは下図のようになっているとします。


セルB1に週出回数を入力すると表示されます。

Private Sub Worksheet_Change(ByVal Target As Range)
Set WS01 = Sheets("抽選結果")
If Target.Address <> "$B$1" Then Exit Sub
If Target = "" Then Exit Sub
If Cells(Rows.Count, 1).End(xlUp).Row <> 3 Then
Range("A4:H" & Cells(Rows.Count, 1).End(xlUp).Row).Clear
End If
myRow1 = WS01.Cells(Rows.Count, 1).End(xlUp).Offset(-Target.Value + 1).Row
myRow2 = WS01.Cells(Rows.Count, 1).End(xlUp).Row
WS01.Range("A" & myRow1 & ":H" & myRow2).Copy Destination:=Range("A4")
End Sub
「指定した範囲迄の抽選結果を別シートに表示」の回答画像5
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
VBAではこう記述するのですか。
勉強になります。
ありがとうございます。

お礼日時:2012/02/12 20:23

エクセルのフィルターオプションという機能をご存知でしょうか。


http://www.eurus.dti.ne.jp/yoneyama/Excel2007/ex …
などを参考にしてください。

【抽出回数】 6

と入力した場合に、抽出の条件を関数で表示したくなるとおもいますが。
B1セルに 6 と入っているとして
抽選回
=">=" &LARGE(Sheet1!A:A,B1)

とでもすればOKですし

毎回、フィルターオプションの操作をするのも厄介といわれるなら
マクロの記録で 操作内容を VBA化してください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
フィルター機能も一考ですね。
ありがとうございます。

お礼日時:2012/02/12 20:21

例えば元の表がシート1にあり、1行目は項目名でA1セルからH1セルまであり、2行目から下方にデータがあるとします。

抽出の結果をシート2に表示させるとします。シート2のA1セルには遡って表示する抽出回数を例えば6行遡るのでしたら6と入力します。
2行目には項目名を入力するとしてA3セルには次の式を入力してH3セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。

=IF(OR(MAX(Sheet1!$A:$A)=0,ROW(A1)>$A$1),"",IF(MAX(Sheet1!$A:$A)<6,INDEX(Sheet1!$A:$H,ROW(A1)+1,COLUMN(A1)),INDEX(Sheet1!$A:$H,MATCH(MAX(Sheet1!$A:$A),Sheet1!$A:$A,0)-$A$1-1+ROW(A1),COLUMN(A1))))
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
随分と長く難しい式ですね。。

お礼日時:2012/02/12 20:18

抽出回数をどこに記入したいのか不明なので,抽出シートのA1に記入します。



A2には
=IF(ROW(A1)>MIN(MAX(抽選結果!A:A),$A$1),"",MAX(0,MAX(抽選結果!A:A)-$A$1)+ROW(A1))
以下コピー

B2に
=IFERROR(VLOOKUP($A2,抽選結果!$A:$H,COLUMN()),"")
右にコピー,下にコピー。
    • good
    • 0
この回答へのお礼

いつもお世話になります。
そうでした!抽出回数がどこにあるかを!
失礼しました。

お礼日時:2012/02/12 20:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!