• 締切済み

エクセルでリスト作成について

エクセルでのリスト作成について良いアイデアや関数はないでしょうか? エクセルで、 シート1に参加確認表(20名分まで表示可能) シート2に組合員リスト(支店コード(数字4桁)、組合員番号、姓名、性別、etc) 以上のようなブックになっていて シート1の参加確認表に”支店コード”を入れるとその支店に属する組合員の 組合員番号と姓名が参加確認表に反映するようなフォーマットを作りたいです。 支店ごとの人数は少ないのですが、支店数が多いので 困っております。 使用用途は、印刷をして支店毎に配布をします。 1枚ずつコピー、貼り付けすればいいのでしょうが、 もし関数等で対応できそうなものであれば、他にも応用できるので教えください。 よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

支店コードによる、別シートへの抜出ではないのか。 この抜き出し問題は、毎日のように出るタイプの質問で、回答者には またかという問題。 作業列を使ってよいなら、Googleで「imogasi方式」で照会すれば、過去の同様質問で私が回答したものがたくさん出てくる。そこには他の回答者のやり方も出ている。 要点だけ書くと 抜き出しの関数は#2のご回答のデータを使わしてもらうと E2に=IF(A2=Sheet2!$B$1,MAX($E$1:E1)+1,"") となり、下方向に式を複写する。 Sheet2では =INDEX(Sheet1!$A$2:$D$100,MATCH(ROW()-1,Sheet1!$E$2:$E$100,0),COLUMN()) を横方向、縦方向に式を複写する。 ーー エクセル関数では抜き出し問題は複雑になるのだ。 エクセルでは基本的にフィルタ操作がその役割を担うのだ。 そして上記の関数の方法でも支店コードを順次、重複なく、もれなく所定セルにセットして、結果を印刷するには、簡単ではあるが、VBAの学習が必要だ。 フィルタで抜き出すコードを、マクロの記録で学習して、繰り返すのと変わらない。

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

こんばんは! 参考になるかどうか判りませんが・・・ 一例です。 ↓の画像のように表を作ってみました。 Sheet2のE列を作業用の列として、 E2セルに =IF(Sheet1!$B$1="","",IF(A2=Sheet1!$B$1,ROW(A1),"")) という数式を入れて、オートフィルで下にずぃ~~!っとコピーします。 Sheet1の数式は1000行まで対応できるようにしていますので、 1000行目くらいまでコピーしても構いません。 そして、Sheet1のB1セルに支店コードを入力すると その支店の会員情報が表示されるようにしてみました。 Sheet1のA4セルに =IF($B$1="","",IF(COUNT(Sheet2!$E$2:$E$1000)>=ROW(A1),INDEX(Sheet2!$B$2:$B$1000,SMALL(Sheet2!$E$2:$E$1000,ROW(A1))),"")) B4セルに =IF($A4="","",VLOOKUP($A4,Sheet2!$B$2:$D$1000,COLUMN(B1),0)) という数式を入れて、オートフィルでC4セルまでコピーします。 (もし、会員の情報列が多い場合は列を増やして、コピーしても大丈夫だと思います。) 最後にA4~C4セルを範囲指定し、C4セルのフィルハンドルで 下へコピーすると画像のような感じになります。 この方法は希望とは違うでしょうか? もし、お役に立てれば幸いですが、 的外れなら読み流してくださいね。m(__)m

torikawa22
質問者

お礼

tom04 さん お世話になります。 関数の内容の把握するのはちょっと難しいですが、 式を参考にセルの置き換えをしたら、うまくいきました! すごいです! 他にも応用できそうなので、論理式を理解できるように 頑張ります。 ありがとうございました!

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

シート2の不要部分を非表示にしデータ→フィルタ→オートフィルターで 「支店コードでフィルターをかけて印刷」を繰り返せばいかがでしょう シート1に支店コードを入力するのと手間はさほど変わらないと思います