• 締切済み

VLOOKUP 参照について

ファイルAのなかにリストと重量のシートがあります。 VLOOKUP'重量'にて参照させてます。 同じファイルを数人に分散し、結合時にファイルBに追加したら、VLOOKUP'[データA.XLS]重量'となりました。再起動時に「このブックには他のデータソースへのリンクが含まれている」とメッセージが出ました。 各自、「重量シート」にないものは、任意入力してますので、ファイルBの式を追加分にコピーしたら任意入力したものが消えてしまいます。 最終的にはファイルBのみ保管したいのですが、良い方法があれば教えて下さい。

みんなの回答

noname#11836
noname#11836
回答No.5

>表示側に次の式を入れてます。(BQ=データベース) 1つだけですと、比較できませんので、 いくつか教えてください。 (100行全部とはいいませんので)

beakichi
質問者

補足

<表シート> PIPE SIZE M @BQ TOTAL_BQ     KEY ---------------------------------------------------------------------------------- PIPE 100A 3 =VLOOKUP(KEY,<重量シート>,@BQ) 15(M x @BQ)   PIPE100A <重量シート> KEY @BQ -------------------- PIPE100A 5 このファイルを2つ作って「表」のPIPEを別のファイルの「表」にコピーします。

noname#11836
noname#11836
回答No.4

#2です 今回の解決策は、#3さんの方法でいけそうですが、 根本的に解決できるのではないかと思っています。 VLOOKUPということは、表(データベース)部分と、 それを(VLOOKUPで)表示する部分があるわけですね。 > 100行づつ、2人で作成したとします。 作成とは、どちら側ですか (データベース?表示?) > 表の中には、同ファイル内の重量のシートを参照する式を入れてます。 具体的(もしくは、それに近い)式を教えてください > 重量シートにない部品は、各自調べて入力してます。 作成とは、このデータベースの部分でしょうか? > Aさんの100行をBさんのリストに追加したら、 > Aさん作成分の式が「Aさんデータを参照」となり、 > データを開くたびに「リンクが含まれている」のメッセージが出ます VLOOKUPの式にある名前「重量」の範囲に$が 付いているのが原因って事はないでしょうかね?

beakichi
質問者

補足

「重量」の範囲から$を(列のみ)取ってもダメでした。 作成とは、どちら側ですか・・・表示です 作成とは、このデータベース?・・・表示に直接です 表示側に次の式を入れてます。(BQ=データベース) =IF(ISERROR(IF(D3=1,(F3-J3)*J3*0.02466,(VLOOKUP(R3,'@BQ'!$N$2:$O$2158,2,0))))=TRUE,"",(IF(D3=1,(F3-J3)*J3*0.02466,(VLOOKUP(R3,'@BQ'!$N$2:$O$2158,2,0))))) よろしくお願いいたします。

  • kunpoo
  • ベストアンサー率25% (43/171)
回答No.3

No1です。 マクロにして、「集約完了」ボタンとかに貼っておけばどうでしょう?

noname#11836
noname#11836
回答No.2

>同じファイルを数人に分散し、結合時にファイルBに追加したら、VLOOKUP'[データA.XLS]重量'となりました。 この手順をもう少し詳しく教えてください

beakichi
質問者

補足

説明がヘタですみません。 100行づつ、2人で作成したとします。表の中には、同ファイル内の重量のシートを参照する式を入れてます。 重量シートにない部品は、各自調べて入力してます。 Aさんの100行をBさんのリストに追加したら、Aさん作成分の式が「Aさんデータを参照」となり、データを開くたびに「リンクが含まれている」のメッセージが出ます。

  • kunpoo
  • ベストアンサー率25% (43/171)
回答No.1

重量シートの「[データA.XLS]」を「[ファイルB.xls]」に全置換する。

beakichi
質問者

お礼

ありがとうございます。 誰でも使えるよう、「ひながた」を作ろうと思いますが、全置換は、データを集約した人に教えておくことになりますね

関連するQ&A

  • VLOOKUP関数で開いていないファイルを参照

    月度ごとのファイルがあり、フォーマットは全て同じです。 <例> 一覧データ0604.xls 店番 金額 111  15000 112  10000 この金額を一覧表にしたいと思います。 店番  0604 0605 ・・・ 111  15000 12000 112  10000 18000 この一覧表を作るために、VLOOKUP関数を使いました。 普通に入れると、ファイル名の変更が面倒なので、作業行を作っています。 店番  0604 0605 ・・・ 作業行 111  15000 12000 112  10000 18000 06年04月の作業行(B2セル)には以下の式を入れています。 ="'D:\マイドキュメント\[一覧データ"&B1&".xls]全店明細'!$A:$B" そして実際のVLLOKUPは111店の場合こうです。(B3セル) =VLOOKUP($A3,INDIRECT(B$2),2,0) これでフィルコピーしてデータを持ってくることはできるのですが、一覧データファイルが開いていないとダメです。 すると2年分であれば24個のブックを開かないといけません。 出来ればファイルを開かずに使えると良いのですが、この式ではダメですよね? もしできる方法があれば教えて下さい。よろしくお願いいたします。

  • エクセル関数VLOOKUPの範囲の一部をセルで指定

    ファイル名2103.XLSあるとして、その2103.XLSファイルとは別のファイル名集計.XLSに、その2103.XLSファイルから関数VLOOKUPでデータの値を返したい場合、式の範囲には普通は [2103.xls]Sheet1!$A$1:$B$10 と入力されますが、この範囲の一部分をセルで指定できないでしょうか。例えば、ファイル名集計.XLSのA1セルに文字列で"2103"と入力されているとしまして、式の範囲 [2103.xls]Sheet1!$A$1:$B$10 の2103部分を[A1.xls]Sheet1!$A$1:$B$10のような式は出来ないでしょうか。

  • VLOOKUPで他のシートを参照する場合

    シートが(1)「値表示」と(2)「データ」の2種類があります。 (2)にはB1:D4、B5:D8、B9:D12というように、セル12個分にそれぞれ独立したデータ表があり、このデータが全部で10個あります。 そして、このデータから任意の値を(1)「値表示」シートに表示したいので、(1)のセルA1に「=VLOOKUP(A2,データ!,B1:D4,2,FALSE)という式を入れます。 これで、(1)のA1(2)のシートのデータ表から任意の値が表示されるのですが、このA1に入力した式をコピーして、A10までそれぞれの表に対応したVLOOKUPの数式を入れたいのですが、普通にコピーするとA2以降に入力される式はデータの参照範囲がA1の範囲から1セル分だけずれたB2:D5となっています。A2が参照する範囲は本来はB5:D8にしたいので、一つずつデータの参照範囲を修正しないとならないのですが、このような場合は、やはり一つずつ修正するしか方法がないのでしょうか。 もっと、素早く参照先を変更できる方法がありましたら教えてください。

  • [EXCEL]VLOOKUP関数がうまくいかないので助けてください

    あ.xls   B  C  1 10   2 12 3 15 い.xls   B  D 1 10 100 2 15 150 3 18 180 あ.xlsファイルのC列に、 あ.xlsファイルのB1セルと、い.xlsファイルのB1を見比べて同じ値なら、 い.xlsファイルのD1の値をあ.xlsファイルC1に値を表示する数式を 入力しようと思います。 「=VLOOKUP(B1,[い.xls]Sheet1!$1:$3,4,false)」と あ.xlsファイルのC1セルに数式を入力しましたが、すべてエラー(#N/A)で 返ってしまいます。 正常に機能するよう、数式を教えてください。

  • VLOOKUPで他のシートを参照する場合

    数式に間違いがあったので、前回の質問をいったん締め切って、再度投稿いたします。 シートが(1)「値表示」と(2)「データ」の2種類があります。 (2)にはB1:D4、B5:D8、B9:D12というように、セル12個分にそれぞれ独立したデータ表があり、このデータが全部で10個あります。 そして、このデータから任意の値を(1)「値表示」シートに表示したいので、(1)のセルA1に「=VLOOKUP(B1,データ!,B1:D4,2,FALSE)という式を入れます。 これで、(1)のA1(2)のシートのデータ表から任意の値が表示されるのですが、このA1に入力した式をコピーして、A10までそれぞれの表に対応したVLOOKUPの数式を入れたいのですが、普通にコピーするとA2以降に入力される式はデータの参照範囲がA1の範囲から1セル分だけずれたB2:D5となっています。A2が参照する範囲は本来はB5:D8にしたいので、一つずつデータの参照範囲を修正しないとならないのですが、このような場合は、やはり一つずつ修正するしか方法がないのでしょうか。 もっと、素早く参照先を変更できる方法がありましたら教えてください。

  • VLOOKUPがうまく行かない

    VLOOKUP関数でSheet1のA2セルに=VLOOKUP(B2,Sheet1!$A$1:$B$22,1)と入力すると、012というコードが変えてこないといけないのですが、Sheet1の1行目の最終行のデータを持ってきてしまいます。昇順に並べ替えもしているのに、何故でしょうか?

  • 別ファイルを参照しながらシート名を動的に

    Excelにて、VLOOKUP関数を使用し別ファイルを参照してます。 (こちらをAファイルとします) 別ファイル(こちらをBファイルとします)にはいくつかシートがあり、Aファイルに入力された値によって、Bファイルを参照するシートを変更したいのですが、うまくいきません。 AファイルはC:\workに BファイルはC:\work\workにそれぞれ配置してあります。 AファイルのセルA1には任意の値を入力可能で、その値によって参照するBファイルのシートを変更できます。 VLOOKUP(B1,INDIRECT("'C:\work\work\[Bファイル.xls]"&A1&"シート'!$A$1:$B$100") Aファイルに上記のような関数を書いても、#REFと表示されてしまいます。 どこがおかしいのでしょうか? #AファイルとBファイルを同時に開いている状態だとうまく表示されました。

  • VLOOKUPに関して教えてください

    EXCEL97です VLOOKUP関数で =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)という式を入力して次の列にコピーすると =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)とコピーしてしまいますよね 次の行には=VLOOKUP($B$1,SHEET!$A$2:$Q$30,3,0)にしたい時があるのでいつも 手入力で2→3に変更するかVLOOKUP式を入れなおしているのですが 手入力せずに2→3をコピーできる方法ってありますか? VLOOKUP式を使うことが多く毎回めんどくさくて・・・ どなたか教えてくださいませんか?

  • ExcelのVLOOKUP関数で時刻を扱うと

    こんばんは。 提出用の勤務表を作ろうと思っています。 ほぼ同じフォーマットで、入力用(a.xls)と提出用(b.xls)のファイルが2つあります。 2つのファイルに入力するのも手間なので、VLOOKUP関数で時刻だけ呼びだそうとしましたが、0:00になります。 どうしてでしょうか。 A列に日付、B列に始業時間、C列に終業時間を入れています。 始業時間を呼び出すのは日付を検索値にしたので、関数式はVLOOKUP($A1,[b.xls]Sheet1!$A$1:$c$31,2,TRUE)で合っていると思います。 どちらも表示形式は"h:mm"です。

  • VLOOKUPで

    Excel2000を使っています。 Sheet1のB列に=IF(ISBLANK(A1),"",VLOOKUP(A1,Sheet2!A1:C100,2,0)) Sheet1のC列に=IF(ISBLANK(A1),"",VLOOKUP(A1,Sheet2!A1:C100,3,0))を入れてあります。 Sheet2のA列にはコード番号、B列には氏名、C列には住所が入っています。 Sheet1のA列に番号を入力すると、B,C列に氏名、住所が表示される表を作りましたが、Sheet2にデータを追加したら番号を入力しても、追加したメンバーについては、エラー表示(#N/A)が出てしまいます。 コード番号は頭にゼロが付くので、Sheet1のA列は文字列、Sheet2はすべて文字列にしてあります。 最初はうまくいってたのですが、後から追加した分だけがエラーになります。他のリストからデータをコピーし、値のみを貼り付けてだめだったので、手入力してみたのですがやはりだめでした。検索範囲を超えていることは絶対にありません。 どうしてもわからないので、質問させていただきます。 心当たりございましたらよろしくお願いいたします。

専門家に質問してみよう