ここから質問投稿すると、最大4000ポイント当たる!!!! >>

いまBOOK1.xlsがBOOK2.xlsの値を参照しています
BOOK1.xlsのどこかのセルにBOOK3と入れるとBOOK3.xlsの値を参照するようにできますか?
BOOK2とBOOK3はシートなどは値が違うだけで全く同じ構成です

エクセルバージョンは2003です
よろしくお願いします

A 回答 (3件)

例えばA1セルにBOOK3と入力した場合にそのブックのシート1のA1セルを表示させるとしたら次のような式にすればよいでしょう。



=INDIRECT("["&A1&".xls]Sheet1!A1")
    • good
    • 0
この回答へのお礼

ありがとうございました
この方法でなんとかできました

お礼日時:2010/05/27 16:17

>BOOK1.xlsのどこかのセルにBOOK3と入れるとBOOK3.xlsの値を参照するようにできますか?


 ⇒INDIRECT関数を利用すれば可能ですが、全てのブックをオープンしている事が前提です。
  つまり、同一ブック内にシートをコピーしておく事と同じという事です。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2010/05/27 16:18

回答No1です。


例えばBOOK3のあるセル範囲を連続してBOOK1に表示させたいときは先の式では融通が付きません。
次のような式にすることで行や列が変わっても、入力の式をオートフィルドラッグすることで取り入れができます。
例えばA1セルにはBOOK3の入力があるとしてそのブックのシート1のA1セルからH20セルまでを取り込みたいのでしたら次のような式を例えばA3セルに入力しH3セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグすればよいでしょう。

=INDEX(INDIRECT("["&$A$1&".xls]Sheet1!A:H"),ROW(A1),COLUMN(A1))
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで別ブックのセルを参照する式の内部

エクセルで別ブックのセルを参照する式の内部


別ブックのセルを参照する時は

='パス名[ブック名]シート名'!セル名

という式みたいなので、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
という式を作りました(パスは適当です)。

それで、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_02.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_03.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_04.xls]在庫シート'!B5

と日付を連番で複数のセルに入れていきたいので、
日付の 2010_06_01 の部分を他セルから持ってきたいのですが、
この式の中に 文字列参照のMID() とかで挿入できるでしょうか?
日付の入っているセルがちょうど横の方に連番で存在しています。

分かる方いましたら教えてください。
よろしくお願いします。

エクセルで別ブックのセルを参照する式の内部


別ブックのセルを参照する時は

='パス名[ブック名]シート名'!セル名

という式みたいなので、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
という式を作りました(パスは適当です)。

それで、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_02.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_03.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_04.xls]在庫シート'!B5

と日付を連番で複数のセルに入れていきたい...続きを読む

Aベストアンサー

=INDIRECT("''item\zaiko\[zaiko_"&A1&".xls]在庫シート'!B5")
とすれば出来ることはできますが、参照先のブックは開いている必要があります。

単に、沢山の数式を入力するのが面倒だというだけであれば、A1のセル以降に日付部分が入力してある場合、
="='item\zaiko\[zaiko_"&A1&".xls]在庫シート'!B5"
のように入力し、下へ数式をオートフィル等でコピーし、
入力した数式範囲を範囲選択→コピー→形式を選択して貼り付け→値でOKし、
範囲選択したまま、編集→置換で検索する文字列「=」、置換後の文字列「=」で置換します。

QExcelでファイルを越えて連携できるのでしょうか

Excel2010なのですが、同じファイルであればシートをまたいであるセルを参照出来ますが、
別ファイルの、あるシートのあるセルを参照するというような事は出来ないのでしょうか?
ほんの初歩的なマクロは学んだのですが、そういうファイルをまたいでの設定は無かったように思いますが、マクロとか使えば出来るのでしょうか?
例えばプログラミングなどであるinclude()などあればファイルを参照出来るのでしょうが。

Aベストアンサー

エクセルの数式では,
='c\test\[book1.xls]Sheet1'!A1
といった数式で多ブックの値を参照し計算に利用できます

参照元ブックを開いておいて
=[book1.xls]sheet1!A1
のように数式を作成し,参照元ブックを保存して閉じると,自動で閉じたブックを参照する式に書き換わります。エクセルの操作になれていないときは,こちらの手順を行った方が間違いがありません。




マクロでは別のブックを「開いて参照する」のが原則です。
sub macro1()
 dim w as workbook
 set w = workbooks.open("c:\test\book1.xls")
 msgbox w.worksheets("シート名").range("セル番地")
 w.close false
end sub


開きたくないご相談はしばしば見かけますが,労多くして功少ないの典型と言えます。

方法1:開いているところを見せない
sub macro2()
 dim w as workbook
 dim x
 application.screenupdating = false
 application.calculation = xlcalculationmanual
 set w = workbooks.open("c:\test\book1.xls")
 x = w.worksheets("Sheet1").range("A1")
 w.close false
 application.calculation = xlcalculationautomatic
 application.screenupdating = true
 msgbox x
end sub

方法2:エクセルに閉じたブックの値を取ってこさせる
sub macro3()
 dim x
 range("A1").formula = "='C\test\[book1.xls]Sheet1'!A1"
 x = range("A1").value
 range("A1").clearcontents
 msgbox x
end sub

方法3:4.0マクロ関数を使う
色々制約があるのでお薦めしませんが,下記など参考に。
http://www.moug.net/tech/exvba/0060037.html

エクセルの数式では,
='c\test\[book1.xls]Sheet1'!A1
といった数式で多ブックの値を参照し計算に利用できます

参照元ブックを開いておいて
=[book1.xls]sheet1!A1
のように数式を作成し,参照元ブックを保存して閉じると,自動で閉じたブックを参照する式に書き換わります。エクセルの操作になれていないときは,こちらの手順を行った方が間違いがありません。




マクロでは別のブックを「開いて参照する」のが原則です。
sub macro1()
 dim w as workbook
 set w = workbooks.open("c:\test\book1.xls")
...続きを読む

Qエクセルでシート名を連続で参照するには

 エクセルの「1」「2」「3」…のように連続するシートのそれぞれのシートにあるセルA1を、同じファイル上の「集計」シートのA1、A2、A3…のように、下へと参照したいのです。
 このとき、「集計」シートのA1セルには、「='1'!$A$1」を入力しますが、その後このセルからスタートして、オートフィルで下方向へ参照したいのですが、実際は「='1'!$A$1」「='1'!$A$1」…と「1」シートのセルが参照されます。
 オートフィルなどを用いて「集計」シートのA1から下方向へ、「='1'!$A$1」「='2'!$A$1」「='3'!$A$1」…のように満たしていく場合、どのようにしたらいいでしょうか。
 手入力すればいいのですが、数が多くてとても大変です。どなたか、簡単に満たす方法をお教えください。よろしくお願い申し上げます。

Aベストアンサー

>エクセルの「1」「2」「3」…のように連続するシート

シート名がホントにそういう名前にしてあるなら
=INDIRECT(ROW(A1)&"!A1")
と記入して以下コピーでいいです。

たとえばSheet1、Sheet2、という具合であるなら
=INDIRECT("Sheet"&ROW(A1)&"!A1")
といった様に工夫します。

Qエクセルで複数ファイルからデータを参照する時

60個位の同じひな形のエクセルファイルと、
各ファイルの中のデータを一覧にした1つのファイルがあります。

一覧表のファイルに、エリアごとの行を作成し、
各ファイルの同じ場所のセルからデータを参照する式を入れているところですが、
それぞれ違うフォルダにある参照元のファイルを開いて
参照先に1つ1つ参照式を入力しているのでは
いつまで経っても終わりません。

また、東京の行に入れた「フルパス・エクセルファイル名・セル番地」の参照式をコピーして、
フォルダとファイル名をほかの地域に置換したらどうかと思ったのですが、
いちいちファイルを選ぶウィンドウも出てきてやはり手間がかかってしまいます。

シートの構成を変えるわけにもいかず、
実際は参照するためにデータを引っ張ってくるセルはもっと多いため、途方に暮れています。
何か良い方法はないでしょうか?
急ぎのため、あまり複雑ではない方法だととても助かります。

Aベストアンサー

>また、東京の行に入れた「
」の参照式をコピーして、フォルダとファイル名をほかの地域に置換したらどうかと思ったのですが、いちいちファイルを選ぶウィンドウも出てきてやはり手間がかかってしまいます。

ご希望のデータ収集を行うなら、マクロを利用するのが最も簡便な対応だと思われますが、「フルパス・エクセルファイル名・セル番地」のデータがどこかに入力されているなら関数などを使用して一般機能で対応することも可能です。
マクロで実行する場合を含めて、実際の一覧表のレイアウトによって、具体的な方法が異なりますので(関数で簡便に対応できる場合もあります)、一覧表のレイアウトなどを具体的に提示されたほうが皆さんから的確な回答が寄せられると思います。

ちなみに、縦方向にデータを集計するなら以下のような手順で対応することができます。

参照したいセルに以下のような数式を入力し、文字列でリンク数式を作成します。

="="&フルパスが入力されているセル番地

フルパスのセル番号が変動するような場合はフォルダ名やシート名部分だけ参照してセル番地の部分を&でつないだ数式などに工夫します。

この数式を縦方向にオートフルコピーして必要なリンク数式をすべて作成します。

このセル範囲を選択して右クリック「コピー」そのままもう一度右クリック「形式を選択して貼り付け」で「値」にして通常の文字列に変換し、さらにその範囲が選択された状態のまま「データ」「区切り位置」で「完了」すれば、すべての文字列数式が通常の数式に変換されます。

>また、東京の行に入れた「
」の参照式をコピーして、フォルダとファイル名をほかの地域に置換したらどうかと思ったのですが、いちいちファイルを選ぶウィンドウも出てきてやはり手間がかかってしまいます。

ご希望のデータ収集を行うなら、マクロを利用するのが最も簡便な対応だと思われますが、「フルパス・エクセルファイル名・セル番地」のデータがどこかに入力されているなら関数などを使用して一般機能で対応することも可能です。
マクロで実行する場合を含めて、実際の一覧表のレイアウトによって、具体的...続きを読む

Qエクセルで開いていないbookのセルの値が欲しい

エクセルが少し使える程度です。
1000個のブック内に同じ名前のシートが1個づつできています。
その1000個のシート毎にK列の最大値を求めたいのですが、
1000個のシートを”全て開くことなしに”できないでしょうか?

シート名は整理表から求めることができます。
シート名="C9&"\"&D9&"\["&A9&".xls]sheet1'"

シートが開いていれば、以下で求めることができるのですが。
=max(シート名!$k$2:$k$1250)

Aベストアンサー

ご質問の内容を取り違えていましたらすみません。
状況・課題の確認も兼ねて冗長な説明になるかと思いますがご容赦ください。

まず、開いているブックへの参照は
A:=max([Sample.xls]Sheet1!$k$2:$k$1250)
といった形になりますよね。

ここでリンク元のブックを閉じると、
数式は自動的に
B:=max('D:\***\[Sample.xls]Sheet1'!$k$2:$k$1250)
といった形に変わります。

この状態であれば、閉じたブックの値を参照することができます。
また、Bの形の数式を直接入力した場合でも
閉じたブックの値を参照できます。

問題は、対象のブックが大量にある場合に
Bの形の数式を順次入力していくのは現実的でない
ということだろうと思います。

対象ブックが開いている場合には、indirectを使用して
C:=max(INDIRECT("'"&A1&":\"&B1&"\["&C1&".xls]Sheet1'!$k$2:$k$1250"))
とすれば参照を動的に生成することができますが、
indirectでは閉じたブックを参照することはできません。

で、ようやく対策ですが、
Bの形の数式自体を文字列として生成し、
D:="=max('"&A1&":\"&B1&"\["&C1&".xls]Sheet1'!$k$2:$k$1250)"
メモ帳等を経由して貼り付けることで、
イの形の数式を一気に入力することができます。
(エクセルからエクセルへ直接の値貼り付けや数式貼り付けでは不可)

ただし、対象のブックが動いた場合には
その都度参照を貼りなおす必要がありますので、
対象のブックが頻繁に動くような場合には、
マクロを利用するほかはなかろうと思います。
1.#1さんの方法で直接参照する。
2.「整理表」の変更をイベントで取得して参照数式を書き換える。
3.リンク元ブックをバックグラウンドで開いてしまう(!)
といったアプローチが考えられます。

ご質問の内容を取り違えていましたらすみません。
状況・課題の確認も兼ねて冗長な説明になるかと思いますがご容赦ください。

まず、開いているブックへの参照は
A:=max([Sample.xls]Sheet1!$k$2:$k$1250)
といった形になりますよね。

ここでリンク元のブックを閉じると、
数式は自動的に
B:=max('D:\***\[Sample.xls]Sheet1'!$k$2:$k$1250)
といった形に変わります。

この状態であれば、閉じたブックの値を参照することができます。
また、Bの形の数式を直接入力した場合でも
閉じたブッ...続きを読む

Qエクセルで、他のファイルをリンクする際、ファイル名だけをオートフィルできませんか?

たとえば、EXCELで

A1に、  〇1.xls  というファイルの  シート1   の   B5 セルを参照した場合

         A                  B                C
1  [〇1.xls]シート1!$B$5     [〇2.xls]シート1!$B$5      [〇3.xls]シート1!$B$5
2  [〇2.xls]シート1!$B$5
3  [〇3.xls]シート1!$B$5
4  [〇4.xls]シート1!$B$5


A1セルからオートフィルしたら、A4セルまで、もしくはC3セルまで

ファイル名だけ変わる、というようなことはできないでしょうか?

ちなみに、EXCEL2003です。


詳しい方いましたら、どうぞよろしくお願いいたします。

Aベストアンサー

以下のような操作を試してください。

A1に
#=[〇1.xls]
としてオートフィル
オートフィルは、行方向、列方向どちらも可
オートフィル範囲が選択状態のまま、編集メニューの「置換」で
]

]シート1!$B$5
に「すべて置換」
再度
#=

=
に「すべて置換」

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QExcel 相対パス

Excelでvlookup関数を使っていますが
参照範囲が別ファイルです。

参照先が絶対パスになってしまいますが
これでは他人にこのファイルを提供した場合つかえません。

そこで相対パスにしたいのですができません。

どうしたら良いのでしょうか?

=VLOOKUP(C2,'C:\Documents and Settings\user1\管理\[20130000.xls]Sheet1'!$D$6:$E$634,2,FALSE)
これを
=VLOOKUP(C2,'./[20130000.xls]Sheet1'!$D$6:$E$634,2,FALSE)
にしたい。

Aベストアンサー

>相対パスで入力しても絶対パスになってしまいます。
ソフトの設計思想でそうなっていると思います。
参照対象のファイルを開いているときに直接指定した時は[ファイル名]で良いのですが、参照対象のファイルを閉じると自動的に絶対パスが自動的に付加されますので、閉じたファイルを指定するときは絶対パスが必須という仕様になっているようです。

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

QEXCELで別のシートのデータを参照して返す方法

ちょっとしたことなのですが、うまく式が書けなくて悩んでいます。

作業用のシート1と参照用のシート2があり、
シート1のA列には
 あおき
 あべ
 いぐち
 いはら
などと文字列(名前)が入力されています。
こちらは今度の野球のスタメンだと思ってください。

シート2にはA列とB列があって、
わたなべ 55
いぐち  43
あおやま 67
いはら  41
などと、名前:背番号が羅列されています。こちらが参照用の全選手の背番号リストだと思ってください。

ここで、 シート1のB列に、A列の名前に対応した背番号を返したいのです。
なので、シート1のB列に
IF(シート1のA列の値=シート2のA列のいずれかの値)だったとき、
適合したシート2の行のB列の値を表示する
という式を入れたいのですが、どのように式を書けばよいでしょうか。

すみませんがどなたか教えてください。

Aベストアンサー

私もその場合はVLOOKUP関数を使用しています。

「B1」=VLOOKUP(A1,Sheet2!$A:$B,2,0)


人気Q&Aランキング