EXCEL VLOOKUPとIFの組み合わせ

このQ&Aのポイント
  • EXCELのVLOOKUPとIF条件を組み合わせて、【元データ】から【手持ち資料】へデータを転記する方法について教えてください。
  • 【元データ】という名前のEXCELブックが毎月の売上資料として届きます。このデータを基に【手持ち資料】へデータを転記したいのですが、商品コードや店舗の配置が異なるため、VLOOKUPとIF条件を組み合わせてデータを持ってくる方法が知りたいです。
  • Windows XP SP3とEXCEL2003の環境で、EXCELのVLOOKUPとIF条件を使って【元データ】から【手持ち資料】へデータを転記する方法を教えてください。
回答を見る
  • ベストアンサー

EXCEL VLOOKUPとIFの組み合わせ

EXCELのVLOOKUPの使い方で1つ質問させていただきたく思います。 当方EXCELの知識が乏しいため、ご教授いただきたく思います。 (やりたい事)・・資料を添付しました 【元データ】という名前のEXCELブックが毎月の売上資料として本社より送られてきます。 内容は添付のA2-E9のような内容です。 このデータを基に今度は私が自分で管理している【手持ち資料】というEXCELブック(添付のA11-E18)にデータを転記したいのです。 この【手持ち資料】は【元データ】と内容はほとんど同じなのですが、商品番号や店舗の配置が異なるためVLOOKUPとIF条件を組み合わせて【元データ】から【手持ち資料】へデータを持ってくるようにしたいのです。(添付の黄色部分) イメージはVLOOKUPで【手持ち資料】ブックの商品コードを検索キーにして、【元データ】ブックを参照して両ブックの店舗名が同じなら数字を持ってくる、という格好にしたいのですが。 大変お手数ですが、どなたかご教授いただけませんでしょうか? 以下作業環境となります。 Windows XP sP3 EXCEL2003

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

方法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すると,手持ち資料の該当する行・列に勝手にデータを拾って埋めてくれます。

yakkun2338
質問者

お礼

keithinさん、こんばんわ。 ご連絡が遅くなりまして申し訳ありません。 方法1で実現できました! 周りと話し合い、ご教授いただきました方法1で運用することになりました! 今回は方法2で確認する時間がなかったため(スイマセン)、今後の勉強も兼ねて別の業務で使えそうなので明日以降試してみたいと思います。 本当にありがとうございました!

yakkun2338
質問者

補足

keithinさん、ご連絡ありがとうございました。 前回は本当にお世話になりました。 今回もご連絡いただきまして本当にありがとうございます。 2通りの運用をご教授いただきまして誠に感謝いたします。 まずはご教授いただきました方法で試してみたいと思います! 取り急ぎ御礼申し上げます。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! 別案です。 店舗名は必ずあるものとして・・・ 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

yakkun2338
質問者

お礼

tom04さん、こんばんわ。 ご連絡が遅くなりまして申し訳ありません。 今まで色々と数式を試行錯誤して試していました・・。 tom04さんからご教授いただきました数式での実現も確認できました。 今回は別の方にご教授いただきました数式で運用することになりましたがtom04さんの数式は大変勉強になりました。 本当にありがとうございました!

yakkun2338
質問者

補足

tom04さん、こんにちわ! ご連絡ありがとうございます! 別方法のご教授誠にありがとうございます! VLOOKUPを使わなくても出来るのですねー大変勉強になります。 ご教授いただきました方法でも試してみたいと思います! 取り急ぎ御礼まで。 ありがとうございました。

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.2

検索の型が間違っていたのと、列番号を返す式の部分を改良。 =VLOOKUP($A13,$A$4:$E$9,MATCH(B$12,$B$3:$E$3,FALSE)+1,FALSE)

yakkun2338
質問者

お礼

chie65535さん、こんばんわ。 ご連絡が遅くなりまして申し訳ありません。 今まで色々と数式を試行錯誤して時間が経ってしまいました・・。 申し訳ありません。 chie65535さんからご教授いただきました数式で実現できました! とても勉強になりました。 今回は別の方にご教授いただきました数式で運用することになりましたが一番早くご連絡いただきましたchie65535さんに心から御礼申し上げます。 本当にありがとうございました!

yakkun2338
質問者

補足

chie65535さん、補足のご連絡ありがとうございます! 大変恐縮です。 今回ご教授いただきました式にて再度試してみたいと思います! 本当にありがとうございました。

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.1

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を返す式」です。

yakkun2338
質問者

補足

chie65535さん、さっそくのご連絡ありがとうございます! 補足説明までいただきまして大変恐縮です。 早速試してみたいと思います! ありがとうございました。

関連するQ&A

  • エクセル VLOOKUP について

    エクセル関数について教えてください。 通常VLOOKUPは元データの右側の検索だと思いますが 左右両方への検索出来る方法はありますか? 例えば下のような配列の元データ(sheet2)があったとします。   A   B  C   D   E 1 あ  い  う  え  お 2 か  き  く  け  こ 3 さ  し  す  せ  そ sheet1の表「う(C1)」からの検索で左側の「あ(A1)」も右側の「お(E1)」も検索し、sheet1へ表示出来るようにしたいです。 仕事での管理書式で使用したいのですが、元データが客先支給なので配列が変えられません。 VLOOKUPにこだわってませんので何か方法はありますか? よろしくお願いします。

  • VLOOKUPとINDIRECTで別のEXCELファイルのシートを参照したい

    EXCEL2007を使用しています。 添付画像のように、例えば、B2のセルには =IFERROR(VLOOKUP(A2,INDIRECT($B$1&"!a:b"),2,FALSE),0) という関数があり、VLOOKUPとINDIRECTを使って同じEXCEL内の 別のシートを参照するようにしてあります。 ※シートをそれぞれ 0910,0911,0912という名前にして各年月毎に 商品コードと数量を入れてあります。 この商品コードと数量が入ったシートを数量.xlsxという別のEXCELファイルにして このMAINのEXCELシートにデータを持ってきたいのです。 何か方法はありますでしょうか?よろしくお願いします。

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • VLOOKUPの選択範囲について

    エクセル関数VLOOKUPの選択範囲についての質問です。 同一フォルダ内 1、商品名のブック   Sheet1…A業者の商品情報(範囲A1:E50)   Sheet2…B業者の商品情報(範囲A1:E60) 2、集計表のブック 上記の前提で、2の集計表のブックに 1の商品名のブックの中身、Sheet1とSheet2を共に範囲指定し VLOOKUPを使用する方法を探しています。 もしご存知の方がいらっしゃいましたら、教えてくださると嬉しいです。

  • VLOOKUPとIFの組み合わせで困ってます

    シートが2枚あり、sheet1は工事記録一覧、sheet2は納品書です。 sheet2のセルA1に、工事記録の管理番号を入力し、 セルA2以降に、管理番号に該当する住所や建物名、 工事種類などを表示させたいと思ってます。 参考にするセルが空欄の場合には、空欄のままにしたいので、 IF関数とVLOOKUP関数を組み合わせて 下のように自分で式を組んでみましたが、#N/Aになってしまいます。 =IF(A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE) 同一シート内で同様の式を入れた時は、希望通りの答えが返ってきましたが、 別のシートだと上手くいきません。 どなたか正しい式をご教授いただけますでしょうか。 エクセル初心者で、ネットや本で調べながら作成しているので、 分かりやすく教えていただければ助かります。 どうぞよろしくお願いいたします!

  • EXCELのVLOOKUPでできますか?

    VLOOKUPでできるかどうかわからないのですが、質問します。 BOOK(A)とBOOK(B)がありまして、BOOK(A)がA1かつA2で、BOOK(B)もA1かつA2の時、BOOK(B)のA3のデータをBOOK(A)のA3に返したいとき、どのような計算式を立てればよいのかわかりません。 どうか教えてください。 EXCEL97です。 ACCESSじゃないとだめでしょうか・・・ よろしくお願いします。(__)

  • エクセルでVLOOKUP関数

    お世話になっています。 Excel2003を使っています。 元となる名簿のブックAがあります。 それぞれ、違うブックにVLOOKUP関数を使って、範囲をAからリンクさせるようにしています。 ブックAの名簿は人が増えたり、個人データを新たに追加する毎に行や列が増えていきます。 今のところ =VLOOKUP(A1,'[ブックA.xls]名簿'!$A$3:$W$100,3,0)) この式を違うブックに入れているのですが、 ブックAの行数が増えても、「100」のまま動きません。 ブックAの行数・列数が増えたら、リンクしてる関数を入れている、他ブックも自動的に増えるようにする方法はありますか? 初歩的な質問ですみませんが、よろしくお願いします。

  • VLOOKUPでエクセル表の結合をするには?

    VLOOKUPを使用してエクセルデータAにエクセルデータBを追加していくのはどうすれば良いのでしょうか?元のA表はすごく大きな表で、追加の表を付け足していくのですがお助けください

  • VLOOKUPとIFCOUNTの組み合わせについて

    初めての投稿です。 下記の様な場合、どの様な関数で値を返すことができますでしょうか。。。 【 シート1の列Aにあるデータを参照し、該当があった場合、シート1のM列にある「特定データの合計値」をシート2のE3に返す 】 ※シート2のE3のセルにVLOOKUPとIFCOUNTの組み合わせの関数を入れる形になるかと・・・ ご存じの方がいらっしゃったら、是非ご教授頂けますでしょうか。

  • ExcelのVlookupでアクセスを参照したい

    質問があります。 掲題の通りですが、ExcelのVlookupでACCESSのクエリを参照してレコードを取得したいです。 今まで、ACCESSのクエリをExcelにエクスポートして、それをExcelでVlookupで持ってきていました。それを、Accessから直接Vlookupでもってきたいです。 ADO+VBAでやるだろうとは理解していますが、どうも難しくわからないです・・・。コードの記述を含めてやり方を教授して頂けると幸いです。 画像をアップロードしたのでよろしくお願いいたします。 画像のA1-D5がExcelで、下のテーブルはACCESSのものです。 ACCESSのテーブルをExcelのシートにコピペしてVlookupすれば良いのですが、後学のため、それと応用を利かすためにAccessのクエリを直接参照してデータを取得する方法を知りたいです。 よろしくお願いいたします。 それと、もし、その他オフィスの項目で聞くべきでしたら教えて頂ければ幸いです。 よろしくお願いいたします。

専門家に質問してみよう