- ベストアンサー
EXCEL VLOOKUPとIFの組み合わせ
- EXCELのVLOOKUPとIF条件を組み合わせて、【元データ】から【手持ち資料】へデータを転記する方法について教えてください。
- 【元データ】という名前のEXCELブックが毎月の売上資料として届きます。このデータを基に【手持ち資料】へデータを転記したいのですが、商品コードや店舗の配置が異なるため、VLOOKUPとIF条件を組み合わせてデータを持ってくる方法が知りたいです。
- Windows XP SP3とEXCEL2003の環境で、EXCELのVLOOKUPとIF条件を使って【元データ】から【手持ち資料】へデータを転記する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
方法1:基本 B12に =IF(COUNTIF($A$3:$A$9,$A13),VLOOKUP($A13,$A$3:$E$9,MATCH(B$12,$A$3:$E$3,0),FALSE),"") と記入,右に下にコピー貼り付けて埋めておきます 新しい「元データ.xls」が送られてきたら,ファイル名を変えずにファイルを単に入れ替えてしまえば,新しい元データから値を参照してきます。 それとも新しい元データのファイル名(やシート名)が毎回異なる場合は,Ctrl+Hを出して置換のダイアログを出し,古いファイル名などを新しいファイル名などに置換してしまうと手っ取り早く修正できます。 方法2:推奨 手持ち資料は商品コードの縦項目,店舗名の横項目は残し,中身は全部Deleteして空にしておきます 手持ち資料の表範囲(縦項目,横項目,空白にした表の中身)を選択,データメニューの統合を開始します 元データの表範囲を追加,左端列,上端行にチェックしてOKすると,手持ち資料の該当する行・列に勝手にデータを拾って埋めてくれます。
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 別案です。 店舗名は必ずあるものとして・・・ B13セルに =IF(COUNTIF($A$4:$A$9,$A13),INDEX($B$4:$E$9,MATCH($A13,$A$4:$A$9,0),MATCH(B$12,$B$3:$E$3,0)),"") という数式を入れ列・行方向にオートフィルでコピー! これでも大丈夫だと思います。m(_ _)m
お礼
tom04さん、こんばんわ。 ご連絡が遅くなりまして申し訳ありません。 今まで色々と数式を試行錯誤して試していました・・。 tom04さんからご教授いただきました数式での実現も確認できました。 今回は別の方にご教授いただきました数式で運用することになりましたがtom04さんの数式は大変勉強になりました。 本当にありがとうございました!
補足
tom04さん、こんにちわ! ご連絡ありがとうございます! 別方法のご教授誠にありがとうございます! VLOOKUPを使わなくても出来るのですねー大変勉強になります。 ご教授いただきました方法でも試してみたいと思います! 取り急ぎ御礼まで。 ありがとうございました。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
検索の型が間違っていたのと、列番号を返す式の部分を改良。 =VLOOKUP($A13,$A$4:$E$9,MATCH(B$12,$B$3:$E$3,FALSE)+1,FALSE)
お礼
chie65535さん、こんばんわ。 ご連絡が遅くなりまして申し訳ありません。 今まで色々と数式を試行錯誤して時間が経ってしまいました・・。 申し訳ありません。 chie65535さんからご教授いただきました数式で実現できました! とても勉強になりました。 今回は別の方にご教授いただきました数式で運用することになりましたが一番早くご連絡いただきましたchie65535さんに心から御礼申し上げます。 本当にありがとうございました!
補足
chie65535さん、補足のご連絡ありがとうございます! 大変恐縮です。 今回ご教授いただきました式にて再度試してみたいと思います! 本当にありがとうございました。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
B13のセルに以下の式を書いて、B13~E18の範囲にコピー =VLOOKUP($A13,$A$4:$E$9,(B$12=$B$3)*2+(B$12=$C$3)*3+(B$12=$D$3)*4+(B$12=$E$3)*5,TRUE) 表の横の列数が増えた場合は (B$12=$B$3)*2+(B$12=$C$3)*3+(B$12=$D$3)*4+(B$12=$E$3)*5 を (B$12=$B$3)*2+(B$12=$C$3)*3+(B$12=$D$3)*4+(B$12=$E$3)*5+(B$12=$F$3)*6 のように増やして、検索範囲も $A$4:$E$9 から $A$4:$F$9 のように広げます。 なお (B$12=$B$3)*2+(B$12=$C$3)*3+(B$12=$D$3)*4+(B$12=$E$3)*5 の式は「同じ名前があったら、あった場所によって、2~5を返す式」です。
補足
chie65535さん、さっそくのご連絡ありがとうございます! 補足説明までいただきまして大変恐縮です。 早速試してみたいと思います! ありがとうございました。
お礼
keithinさん、こんばんわ。 ご連絡が遅くなりまして申し訳ありません。 方法1で実現できました! 周りと話し合い、ご教授いただきました方法1で運用することになりました! 今回は方法2で確認する時間がなかったため(スイマセン)、今後の勉強も兼ねて別の業務で使えそうなので明日以降試してみたいと思います。 本当にありがとうございました!
補足
keithinさん、ご連絡ありがとうございました。 前回は本当にお世話になりました。 今回もご連絡いただきまして本当にありがとうございます。 2通りの運用をご教授いただきまして誠に感謝いたします。 まずはご教授いただきました方法で試してみたいと思います! 取り急ぎ御礼申し上げます。