• ベストアンサー

EXCELで受験票を作成したい(名簿の名前と受験番号を別シートに転記する方法)

いつも大変こちらではお世話になってます。 エクセルで、社内教育の受験票を作成しなければなりません。 内容は (1)シート「名簿」に受験番号と氏名 (A列に受験番号、B列に氏名がずらりとならんでます) (2)シート「受験票」には A   B    C    D 1行目 受験番号 受験番号 受験番号 受験番号 1行目 3行目 氏名   氏名   氏名   氏名 4行目 (以下ずっと同様の内容が続く) となっており、この2行目に受験番号、4行目に氏名を (1)の名簿のデータから転記していこうと思ってます。 件数がかなりあるので、何かいい方法がないかと マクロを使用しようと、試しにマクロの記録で手がかりをつかみたかったのですが、 長い長いVBAができるだけで、何の参考にもなりませんでした。。 マクロを使用しないでも、関数でもいいので、よい方法がないか 教えてください。ちなみにこの業務は1年に6回もあるらしいので、 何とか簡素化したく思ってます。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.4

シート「受験票」において、 セル A1 に式 =INDEX(名簿!$A:$A,COLUMN()+((ROW(2:2)+2)/4-1)*4,1) を、 セル A4 に式 =INDEX(名簿!$B:$B,COLUMN()+((ROW(2:2)+2)/4-1)*4,1) を、 それぞれ入力して、範囲 A1:A4 を右方にズズーッとD列まで複写した後、範囲 A1:D4 を下方にズズーッと複写

paopao1234
質問者

お礼

お礼が大変遅くなり申し訳ありませんでした。 この方法でもできました!(これは自宅にてやってみました) ただ、できたのですが、なぜこれでできるのかを ずーーーーっと考えております(今も。。)4で除して 4を乗じる部分が難解で。。まだまだですね。

その他の回答 (3)

  • rin01
  • ベストアンサー率43% (33/76)
回答No.3

こんばんは~♪ >(1)シート「名簿」に受験番号と氏名 >(A列に受験番号、B列に氏名がずらりとならんでます) すでに、出来ているものでしたら ★A列の受験番号の範囲をコピー。 シート「受験票」の A2セルへ 形式を選択して貼り付け→行列を入れ替える では、ダメなのでしょうか? 氏名も同じくです。 ★関数でしたら シート「受験票」の A2: =INDEX(名簿!$A:$A,COLUMN(B1)) 右にコピーします。 A4: =INDEX(名簿!$B:$B,COLUMN(B1)) 右にコピーします。 で、いかがでしょうか? 。。。。Ms.Rinでした~♪♪

paopao1234
質問者

補足

ありがとうございます。NO.1の方への補足と同様になってしまいますが、補足いたします。 受験票のシートは     A     B    C     D 1行目 受験番号 受験番号 受験番号 受験番号 2行目 3行目 氏名   氏名   氏名   氏名 4行目 5行目 受験番号 受験番号 受験番号 受験番号 6行目 7行目 氏名   氏名   氏名   氏名 8行目 (以下9行目以降も同様のくりかえし) の構成で、列はD列までの4列でA4サイズに設定されてます。 おっしゃるようにデータを貼り付けると とりあえず2行目に全ての受験番号が、4行目に全ての氏名が 貼り付けられますが、4列までしかないため 4つずつを 切り取っていかねばならないのです・・

  • bnosuke-x
  • ベストアンサー率39% (43/110)
回答No.2

Wordで受験票のフォームを作り、Excelのデータを取り込んで印刷するように差し込み印刷を設定したらどうでしょう。 過去に私も同様の要求に応えるExcelシートを作りましたが、マクロというよりVBAでプログラミングしました。 そう難しい内容ではないので、身近にVBAプログラミングができる人にお昼ご飯1回分くらいでつくってもらうのもよいでしょう。

paopao1234
質問者

補足

ありがとうございました。 身近にはVBAどころか、エクセルに関してはほとんど出来る人がいなくて(だから今回の受験票作成も私にまわってきているようですが) 誰かにお願いするのは難しそうです。。

  • zizi-chan
  • ベストアンサー率66% (14/21)
回答No.1

質問の意味をとり間違えていたら申し訳ありません。 シート名簿のA列のデータ(セルA1、セルA2、セルA3・・・)のデータを、シート受験票の2行目(セルA2、セルB2、セルC2・・・)に、貼り付けるという事でしょうか? それならば、シート名簿のA列のデータ(受験番号)をすべて範囲選択し→コピー→編集メニュー→形式を選択して貼り付け→行列を入れ替えるにチェックをいれて【OK】ボタン これで、列のデータを行に貼り付ける事ができます。 同じように、氏名のデータも貼り付けます。 ちなみにExcelのバージョンによっては、ツールボタンの貼り付けにも「行列を入れ替える」がありますので、そちらでも同じ結果になります。

paopao1234
質問者

補足

ありがとうございます。 質問の意味はおっしゃるとおりで、やってみたのですが 受験票のシートは     A     B    C     D 1行目 受験番号 受験番号 受験番号 受験番号 2行目 3行目 氏名   氏名   氏名   氏名 4行目 5行目 受験番号 受験番号 受験番号 受験番号 6行目 7行目 氏名   氏名   氏名   氏名 8行目 (以下9行目以降も同様のくりかえし) の構成で、列はD列までの4列でA4サイズに設定されてます。 おっしゃるようにデータを貼り付けると とりあえず2行目に全ての受験番号が、4行目に全ての氏名が 貼り付けられますが、4列までしかないため 4つずつを 切り取っていかねばならないのです・・

関連するQ&A

  • Excelで条件別にシートを振り分ける方法

    初心者です。よろしくお願いします。 Excelで条件別にシートを振り分ける方法を教えてください。 名簿の管理をしています。 シート1にNoや名前を入力し、条件ごとに別シートに行ごと自動で振り分ける方法がありますか? 情報を入力するのは、シート1のみで、 シート2~6を自動で振り分けたクラス名簿という形にしたいです。 現在、以下のようにシート1を作成してます。     列A   列B   列C   行1  No  氏名   クラス  行2  1   花子    A 行3  2   太郎    C 行4  3   二朗    B 行5  4   京子    B 行6  5   史郎    B 行7  6   典子    C 行8  7   公子    A ・ ・ これを、シート2はAクラス、シート3はBクラスという具合に、Noと氏名を振り分けたいです。 よろしくお願いいたします。

  • Excel VBA で条件を満たしたセルの値を別のシートに貼り付けるには?

    VBA初心者です。700行くらいあるリストの中から所属別の名簿を作りたいのですが、マクロを使えば簡単に出来ますか? データは、 A列にNO.、B列に氏名、C列に所属 となっていて、C列の所属ごとにSheet2,Sheet3・・・にB列の氏名だけの名簿を作りたいのです。 例えば、C列が”総務課”の人の氏名(B列)をSheet2のCell("A2")から行方向に、C列が”会計課”の人の氏名はSheet3のCell("A2")から行方向に という感じです。 Do~Loop を使ってみたり、If~Then を使ってみたりするのですがうまく貼り付けられません。 データの最終行が変化するので範囲の指定もよく分かりません。 どなたか教えて下さい。

  • 別シートに任意のセルを転記する方法について

    縦に6行ずつのデータがあり、これを横1行の別シートに転記する際に、 以前こちらで回答頂いた方法を応用したいと考えています。 =IF(INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))=0,"",INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))) アドバイスのとおり、上記の数式で見事に横にデータが転記できました。社員1人につき6行ずつのデータが縦にならんでおり、これを別の社員1人あたり1行で横に並んだデータにしたいというものでした。 1人目のデータは1行目を1列目に、2行目を2列目に・・・2人目のデータである7行目を1列目に、8行目を2列目に・・・3人目は13行目を1列目に・・・となります。 しかし、順次並べるのではなく、転記の必要にないデータを含むシートの任意のセルを選び、別シートの任意のセルへ転記する必要が生じたため、悩んで路頭に迷っております。。。 例えば、6行ずつのデータのうち、いつも3行目を別シートの5列目に。4行目は転記せずに、5行目を6列目に。また、6行目を7列目に転記せずに10列目に転記する。(8・9列目は、別データを入力するため空白にしたい) そして、社員2人目である7行目からは、上記と同じ規則で転記したい。 などというように、選んで転記する方法は何かありますでしょうか?? =INDEX(Sheet1!$Z:$Z,(ROW(B2)-ROW($B$2))*6+IF(COLUMN()=4,MOD(COLUMN(B2)-1,6)+1,MOD(COLUMN(B2)-1,7))) のようにしても上手くいきません。 何卒宜しく御願いいたします。

  • エクセルで項目ごとに新しい別のシートにしたい

    エクセルで名簿を作成しています。 C列に生徒番号、D列に氏名、E列にクラスがAからFまでランダムに入っています。 この名簿を新しいファイルに、クラスごとに別のシートにしたいです。 できればシート名も「A」「B」となっていれば助かります。 A,B列にもデータが入っていますが、今回は生徒番号、氏名、クラスのみの ファイルにしたいです。 良い方法を教えてください。よろしくお願いします。

  • 別シートの行を選択し対象列を転記するマクロ

    シート2のA~F列までデータがあります。 行数は10,000行です。(月ごとに100行くらい追加されます。) A列は項目がNO.で半角数字が連番で入力されてます。 セルA2→1 セルA3→2 セルA4→3 . . . セルA10000→9999 セルA10001→10000 という感じです。 シート1の セルI9に番号を入力すると シート2のその番号の行のB~F列の値を シート1のJ9~N9列に転記したいです。 例えば シート1のセルI9に100と入力したら、 シート2のA列が100と入力されているセルはA101ですから 101行目となります。101行目の各列の値を転記します。 ↓ シート1のセルJ9にシート2のセルB101の値を転記 シート1のセルK9にシート2のセルC101の値を転記 シート1のセルL9にシート2のセルD101の値を転記 シート1のセルM9にシート2のセルE101の値を転記 シート1のセルN9にシート2のセルF101の値を転記 シート1もシート2もセルの書式設定は標準。 B,E,F列は半角英数字の組み合わせで C,D列は半角数字のみです。 たまにF列に空白がある行があります。 B,F列は数字のみの場合もあります。 B,C,D,F列は数字のみの場合 「数値が文字列として入力されています」 となっています。 マクロで行いたいのですが記述そのものを教えてください。

  • 【VBA】シートの内容を別シートへ転記する方法

    1シート目のA列には品番が沢山並んでおり、B列、C列に内訳、D列に合計が有ります。例)参照 下記の処理をしたいです。 ------------------------------------------------------------------- 2シート目へ1行目の見出しとAAAの品番の行を転記 3シート目へ1行目の見出しとBBBの品番の行を転記 同様に、A列最終行迄繰り返しシートを作成 ------------------------------------------------------------------- A列の品番が変わる行迄を一まとまりとして行選択する方法にて コードをお教え頂きたく、宜しくお願いします。お教え頂いた内容は理解する様努めます。 例) 内訳1 内訳2 合計 AAA ○○○ ○○○ ○○○ AAA ○○○ ○○○ ○○○ BBB ○○○ ○○○ ○○○ BBB ○○○ ○○○ ○○○ CCC ○○○ ○○○ ○○○ CCC ○○○ ○○○ ○○○ DDD ○○○ ○○○ ○○○ DDD ○○○ ○○○ ○○○ DDD ○○○ ○○○ ○○○ 以下略

  • 【エクセル】別シートの名簿の項目を本シートに1人ずつ落とし、数人分までを連続印刷するマクロについて。

    いつもお世話になってます。 マクロの記述で質問します。 シート2に連番の名簿番号の付いた名簿を作ります。 シート1に文書の様式を作ります。 シート1の文書の様式の枠外のA1に名簿番号を入力すると シート1の様式にシート2の同じ名簿番号の者の氏名・住所・電話番号が各欄に表示されます。 印刷ボタンを押すと様式が印刷されます。 ここまではマクロで作ったのですが、(たいしたことありませんが。) シート1のA1に”4”、B1に”12”と入力し、印刷ボタンを押すと、 名簿番号4~12までを順次様式に反映させ、9枚連続印刷する。 というところまで作りたいのですが、どのようなマクロの記述になるのか判りません。 例としてどのような記述になるのでしょうか? もしくは、参考になる過去の質問や参考になるようなサイトなどご存知でしたら教えてください。よろしくおねがいします。 (エクセル2003)

  • エクセルVBA シート1からシート2へ転記したい

    シート1のデータはそのままで、 シート2に編集して転記したいです。 シート1にはA列からI列までデータが入っています。 行数は都度変わりますがデータは3行目から始まり 大体500行くらいです。 転記方法は シート1のD列→シート2のA列 シート1のE列→シート2のB列 シート1のF列→シート2のC列 シート1のC列→シート2のD列 でシート1のD列の値が同じ場合は 転記先のシート2の行数は増やさずにシート1のC列の値を 同じ値のF列内にカンマでつないで転記したいです。 でそのつないだ合計数をシート2のE列に表示したいです。 イメージ C  D    E     F ------------------------ A1 みかん 国内 Sサイズ A3 みかん 国内 Sサイズ D6 みかん 国内 Sサイズ D9 りんご 国内 Mサイズ G7 りんご 国内 Mサイズ F5 バナナ 海外 Lサイズ G1 バナナ 海外 Lサイズ A2 いちご 国内 Sサイズ D8 いちご 国内 Sサイズ F3 いちご 国内 Sサイズ H2 いちご 国内 Sサイズ   ↓ A    B    C      D     E ------------------------------------------- みかん 国内 Sサイズ A1,A3,D6   3←3個 りんご 国内 Mサイズ D9,G7     2←2個 バナナ 海外 Lサイズ F5,G1     2←2個 いちご 国内 Sサイズ A2,D8,F3,H2  4←4個 上記例の場合は元データは11行ですが編集後は4行です。 配列は自力で作成できないので考え方を教えていただきたいです。 構文をそのまま書いていただいても大変助かります。 Do~LoopかFor~Nextで上から順最終行まで処理で シート1からシート2へ転記する構文をかいて D列の値が直前に処理した値と同じ場合は 転記はしないでC列の値を変数1に代入し シート2の該当行のD列も変数2に代入し 変数1&","&変数2で対象行のD列に転記と考えましたが うまくできませんでした。 またシート2のE列の求め方ですが、上記変数1,2に代入した後に 変数3=変数3+1とかの文でカウントし、 その値を転記すればいいのでしょうか? すいません。今日1日頑張ってうまくできず 上手く説明できません。 よろしくお願いします。

  • 別シートから値のある行を検索し、別シートに転記

    シート1とシート2があり、 シート1のA7がシート2のB列にあり、シート1のB20がシート2のその行のD列の値と同じ場合、シート2該当行のF列の値をシート1のL20に書き込むのですが、どのようにマクロを記述すればいいでしょうか 例えば、 シート1のA7に「A社」、B20に「商品A」があり、 シート2のB10に「A社」が、D10に「商品A」がある場合、F10の値をシート1のL20に返す方法です。 シート2のB列には「B社」や「C社」もあるため、B列の中からシート1のA7と合致する行を検索することになります。

  • エクセルにおいて、シート1に入力欄を作り、シート2に名簿を作成

    エクセルにおいて、シート1のセルA1に入力欄を作り、シート2に名簿を2種類(A列とB列)作成しておきます。 そして、シート1に入力した内容が、シート2のA列にある場合には、A列にあり、B列にある場合は、B列にあり、というテキストを、シート1のセルB1に表示させたいのです。 そして、A列、B列のいずれにも該当が無い場合には、該当なし、というテキストを、同じく、シート1のセルB1に表示させたいのであります。 どうすれば、よろしいでしょうか?

専門家に質問してみよう