• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:指定した範囲迄の抽選結果を別シートに表示する。)

指定した範囲までの抽選結果を別シートに表示!

このQ&Aのポイント
  • 数字選択式宝くじロト6、ミニロトの抽選結果をエクセルにつけております。最新抽選回数から指定した範囲までの抽選結果を別シートに表示させる方法が知りたいです。
  • 抽選回数には1〜999までの数字が入り、抽出シートには最新抽選回から抽出回数で指定した回数までの抽選結果が表示されます。
  • エクセルは2007を使用しています。ご存じの方、回答をお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 一例です。 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

moguo4649
質問者

お礼

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

その他の回答 (4)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.5

抽出シートは下図のようになっているとします。 セル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

moguo4649
質問者

お礼

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

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

エクセルのフィルターオプションという機能をご存知でしょうか。 http://www.eurus.dti.ne.jp/yoneyama/Excel2007/excel2007-filter2.html などを参考にしてください。 【抽出回数】 6 と入力した場合に、抽出の条件を関数で表示したくなるとおもいますが。 B1セルに 6 と入っているとして 抽選回 =">=" &LARGE(Sheet1!A:A,B1) とでもすればOKですし 毎回、フィルターオプションの操作をするのも厄介といわれるなら マクロの記録で 操作内容を VBA化してください。

moguo4649
質問者

お礼

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

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えば元の表がシート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))))

moguo4649
質問者

お礼

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

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

抽出回数をどこに記入したいのか不明なので,抽出シートの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()),"") 右にコピー,下にコピー。

moguo4649
質問者

お礼

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

関連するQ&A