• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:大会の出番表を作成するシステムを作りたい)

大会の出番表を作成するシステムを作る方法とは?

このQ&Aのポイント
  • 大会の出番表を作成するシステムを作りたいと思っているが、どう手を付けていいか悩んでいる。
  • (1)あらかじめ選手や所属団体を登録し、(2)大会に出場する選手のデータを呼び出す。(3)選手の順番をランダムにして表にするシステムを作りたい。
  • Windowsを使用しており、エクセルを使って(1)(2)を実現したいが、具体的な方法がわからない。

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

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

回答No1です。シート1での入力の式で誤りがありました。次のようにしてください。 シート1のA4セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>B$2,"",IFERROR(INDEX(Sheet2!A:A,MATCH(LARGE(Sheet2!J:J,ROW(A1)),Sheet2!J:J,0)),"")) エクセル2007よりも前のバージョンでしたら次の式を入力します =IF(ROW(A1)>B$2,"",IF(ISERROR(INDEX(Sheet2!A:A,MATCH(LARGE(Sheet2!J:J,ROW(A1)),Sheet2!J:J,0))),"",INDEX(Sheet2!A:A,MATCH(LARGE(Sheet2!J:J,ROW(A1)),Sheet2!J:J,0))))

more_long
質問者

お礼

回答ありがとうございます。 早速作ってみます。

その他の回答 (1)

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

例えばシート2はデータベースの表となっておりA2セルから下方に氏名が、B1セルにはサッカー、C1セルには野球、D1セルにはバレーボールなどのクラブ名がI1セルまでに入力されているとします。 B2セルからI2セルまでの下方の列にはA列で該当する方には○なども文字や入部の日付などが入力されているとします。 シート1は大会での出場チーム名を表示させるための表とします。 シート1のA1セルには大会の文字を、A2セルにはシート2の1行目に入力したと同じクラブ名、例えばサッカーなどと入力します。 A2セルには選手の数とでも入力し、B2セルには9などと入力します。 A3セルには出場選手名とでも入力します。 そこで下方には選手の名前を表示させるわけですがその選手名をランダムに抽出するためにシート2のJ2セルには次の式を入力して下方にドラッグコピーします。 =IF(INDEX(B:I,ROW(),MATCH(Sheet1!$B$1,B$1:I$1,0))<>"",RAND(),"") その後にシート1のA4セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>B$2,"",IFERROR(INDEX(Sheet4!A:A,LARGE(Sheet2!J:J,ROW(A1))),"")) エクセル2007よりも前のバージョンでしたら次の式を入力します =IF(ROW(A1)>B$2,"",IF(ISERROR(INDEX(Sheet1!A:A,LARGE(Sheet1!J:J,ROW(A1)))),"",INDEX(Sheet1!A:A,LARGE(Sheet1!J:J,ROW(A1))))) 一旦作られた表は何かの操作で変わってしまうことが有りますのでシート2のA1セルから下方のセルまでを選択してコピーし、「形式を選択して貼り付け」で「値」にチェックをして別の場所に貼り付けておくことが大事ですね。 なお、ご質問では選手をランダムに選択することなので上のようにしていますが、チームの中で欠かせないメンバーがいるとのことでしたら次のような方法もありますね。 シート2で○などを入力するセルに例えば特の字を入れた形でデータを入れます。 その上でシート2のJ2セルに入力する式を次のようにして下方にドラッグコピーします。 =IF(INDEX(B:I,ROW(),MATCH(Sheet1!$B$1,B$1:I$1,0))<>"",RAND()+IF(COUNTIF(INDEX(B:I,ROW(),MATCH(Sheet1!$B$1,B$1:I$1,0)),"*特*")>0,1,0),"") その他の操作は同じです。