アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelで特定も文字を含む行全てを、別のシートに抽出する方法を教えてください。

Excel2007で名簿を作成しています。
それぞれに、ある条件で「A」「B」「C」と3つに分類しています。
それぞれの分類ごとに、別シートに一括して抽出する方法をご教示ください。


Sheet1には
(所属名)(コード)(氏名)(コード)(資格)(コード)(年数)(ランク)など14項目あります
※コードの一部には入力規則を使用したブルダウンで選択したり、lookup関数で、数字を入力すると所属名が表示されるようになっています
抽出条件となるランクは、年数のセルが●●以上であれば「A」、●●以下であれば「B」という関数を使用しています。
名簿に入力するごとに、「A」「B」「C」と別のシートに抽出させたいのです。

こちらのサイトでいろいろ検索し参考に試してみましたが、抽出できませんでした。
関数でもマクロでもいいので、抽出する方法を教えてくださると大変嬉しいです。

宜しくお願い致します。

A 回答 (1件)

こんばんは!


色々方法はあるかと思いますが・・・
一例です。
↓の画像で説明させていただきます。
とりあえず、Sheet1のデータの中でランクが「A」のものをA用のSheet(今回はSheet2)に抽出するようにしています。
BやCのSheetも同様ですのでAだけで説明します。

Sheet1に作業用の列を3列使わせてもらっています。
(各Sheetに配分するためです。配列数式を使えばこの作業列は不要になりますが、
コンピュータの負担のことを考えると作業用の列を使うことをお勧めします。)

Sheet1のI2セルに
=IF(H2="A",ROW(A1),"")
J2セルに
=IF(H2="B",ROW(A1),"")
K2セルに
=IF(H2="C",ROW(A1),"")
として、I2~K2セルを範囲指定し、K2セルのフィルハンドルで下へずぃ~~~!っとコピーします。
そして、Sheet2(A用Sheet)のA2セルに
=IF(COUNT(Sheet1!$I$2:$I$100)<ROW(A1),"",INDEX(Sheet1!A$2:A$100,SMALL(Sheet1!$I$2:$I$100,ROW(A1))))
という数式を入れ、列方向と行方向にオートフィルでコピーします。
尚、元データに空白がある場合は「0」が表示されると思いますので、
当方使用のExcel2003の場合ですが
メニュー → ツール → オプション → 「表示」タブで「ゼロ値」のチェックを外しておきます。

そうすると画像のような感じになります。
今後データが増えても各Sheetに反映されるはずです。

数式はSheet1の100行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、長々と書きましたが参考になれば幸いです。
他に良い方法があれば読み流してくださいね。m(__)m
「Excelで特定も文字を含む行全てを、別」の回答画像1
    • good
    • 11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!