質問: 会員名簿から出席者のみ一覧表の作成 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 つたない説明ですがよろしくお願いたします。
回答: 一応、作業列案も紹介しておきます。 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さんの配列関数となります。