- ベストアンサー
エクセルで月毎に出席名簿を作成する方法
- エクセル2010を使用して、月毎に出席名簿を作成する方法を詳しく教えてください。
- マクロを使うと便利なので、初心者でもマクロを利用した方法を説明してください。
- Sheet1とSheet2を使って、出席者の名前に○印を付ける方法を使っています。Sheet2では、IF関数を使って○印のある名前だけ表示されるようにしています。現在の状況と希望する状況の例も示しているので、参考にしてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1で4月と記入されたセルを選び、並べ替えとフィルタフィルタをクリックして、昇順をクリックし、○印を付けた行が最初に来るように並べ替えてはいかがでしょう。 また、月毎に作るのでしたら、まずは、別のシートにSheet1の全データをコピーして貼り付けてから、、○印を付けた行が最初に来るように並べ替えてはいかがでしょう。
その他の回答 (3)
- 大明神(@bathbadya)
- ベストアンサー率19% (769/3963)
意図が今ひとつ判りませんが・・ A B 1 名前 4月・・・ 2 Aさん ○ 3 Bさん ○ 4 Cさん なら、Sheet2のA2へ =IF(Sheet1!B2="○",Sheet1!A2,"**") と入れてやれば? **は空欄でも未記入でも可 ちなみに「○」を入れ間違えると大変なので入力規制を使ってやるといいよ。
お礼
ありがとうございます。 入力規制をしようしてみました。 便利ですね! 後、みなさんのお答えを頂き、解決しました。 お手数おかけしました。 ありがとうございました!!
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 ご希望の方法とは違うかもしれません。 (Sheet2に「0」は表示させず、Sheet1の「○」の人のみ表示させるようにしてみました) ↓の画像で下側(Sheet2)のA2セルに =IF(COUNTIF(Sheet1!B$1:B$100,"○")<ROW(A1),"",INDEX(Sheet1!$A$1:$A$100,SMALL(IF(Sheet1!B$1:B$100="○",ROW($A$1:$A$100)),ROW(A1)))) これは配列数式になってしまいますので、Shift+Ctrlキーを押しながらEnterキーで確定です。 もしこの画面からA2セルに数式をコピー&ペーストする場合は A2セルに貼り付け後、数式バー内で一度クリック → 編集可能になりますので その後、Shift+Ctrlキーを押しながらEnterキーで確定です。 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 ※ データ量が多すぎると配列数式はPCに負担を掛けるのであまりオススメではありません。 数式はとりあえず100行目まで対応できるようにしています。 参考になれば良いのですが・・・m(_ _)m
お礼
tom04さん詳しく教えていただき感謝してます。 いろいろ試してやってみました。 みなさんの、協力を得て何とか解決しました。 ほんとに、貴重な時間を割いていただきありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
割と簡単に作れる構成で。 シート1) 必ずA1から表を配置する(添付図左) シート2) 実際に一覧に使う表はシートのどこに置いても構わない。 添付図(右)ではD2に「4月」などのように,シート1の1行目から選択できるように仕込んでおくこと。 A列は必ずA1から始める A2: =IF(HLOOKUP(D$2,Sheet1!A:M,ROW(),FALSE)="○",ROW(),"") 以下コピー D4: =IF(ROW(A1)>COUNT($A:$A),"",INDEX(Sheet1!$A:$A,SMALL($A:$A,ROW(A1)))) 以下コピー 添付図では更に条件付き書式を使って枠線を引いている。
お礼
keithinさん申し訳ございませんが、 みなさんの協力で解決いたしました、 エクセル関数。いろんなやり方があるのですね。 大変貴重な時間を割いていただきありがとうございました。
お礼
ありがとうございます。 フィルタは、やってみましたが。 他のシートへ影響がでました。 後、みなさんのお答えを頂き、解決しました。 お手数おかけしました。 ありがとう!!