• ベストアンサー

EXCELのVLOOKUPでできますか?

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

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

  • ベストアンサー
  • free-goo
  • ベストアンサー率18% (28/155)
回答No.4

#2のものです。 VBか、マクロですかね。 初歩的なやりかたですが、A列かつB列が同じもので検索となれば、BOOK(B)のA列に 列挿入をして、そこに、予算番号{50}と整理番号{25}の 文字の足し算した結果をいれる 例.B列予算番号 C列整理番号 A列の数式は=B1&C1 結果5025となります。 BOOK(A)で、先ほど記載しましたやりかたで、=if(iserror(VLOOKUP(BOOK(A)のA1&B1,BOOK(B)!$A:$Z,何列目か指定する,false)),”該当なし”,VLOOKUP(BOOK(A)のA1&B1,BOOK(B)!$A:$Z,何列目か指定する,false) これで、キーを見て、存在すれば、指定された何列目が表示され、キーが存在しなければ「該当なし」と表示されます。該当なしの時に 空白にしたければ 数式内の”該当なし”を””にすれば いいですが、どうでしょうか??? 注意として BOOK(B)の列を挿入して文字の足し算で注意が必要です 予算番号  整理番号  足し算結果 1     1     11  問題ないですが 1     11    111 11    1     111 この二つは同じになるので、整理番号のほうを最大桁数に合わせる事を進めます 偉大桁数が4桁の場合は =B1&right(”0000”&C1,4) そうすると、 予算番号  整理番号  足し算結果 1     1     10001  1     11    10011 11    1     110001 これで ブッキングはなくなります。但し VLOOKUP側も同じようにしなければなりませんので VLOOKUP(A1&right(”0000”&B1,4)という具合に うまく説明できなくて すいません。

yuko0909
質問者

お礼

丁寧に教えていただきありがとうございます。 よく読んで、チャレンジしてみます。 がんばります。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

#5の22行目の「最右列」と書いたのは、「最左列」の誤りです。済みません、訂正します。

yuko0909
質問者

お礼

ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

ご質問を始めて読んだ時、問題の意味が理解できませんでした。#1の補足を読んで判りました。 この質問の難しさ(特徴)は次ぎの2点です。 ------- (1)検索する表が別ブックにある。Book(B)にある。(普通は別列や別シートにあることが多い) (2)検索値が2列に跨って(入力値も検索する表も) 跨っていて、両方一致したものを引いてきて欲しいこと。具体的には、予算番号と整理番号。(普通は1列の値) ------- (2)の解決法(注意事項) ・両列の値を結合したものを1つの列を増やして作る。 もし予算番号と整理番号が数値で入っているとして、1と11も11と1も結合すると同じになってしまうので、2列とも先頭に0を入れて、数字文字桁数を揃えた上で結合する。 =MID("0000",1,4-LEN(A1))&A1&MID("0000",1,4-LEN(B1))&B1のように。4桁の場合の例。 ・表示形式だけを細工して0001のように見えるようにしてもだめです。値を変えたものを別列につくること。 ・結合したコードを作る列の場所ですが、結合したコード-件名―年度-工事件名の順にすること。表範囲指定した最右列に検索値を持ってこないといけないので。 (1)の対処法 テストでブックbb1.xlsを開き、A1:B5に 1 大阪 2 仙台 3 東京 4 静岡 5 名古屋 を入れ、もとのBook1のD1に式 =VLOOKUP(A1,'C:\My Documents\[bb1.xls]Sheet1'!$A$1:$B$5,2,FALSE) をいれた。A1に2と入れると、仙台と表示された。 他ブックを参照するのは(A)[ ]でブック名を囲むこと(B)フルパスは’’で囲むこと(C)表は絶対番地($付き)で表現すること(D)第4引数はFALSEにすること、が注意。 以上を参考・注意事項としてやって見てください。

yuko0909
質問者

お礼

回答ありがとうございました。 教えていただいたやりかたでやってみます。 感謝します。

  • terakura
  • ベストアンサー率20% (4/20)
回答No.3

VBA超初心者ですが・・・ 多分これで出来るかと。 Sub 入力マクロ() a = "BookA.xls" b = "BookB.xls" Windows(a).Activate Cells(2, 3).Select Do While ActiveCell.Offset(0, -2) <> "" 予算番号 = ActiveCell.Offset(0, -2).Value 整理番号 = ActiveCell.Offset(0, -1).Value Windows(b).Activate If ActiveCell.Value = 予算番号 And _ ActiveCell.Offset(0, 1).Value = 整理番号 then 件名コード = ActiveCell.Offset(0, 2).Value 年度 = ActiveCell.Offset(0, 3).Value 工事件名 = ActiveCell.Offset(0, 4).Value Windows(a).Activate ActiveCell.Value = 年度 ActiveCell.Offset(0, 1).Value = 件名コード ActiveCell.Offset(0, 13).Value = 工事件名 ActiveCell.Offset(1, 0).Select Windows(b).Activate Cells(2, 1).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, 0).Select Else Windows(a).Activate ActiveCell.Offset(1, 0).Select Windows(b).Activate Cells(2, 1).Select End If Windows(a).Activate Loop End Sub

yuko0909
質問者

お礼

できるかどうかわかりませんがやってみます。 ありがとうございました。

  • free-goo
  • ベストアンサー率18% (28/155)
回答No.2

データ数は どれくらい ありますか?? 検索して、その中から あれば 引用するのでしょうか そのキーになる部分が、A1かA2に なるのでしょうか?? どちらかに、あると云う前提でいきますと BOOK(B)のA3で =if(iserror(vlookup(BOOK(A)A1,探し先,何列目か,false)),vlookup(BOOK(A)A2,探し先,何列目か,false)),vlookup(BOOK(A)A1,探し先,何列目か,false)これであれば 1つ目のVLOOKで、探した内容が #N/A等のエラーになっても、2つ目のVLOOKで処理をする、列行がちがうのであれば、HLOOKでも 同じですが 質問に対して、違っていたら ごめんなさい できたら 具体的に 教えて下さい(内容を・・)

yuko0909
質問者

補足

補足します。 えっとですね、BOOK(A)は385件、BOOK(B)は73件あります。 やりたいことは、BOOK(A)のA列に予算番号、B列に整理番号なるものが入力されています。さらに、C列に年度、D列に件名コード、P列に工事件名を入力したいです(現在C,D,P列は空白です。) それで、BOOK(B)のA列には予算番号、B列には整理番号、C列には件名コード、D列には年度、E列には工事件名がそれぞれ入力済みです。 BOOK(A)の予算番号かつ整理番号の組み合わせが、BOOK(B)の予算番号かつ整理番号の組み合わせと合致した時、BOOK(B)の件名コード、年度、工事件名をBOOK(A)の各C,D,P列に返したいのです。 ややこしくてすみません。 どうすれば、できるでしょうか・・・

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

マクロで作れば できます。

yuko0909
質問者

補足

マクロですか。 マクロの記録ぐらいしかやったことがないのですが、どのようにやればいいんでしょうか・・・ よろしければおしえてください。

関連するQ&A

  • エクセルVLOOKUP関数の参照先に関して

    エクセルのVLOOKUP関数に関する質問です。 BOOK(1)とBOOK(2)(それぞれは別フォルダに入っています)があり、 BOOK(1)の中でVLOOKUP関数を用いて、BOOK(2)からデータを参照しています。 参照先のBOOK(2)は管理者以外読み取り専用となっていますが、 たとえ保存できなくても誰かがデータを書き換えたり、別名で保存したりすると、VLOOKUPの参照結果も、書き換え後のデータ(別名保存したファイル)になってしまうようです。 希望としては、VLOOKUPの参照先であるBOOK(2)を固定したいです。 この件に関して、対処法はありますでしょうか。

  • EXCELでVLOOKUPの範囲の編集ができない

    EXCEL(ver.2010)でブック1とブック2(別のエクセルファイルです)がありブック2のとあるセルをコピーし、ブック1に張り付けたところ困ったことが起こりました。 ブック2のとあるセルとはb1とします。中身は =vlookup(a1,test,2,0) これをブック1のb1に張り付けましたが範囲がブック2のtestと言う範囲を参照してしまいます。 ブック1にもtestと言う名前が定義されていて、こちらを参照したいのですがどうもうまくいきません。ちなみに張り付け時になんのダイアログも出ませんでした。 エラーのチェックで計算の過程を表示するとブック2を参照していることがわかりますが編集できませんし、数式バーの編集ではブック1のb1は=vlookup(a1,test,2,0)となっていてリンク部分がないため編集できません。 打ち直してもブック2を参照してしまいます。列を挿入して手打ちしてもやはりブック2を参照してしまいます。 どなたか知恵をお貸しください。 なお、作り直すことも検討しています。(別シートを作成して手打ちで済みます) もしなんらかの方法があるのなら知りたいと思い質問した次第です。

  • VLOOKUPがエラーになるのですが・・・

    ココで色々検索して、数式を入れてみたのですが、 エラーになってしまうので、教えてください 下記のような条件です (1)BOOK1には型式データ (2)BOOK2には型式と定価 BOOK1にBOOK2の定価を表示させたい (「BOOK1の型式=BOOK2の型式」となるものの定価を表示させたい) BOOK1のセルに、BOOK2のデータを貼り付け、 VLOOKUP(A2,$K$2:$K$270,2,0) という数式を入力してみたものの、エラーになってしまいます いったいどこがいけないのでしょうか?

  • エクセルでVLOOKUP関数

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

  • Excel 別々のBookの照合と値の返し方

    いつもお世話になっております。 エクセルのデータで別々のBookの照合をしたいと思い、VLOOKUPで試しましたが、上手くできませんでした。。。 画像を添付しましたので、それにそって質問したいと思います。 (1)Book1のB列に式を入れたい。 (2)Book1のA列とBook2のA列の照合を行いたい。 (3)同じ内容なら、その隣のセル(Book2のB列に入っている値)を(1)に表示させたい。 というものです。 以上、宜しくお願い致します。

  • エクセル2007VLOOKUP関数について

    エクセル2007で同じブック内にあるシートからVLOOKUPを使用してリンクさせたいのですが計算式を入れてもはじめの一行しか返されません。他の行はエラーになってしまいます。 私が入れた式は =VLOOKUP($F$8,sheet2!$A$2:$AH$600,2,0) なんですが…どうすればシート全体を式に入れて使うことができるようになりますか??

  • エクセル 複数条件 VLOOKUP

    おしえて下さい。 エクセルで、下記の表のように【ブック1】のA列の条件に一致するものを 【ブック2】のシート1、シート2どちらかから検索して一致するものを 【ブック1】のB列へ抽出したいのですが、IF関数やVLOOKUPの組み合わせで 可能でしょうか? うまく説明できずにすみません。 例) 【ブック1】      A  B    1 001 あああ    2 004 えええ    3 003 ううう    4 006 かかか 【ブック2】 シート1      A  B     1 001 あああ    2 002 いいい    3 003 ううう シート2      A  B     1 004 えええ    2 005 おおお    3 006 かかか

  • Excel 別々のBookの照合と値の返し方

    いつもお世話になっております。 質問するカテゴリを間違えてしまったので、重複してしまい申し訳ありません。 エクセルのデータで別々のBookの照合をしたいと思い、VLOOKUPで試しましたが、上手くできませんでした。。。 画像を添付しましたので、それにそって質問したいと思います。 (1)Book1のB列に式を入れたい。 (2)Book1のA列とBook2のA列の照合を行いたい。 (3)同じ内容なら、その隣のセル(Book2のB列に入っている値)を(1)に表示させたい。 というものです。この場合どのような関数式を入れたらよいのでしょうか。 以上、宜しくお願い致します。

  • エクセルでLOOKUPの使い方について

    エクセルでLOOKUPの使い方について教えてください。 画像にて、 Book1のB列にA列に紐づくデータをBook2のA列のデータより取り込みたいと思います。 =LOOKUP(A1,[Book2]Sheet1!$B:$B,[Book2]Sheet1!$A:$A) とすると全く異なるデータが入ってしまいます。 使い方が間違ってますでしょうか?

  • エクセル 複数ブックのリンク一括変換について

    エクセル 複数ブックのリンク一括変換について いつもお世話になっております。 会社でファイルサーバーがあるのですが、 現在かなり乱雑な管理で、フォルダやデータなど ほとんど無造作に置いてある状態です(^_^;) そんな中、データなどを探しにくいという 声が多数上がりフォルダ構成などを 見直すという事態になりました(T_T) そこで懸念されるのが、エクセルで ブック間のリンクを使用していると 思うのですが、複数のブックのリンク部分を 一括変換、もしくは比較的容易に 変換出来る方法をご存知の方いらっしゃいませんでしょうか? VLOOKUP関数などを使用していると思います。 =VLOOKUP(A1,'\\aaa\bbb\[book1.xls]Sheet1'!$A$1:$B$10,2) を =VLOOKUP(A1,'\\aaa\ccc\[book1.xls]Sheet1'!$A$1:$B$10,2) といったように変換したいです。 どうぞ宜しくお願いいたします。

専門家に質問してみよう