- ベストアンサー
エクセルで特定条件のものだけ別ファイルへ
- エクセル2010を使用しています。
- F列の中で「キャンセル」という条件の顧客名・商品名を別ファイル「名簿.xlsx」から順次に抽出する方法を教えてください。
- フィルターではなく関数を使って解決したいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
名簿.xlsxファイルに以下の数式を入力して右方向に1つ、下方向に適当数オートフィルコピーしてください。 =INDEX(受注.csv!B:B,SMALL(INDEX((受注.csv!$F$2:$F$1000<>"キャンセル")*1000+ROW(F$2:$F$1000),),ROW(A1)))&"" csvファイルの場所が決まっていない場合は、絶対パスでそのファイルの場所を指定してください。
その他の回答 (3)
なぜ「フィルターとかじゃなくて関数で」なのですか? その理由に興味を覚えます。
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! たびたびごめんなさい。 前回はBook名が違っていましたね。 >名簿.xlsx を >受注CSV.xlsx に変更してください。 どうも失礼しました。m(__)m
お礼
早々に回答いただきましてありがとうございました。 大丈夫です。Book名変更してやってみています。 ありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 関数での方法がご希望だということなので・・・ 一例です。 ↓の画像で上が「名簿」BookのSheet1で、下の別ファイルに表示するとします。 元データのSheetに作業用の列を設けています。 作業列H2セルに =IF(F2="キャンセル",ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 そして表示したいBookのA2セルに =IF(COUNT([名簿.xlsx]Sheet1!$H:$H)<ROW(A1),"",INDEX([名簿.xlsx]Sheet1!B:B,SMALL([名簿.xlsx]Sheet1!$H:$H,ROW(A1)))) という数式を入れ列方向・行方向にオートフィルでコピーすると 画像のような感じになります。 ※ あくまでやり方だけなので実際のデータに合わせてやってみてください。 参考になりますかね?m(__)m
お礼
どうもありがとうございます。