他のブックファイルのセルの参照が上手く行かない理由は?

このQ&Aのポイント
  • エクセルのブックファイル(Book1.xlsx)に、他のブックファイル(Book2.xls)のセルを参照しようとした際、参照先を変更した場合に参照ができなくなる問題が発生しています。
  • 参照先のブックファイルを変更した際、参照式が表示されたままでデータが表示されない現象が起きています。
  • この問題の原因は、参照式にフルパスで参照しているため、ファイルの場所が変わると参照ができなくなることが考えられます。また、ファイルが互換モードで表示されることも関係しています。
回答を見る
  • ベストアンサー

他のブックファイルのセルの参照が上手く行きません

こんにちはよろしくお願いいたします。 エクセルのブックファイル(Book1.xlsx)に,他のブックファイル(Book2.xls)のセルの値を参照しようと思い”=”を入力し参照するブックファイルのセルをクリックし,「 =[Book2]Sheet1!$A$1 」のような参照を行いました。こうしてきちんと表示されました。 しかし,この参照の式を「 =[Book3]Sheet1!$A$1 」のように,他のブックファイル(Book3.xls)のセルに変更したところ,参照できなくなりました。ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となっています。式は,キーボードを使って変更しました。もちろん,(Book3.xls)は,(Book2.xls)と同様のシート形式をもち,データも入力されています。 このような状態になると,先に挙げたように,”=”を入力して参照するブックファイル(Book3.xls)のセルをクリックしても,ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という式そのものが表示された状態となったままで,(Book3.xls)のデータは表示されません。 (Book2.xls)と(Book3.xls)のセルのデータは,文字列です。 気になるのは,(Book1.xlsx)はoffice2010で作成されたファイルであること,(Book2.xls)と(Book3.xls)は,互換モードと表示されるファイルであること,また表示されているファイルを見ると,フルパスで参照している点です。「 ='C:\aaa\bbb\・・・・・[Book3]Sheet1'!$A$1 」という参照式になっています。3つのファイルはすべて同一ファイルに入っています。 何が,参照を阻んでいるのでしょうか?教えてください。よろしくお願いします。

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

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

式が文字列で表示されてしまったセルの書式設定が,文字列の設定になっています。 セルを右クリックして書式設定から表示形式の中で,とりあえず標準に戻してから改めて数式のを開始し,そのままEnterしてください。

emikouji
質問者

お礼

keithinさん,ありがとうございました。 おかげさまで解決しました。 しかし,私は,文字列に設定した覚えはないのになぜそのようになってしまうのか不思議です。 以前にも,標準となっているべき所が文字列になっており,それを配布して他の人々に入力してもらうという状況のときに,以前のバージョンのエクセルで長い文字列を入力すると「#######」というふうに表示され,入力が困難になったとのクレームを受けたことがありました。今思うと,今回と同様の現象が起きて,標準だった表示形式が,文字列に変更されたものと思います。 なぜ,このようなことが起きるのか,よろしければ教えていただけませんでしょうか? よろしければ,今後のために,是非お願いいたします。

その他の回答 (1)

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

ご相談の状況は,多くの場合に 1.元データのセルの表示形式を「文字列」にしていて 2.数式を入れるセルの表示形式が「標準」になっているときに 3.元データのセルを参照する数式を記入してEnterする と発生します。 3番の操作の時点で数式は正常に機能していますが,エクセルの「親切」機能でセルの書式設定が元データの文字列書式を引き写してきてしまっている(数式セルの表示形式を確認してみると見えます)ため, 4.改めて数式セルを編集しEnterしようとすると,文字列扱いで「数式の文字列」が現れる という結果になります。 この「親切」機能自体は,たとえば「カンマ区切りや日付・時刻形式のデータを参照する式では,計算結果も原則として元データと同じ書式で表示された方が自然である」という事で,多くの場合には便利ですし,そのように動作させないよう機能を停止する方法は用意されていません。 対処方法の1) 1番の状況を潰します。 つまり元データのセルに「文字列を入れるから文字列設定にしておこう」のような事をしていた場合は,標準の書式でも文字列をふつーに記入できるので,文字列の設定をやめて標準に戻しておきます。 しかし元データにたとえば「0001」のような格好でデータを入れなきゃイケナイ(「’0001」のようにイチイチ入力したくない)など,理由があるから文字列設定にしている場合は,この方法は使えません。 対処方法の2) 2番の状況を潰します。 いま問題は,数式を記入したセルの書式が「標準」になっているから起こります。 そこでいま取ってきたいデータは「文字列」である事が確定なので,数式セルの書式を「標準」ではなく(もちろん文字列でもない)例えば「数値」などにしておくと,状況を回避できます。 また標準でなければ起きないので,数式セルに別の目的で事前に何かユーザー定義の表示形式を付けていた場合は,気づかない内に問題も回避できています。

emikouji
質問者

お礼

keithinさんありがとうございます。 確かにおっしゃる通りの状況で,元データが文字列で,引っ張ってくる方のセルは標準になっていました。 勉強になりました。ありがとうございました。

関連するQ&A

  • EXCEL2010 他ブック セル参照

    Book1のA1セルに、Book2のA1セルを参照するため、 ='D:\TEMP\[Book2.xls]Sheet1'!$A$1 を入力しています。 Book2のSheet1には、マクロを組んでいて、その結果を$A$1から$C$50の範囲に表示させています。 Book1のA1からC50までには、Book2のA1セルからC50までには、同様の式を入力しています。 ご教授願いたい内容は、Book2のマクロ実行後に、Book1に='D:\TEMP\[Book2.xls]Sheet1'!$A$1 を入力した場合は、その結果が表示されるのですが、その後にBook2を更新しマクロ実行すると、Book1の式が='D:\TEMP\[Book2.xls]Sheet1'!'!#REF!とエラーになってします。 Book2を開いて、整列表示の場合でも(='[Book2.xls]Sheet1'!$A$1)結果は、同じです。 何か大事なことを忘れている?または、マクロ実行結果を参照するのは元々無理なのか?悩んでいます。 一応ネット検索したのですが、該当する対処方法が見つけられず、困っています。 解決方法をご教授いただきたく、お願いいたします。

  • Excel セル参照で参照ブック指定

    指定したセルに拡張子を抜いたブック名を入力し、そのセルを参照してブック参照することは可能でしょか? 「INDIRECT」では参照ブックを開かないと表示されないため目的が達成されません。 (例) Book1.xlsx A1=test Book2.xlsx A1=Book1 A2=["&(A1)&".xlsx]Sheet1'!A1 何か良い解決策をご存知の方、ご教授願います。

  • 参照先をセルに入力して、他のブックのセルを参照する方法

    Excelで、他のブックのセルを参照したいです。 たとえば、あるExcel(test.xls)上から、別のフォルダにある複数のブック C:\AAA.xls D:\BBB.xls の値を参照する場合ですが(AAA.xlsとBBB.xlsは、値の内容は違うが、同じシート名の同じセルに値が入っている)、 test.xlsのSheet1のA1に「C:\」、A2に「AAA.xls」を入力すると、test.xlsのSheet2にはAAA.xlsの値を表示し、 test.xlsのSheet1のA1に「D:\」、A2に「BBB.xls」を入力すると、test.xlsのSheet2にはBBB.xlsの値を表示するような方法です。 参照先が固定であれば、='C:\[AAA.xls]Sheet名'!D5・・・のような指定ができるのですが、参照するファイル名とパス名が都度変わるので、入力したセルの値で参照先を変えたいのです。 ちなみに、INDIRECTを使うやり方も考えましたが、参照先のブックを開いていないと値が表示されないようなので、却下されました。 (参照先のブックは開かなくても値を参照させたいです) どなたかご存知の方がいらっしゃったら、教えてください。 よろしくお願いします。

  • 他ブックのセル参照するのに名前をセルで指定して参照させたい。

    他ブックのセル参照するのに名前をセルで指定して参照させたい。 題名が適当でないかもしれませんが、よろしくお願いします。 オフィス2000もしくは2002です。 200604.xls、200605.xlsという日付を基にした名称の規則的なブックがあります。 ファイル自体はネットワークの共通ドライブにあります。 それぞれsheet1に同様の形式で値のデータ(文字)が入っています。 その中のA1、B1、C1~・・・の値を 別ブック(仮にtest.xls)のA1に2006、A2に5と入力させることによって test.xlsの3行目に200605.xlsのA1、B1、C1~・・・の値を表示させたいです。 ブック名 test.xls    A列  B列  C列 ・・・・・・ 1行 2006 2行  5 3行 200605.xlsのA1、B1、C1~の値を表示させたいです。 4行 フォルダー名\[200605.xls]sheet1'!A1、次B1、次C1、と都度埋め込んでいけば値自体は出るのですが、 ブック名が手軽に変えられなくて困っています。 test.xlsのセルに埋め込んだ ='フォルダー名\[200605.xls]sheet1'!A1の [カッコ内]の文字をA1,A2セルに入れた値で参照させたいのですが、、、。 (A2は5ですが、参照したいのは2006の05というのも少々ミソです) 結果が同じなら手段はそんなには問いません。 よろしくお願いします。

  • エクセル 他ブックからデーターの参照。

    一つのブックに名前が1、2、3~31と31枚シートがあって、月毎にブックを分けて管理している 物があるのですが、ほぼすべてのデーターが前日のデーターを必要としており、月が替わった 1日のデーターで前月のデーターを取得する際、 『 =[23-01.xlsx]31!XX 』 といった感じでデーターを拾ってきてます。その翌月は 『 =[23-02.xlsx]28!XX 』 という風になるのですが、23-01を23-02へ、31を28へと 置き換えるのに数も多く非常に時間がかかって困っています。 ※ XXは任意のセル。 上手く言葉で表現できないのでイメージですが (A1のセルに 23-01.xls を入力)(A2のセルに 31 を入力)で 『 =[A1]A2!XX 』と入力したら23-01.xlsの31というシートからXXデーターを 取得するといった風な感じの事を行う方法は無いのでしょうか? ○○関数でこうすればとかVBAでこうすればとかあれば知恵をお貸しいただけると 助かります。 よろしくお願いします。

  • 【Excel-VBA】アクティブセルが参照しているブックを開くには?

    いろいろ検索したのですが、見つからないので質問させていただきます。 対象のセルが他ブックのセルを参照しているとき、そのブックが開かれていない場合、正しい値にはなりません。 (例:A1に =[Book2.xls]Sheet1!$A$3 が入力されている) そこで、そのセルが参照しているブックをVBAで自動的に開く方法を考えています。 つまり、例で言えば、Book2.xlsを開きたいのです。 文字列関数を使ってひとつひとつの文字を取得し、ファイル名を得て開く方法しかないのでしょうか? 何かいい方法があれば教えてください。 よろしくお願いします。

  • 他のファイルを参照するために

    現在、アクセスが使える環境ではないので、エクセルのファイルを簡易データベース的に使っています。 毎月の売上や販売商品の詳細をシート分けして、日々入力していますが、三ヶ月ごとに集計させたいと考えます。テンプレートとして一つのファイルを月ごとに使用しているので、列・行ともおなじ位置にあります。 そのファイルが各担当者ごとにあるので、担当者ごとにフォルダーを作り、そのフォルダーの中に月ごとのファイルが存在しています。ファイル名は「book3」「book4」というふうに、bookの後にその月名が入っています。事情があり各自の集計開始時期が違うため、 =[book3.xls]売上!B13という式で参照させられません。 =[book*.xls]売上!B13のbookの後ろの「*」を仮にどこかのセルに「3」とか入力すれば、参照できるというふうにできませんか? 長い文でもうしわけありません。お助け下さい。

  • excelで外のブックのセルを参照が上手くできない

    excelでの操作で行き詰まっています。 他のexcelファイルのセルを参照するのに、1つのセルにドライブパス名からファイル名までを すべてを入力すると参照したいファイルを開いて無くても参照出来るのですが ドライブパス名のセルとファイル名のセルを組み合わせた時に、開いて無い時は参照が出来ません。 参照したいファイルを開いた状態なら見れますが開かない状態で参照するには どうしたら良いのでしょうか? ='D:\user\[abcde.xlsx]Sheet1'!B1 ・・・ abcde.xlsxを開いて無くてもB1が参照出来る。 A1セルに 'D:\user\[ A2セルに abcde.xlsx A3セルに Sheet1'!B1 と入れて =indirect(A1&A2&A3) ・・・ 参照できない ファイル名を随時変更して参照したい為の作業です。 乱文ですみませんが、ご教示願います。

  • 異なるブックを結合した時のセル参照

    excel2003 異なるブックを結合した時に、セルの値を参照する方法を教えてください。 条件は、下記の通りです。 a.xlsのsheet1のA1セルのセル名称をnameとします。 b.xlsのsheet2のA1セルで=nameとします。 aとbのファイルを結合した時、a.xlsのsheet1のA1セルに何か文字列…(1)を入れた時、 sheet2のA1セルで(1)の文字が参照できる様にしたい。 同一ブック内で上記の内容実施時は、sheet2のA1セルでsheet1のA1セル参照可能ですが、 ブックを結合した時、excelの仕様なのか、 #REF!と表示されてしまいます。 最初から一緒になったファイルで作成すれば問題ないのですが、 aのファイルは共用なので、使用する時に結合する構成としているのです。 異なるブックを結合して上記の対応が可能になる方法はないものかどうか、 何か、他の代案はないかアイデアいただきたく。

  • エクセル)VBAで他のブックのセル参照

    はじめまして。 エクセルのVBAについて教えてください。 VBAで、 book1のsheet1のセルA1にあるデータを開いていない(アクティブでない)別のbook2のsheet2のセルB1にコピーしたいのですがこんなことってできるのでしょうか? ・・やはり開いていないとダメなんでしょうか? あと、これって"ブック参照"っていうことなんでしょうか?自分がやりたいことが何なのか判らないので上手く調べる事が出来ず難儀しています。 よろしくお願いします。

専門家に質問してみよう