• ベストアンサー

会員名簿から出席者のみ一覧表の作成

   EXCLE2007にて 下記表のように名簿から出席者のみの表を作成したのです。            1 会員1 出         1 会員1      2 会員2            2 会員5      3 会員3            3 会員6      4 会員4            4 会員9      5 会員5 出      6 会員6 出      7 会員7      8 会員8      9 会員9 出     10 会員10         つたない説明ですがよろしくお願いたします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

ご希望のデータを抽出したいなら、フィルタの機能を利用されることをお勧めします。 「データ」「フィルタ」で出欠の欄の▼をクリックして「出」だけにチェックを入れます。 該当データが抽出された状態でデータ範囲をそのままコピーし、新規シートに貼り付けます。 もし関数で表示させたいのであれば(抽出対象が文字列の場合)、配列数式がすでに提案されていますが、以下のような数式の方がデータ位置を変更する必要が無いのでわかりよいかもしれません。 =INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$2:$B$100<>"")*1000+ROW($B$2:$B$100),),ROW(A1)))&""

noname#232295
質問者

お礼

            みなさんに色々なアドバイス頂きありがとうございます、        どなたからのやり方も自分に取ったらベストアンサーです、        いろんな関数の使い方を知らない自分には宝の持ち腐れ状態です。         これからもよろしくお願いいたします。         

その他の回答 (4)

回答No.5

  並び替えの方法ですか....................:-) 元の状態で並び替えのアイコンを押してください。  

noname#232295
質問者

お礼

お礼が遅くなり申し訳ありません。     アイコンクイックでできるのですね。         初歩的なことでした。                有難うございます。

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

一応、作業列案も紹介しておきます。        A   B   C      1 会員1 出         1 会員1      2 会員2            2 会員5      3 会員3            3 会員6      4 会員4            4 会員9      5 会員5 出      6 会員6 出      7 会員7      8 会員8      9 会員9 出     10 会員10 C列に =IF(B1="出",ROW(),"") と入れて下までコピーします。 出席者の右に その行番号が出ます。 抽出するセルには =INDEX(SHEET1!A:A,SMALL(SHEET1!C:C,ROW(A1))) と入れて下へコピーしてみてください。 エラー処理はしていませんが、式の意味を理解するのに便利かと思います。 関数を説明しておきますが ROW(A1) は単にそのセル(A1)の行番号ですので 1です 下へコピーすると ROW(A2) となるので 2 、3・・と数字を増やしておくためのものです。 つまり 1行目は =INDEX(SHEET1!A:A,SMALL(SHEET1!C:C,1)) 1行目は =INDEX(SHEET1!A:A,SMALL(SHEET1!C:C,2)) 1行目は =INDEX(SHEET1!A:A,SMALL(SHEET1!C:C,3)) ・・・ということです。 更に SMALL(SHEET1!C:C,1)) の部分を表示してみるとわかりやすいです。 =SMALL(SHEET1!C:C,ROW(A1)) と入れて下までコピーしてみてください。 参加者の行の番号が上から順にでるはずです。 この結果を利用して 名前の部分をINDEX関数で表示しています。 エラー処理は 他の方を参考にIF文を最初に入れます。 がんばっててください。 ここで出来た式を 作業列の部分まで取り込んで 作業列なしで実行しようとすると Tom04さんの配列関数となります。

noname#232295
質問者

お礼

                 みなさんに色々なアドバイス頂きありがとうございます、        どなたからのやり方も自分に取ったらベストアンサーです、        いろんな関数の使い方を知らない自分には宝の持ち腐れ状態です。         これからもよろしくお願いいたします。

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

こんばんは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像でSheet2のA2セルに =IF(COUNTIF(Sheet1!$B$2:$B$1000,"出")<ROW(A1),"",INDEX(Sheet1!$A$2:$A$1000,SMALL(IF(Sheet1!$B$2:$B$1000="出",ROW($A$1:$A$999)),ROW(A1)))) これは配列数式になってしまいますので、 A2セルにコピー&ペーストしただけではちゃんと表示されないと思います。 A2セルに貼り付け後、F2キーを押す、またはA2セルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定。 数式の前後に{ }マークが入り配列数式になります。 このA2セルをオートフィルで下へコピーすると 画像のような感じになります。 参考になれば良いのですが。m(__)m

noname#232295
質問者

お礼

          tom04様       早々のアドバイス有難うございます。       わー関数が8ケも複合されてますね        、自分はその中でIF,COUNTIF文しか使った事がありません。        アドバイスと関数辞典を見ながら悪戦苦闘し自分なりに会得したいとおもいます。           有難うございます。        

回答No.1

  「出」の列で並びかえれば出席した会員だけが集まるのでその範囲を別のシートにコピーします。 並び替えた状態   

noname#232295
質問者

お礼

       V4330様        早速のアドバイス有難うございます。     できれば並び替えの方法を教えて頂ければ幸いですが         わからないのでよろしくお願いいたします。

関連するQ&A