質問: エクセルで特定の行を抽出させる方法について。 エクセルでの関数についての質問ですが、 a b c d 1 名前 日付 場所 時間 2 aさん 10/7 工場1 8.0 3 bさん 10/7 工場1 8.0 4 cさん 10/7 工場2 4.0 5 cさん 10/7 工場1 8.0 6 aさん 10/8 事務所 8.0 7 cさん 10/8 工場2 8.0 8 aさん 10/9 事務所 4.0 以上の表から別のシート2にaさんだけの行を抽出するには、どのようにすれば良いのでしょうか? indexやmatch・lookupを使っていろいろ試したのですがイマイチうまく行かないもので・・・。 因みに、シート2のイメージは a b c 1 名前 : aさん 2 3 日付 場所 時間 4 10/7 工場1 8.0 5 10/8 事務所 8.0 6 10/9 事務所 4.0 このような感じです。 よろしくお願いします。
回答: こんにちは! 極端にデータ量が多い場合はおススメできませんが・・・ 一気に表示する方法です。 ↓の画像で右側がsheet2とします。 excel2007以降のバージョンをお使いだとして・・・ sheet2のa4セルに =if($b$1="","",iferror(index(sheet1!b$1:b$1000,small(if(sheet1!$a$1:$a$1000=$b$1,row(a$1:a$1000)),row(a1))),"")) これは配列数式になってしまいますので、shift+ctrl+enterで確定! この画面から数式をコピー&ペーストする場合は 上記数式をドラッグ&コピー → sheet2のa4セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)shift+ctrlキーを押しながらenterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをc4セルまでコピー! a4セルの表示形式は「日付」にし、a4~c4セルを範囲指定 → c4セルのフィルハンドルで下へコピー! これで画像のような感じになります。m(_ _)m꜊