プロが教えるわが家の防犯対策術!

エクセル2010を使用しています。

「受注.CSV」というファイルがあります。CSVファイルです。
A B C D E F
注文No.顧客名商品名合計金額決済方法取引
1907437aA2233800クレジット前金
1907435bP4249300クレジット前金
1907434cA22101400クレジット前金
1907432d01-11640代金引換キャンセル
1907428ePA237000クレジット前金
1907418fHM625794クレジット前金
1907417gパシャ201500クレジット前金
1907416hHM622800クレジット前金
1907415iZ147170クレジット前金
1907414j1E70800クレジット前金
1907413k49030440代金引換前金
1907412lR1021790現金キャンセル
1907411mDL111190代金引換前金
1907410nS5489800クレジットキャンセル

F列の中で「キャンセル」という条件の顧客名・商品名を別ファイル「名簿.xlsx」のa1,b1から
順次に抽出するにはどうしたらいいでしょうか?
A B
d 01-
l R10
n S54
と出力したいです。

例示のcsvは15行程度ですが、実際は1000行くらいあります。
フィルターとかじゃなくて関数でお願いします。

よろしくお願いします。

A 回答 (4件)

こんにちは!


関数での方法がご希望だということなので・・・
一例です。

↓の画像で上が「名簿」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
「エクセルで特定条件のものだけ別ファイルへ」の回答画像1
    • good
    • 0

名簿.xlsxファイルに以下の数式を入力して右方向に1つ、下方向に適当数オートフィルコピーしてください。



=INDEX(受注.csv!B:B,SMALL(INDEX((受注.csv!$F$2:$F$1000<>"キャンセル")*1000+ROW(F$2:$F$1000),),ROW(A1)))&""

csvファイルの場所が決まっていない場合は、絶対パスでそのファイルの場所を指定してください。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。

お礼日時:2012/03/20 16:06

No.1です!


たびたびごめんなさい。

前回はBook名が違っていましたね。

>名簿.xlsx

>受注CSV.xlsx
に変更してください。

どうも失礼しました。m(__)m
    • good
    • 0
この回答へのお礼

早々に回答いただきましてありがとうございました。
大丈夫です。Book名変更してやってみています。
ありがとうございます。

お礼日時:2012/03/20 16:08

なぜ「フィルターとかじゃなくて関数で」なのですか?


その理由に興味を覚えます。
    • good
    • 0

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