- ベストアンサー
指定した範囲までの抽選結果を別シートに表示!
- 数字選択式宝くじロト6、ミニロトの抽選結果をエクセルにつけております。最新抽選回数から指定した範囲までの抽選結果を別シートに表示させる方法が知りたいです。
- 抽選回数には1〜999までの数字が入り、抽出シートには最新抽選回から抽出回数で指定した回数までの抽選結果が表示されます。
- エクセルは2007を使用しています。ご存じの方、回答をお願いします。
- みんなの回答 (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
その他の回答 (4)
- mar00
- ベストアンサー率36% (158/430)
抽出シートは下図のようになっているとします。 セル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
お礼
ご回答ありがとうございます。 VBAではこう記述するのですか。 勉強になります。 ありがとうございます。
- hallo-2007
- ベストアンサー率41% (888/2115)
エクセルのフィルターオプションという機能をご存知でしょうか。 http://www.eurus.dti.ne.jp/yoneyama/Excel2007/excel2007-filter2.html などを参考にしてください。 【抽出回数】 6 と入力した場合に、抽出の条件を関数で表示したくなるとおもいますが。 B1セルに 6 と入っているとして 抽選回 =">=" &LARGE(Sheet1!A:A,B1) とでもすればOKですし 毎回、フィルターオプションの操作をするのも厄介といわれるなら マクロの記録で 操作内容を VBA化してください。
お礼
ご回答ありがとうございます。 フィルター機能も一考ですね。 ありがとうございます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えば元の表がシート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))))
お礼
ご回答ありがとうございます。 随分と長く難しい式ですね。。
- keithin
- ベストアンサー率66% (5278/7941)
抽出回数をどこに記入したいのか不明なので,抽出シートの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です。