
エクセルで別ブックのセルを参照する式の内部
別ブックのセルを参照する時は
='パス名[ブック名]シート名'!セル名
という式みたいなので、
='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() とかで挿入できるでしょうか?
日付の入っているセルがちょうど横の方に連番で存在しています。
分かる方いましたら教えてください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
=INDIRECT("''item\zaiko\[zaiko_"&A1&".xls]在庫シート'!B5")
とすれば出来ることはできますが、参照先のブックは開いている必要があります。
単に、沢山の数式を入力するのが面倒だというだけであれば、A1のセル以降に日付部分が入力してある場合、
="='item\zaiko\[zaiko_"&A1&".xls]在庫シート'!B5"
のように入力し、下へ数式をオートフィル等でコピーし、
入力した数式範囲を範囲選択→コピー→形式を選択して貼り付け→値でOKし、
範囲選択したまま、編集→置換で検索する文字列「=」、置換後の文字列「=」で置換します。
INDIRECTで出来ましたー。
どうもありがとうございます。
日付がちょっと、2010.06.01と2010/0601だったり
ファイル名と微妙に違っていたのでMIDで出来ないかなと
思ったんですがそれは調整しました。
でもこれ、参照先を開いてないといけないんですね。。。
何十個も開けないですし、根っこの部分が盲点でした……。
No.5
- 回答日時:
日付の整形はTEXT関数でします。
A4に日付が記入してあるなら
="='item\zaiko\[zaiko_" & TEXT(A4,"yyyy_mm_dd") & ".xls]在庫シート'!B5"
で数式の文字列を作成し,コピーして形式を選んで値のみ貼り付けてから,=を=に全て置換。
で。マクロを使ってしまうなら,そんなに手の込んだ道具を使わなくても「数式をそのままマクロで書き込ませてしまえ」ば出来ます。マクロではTEXT関数の代わりにFormat関数を使います。
sub macro2()
dim h as range
for each h in range("A4:A28")
h.offset(0, 1).formula = "='item\zaiko\[zaiko_" & format(h, "yyyy_mm_dd") & ".xls]在庫シート'!B5"
next
end sub
ありがとうございます。
今回はマクロで日付の入っているセルをループさせて読もうと思います。
形式とかが変わったら参考にさせてもらいます。
No.4
- 回答日時:
質問が1とびして難しいほうに行っているのですが、本当は学習という点から言えば
学ぶのは下記の(1)ー>(2)の順である。
下記の(2)のようにデータを他ブックに別々に保存すると、後の利用の際に
色々な点で、難しくなる。
(1)同一ブックの複数シートの場合
Sheet1からSheet4のA1セルにA,B,C,Dと入れておく
Sheet1のC1にSheet1と入れる
+ハンドルを出してC4まで引っ張る。
Sheet1
Sheet2
Sheet3
Sheet4
となる。
E1セルに
=INDIRECT(C1&"!A1")と入れて下方向に引っ張る
結果
A
B
C
D
のようにSheet1からSheet4のA1の値を持ってくる。
(2)別々のブックの場合
同じような考え方だが、そのブックを開いておかないと
そのブックのそのシートのセルを参照できない。
そこでVBAなら
開いているsheetに
01化
01化B
01化c
のように「同一フォルダに在るExcelブック名」を例えで3つ書き上げておく。
Sub test01()
For i = 1 To 3
Path = "C:\Documents and Settings\OTO\My Documents"
file = Cells(i, "C")
Cells(i, "A") = ExecuteExcel4Macro("'" & Path & "\[" & file & ".xls]" & "Sheet1" & "'!R1C1")
Next i
End Sub
/は¥で置き換えること。
をVBEの画面に貼り付けて実行すると、結果は
A1:A3に
シリアル番号
コード
室料
と取れる。たまたま私の場合には上記3つのブックのSheet1のA1セルには、上記のデータが入っていたもの。
この場合は見かけ!では、各上記ブックを開いているようには見えない。
これを質問の場合も使えると思う。
ありがとうございます。
順番にやってみました。
VBAも、入れてみたら動いてくれたので色々といじってやってみます。
'完成品のシート4行目から28行目まで入れる処理
For i = 4 To 28
'X列について。ファイル名の日付部分はA列から参照する
Cells(i, "X") = ExecuteExcel4Macro("'item\zaiko\[zaiko_" & Cells(i, "A") & ".xls]在庫シート'!R7C3")
Next i
No.2
- 回答日時:
残念ながらそのようなことはできません。
Indirect関数を使うとできるのですが、対象のブックを開いておく必要があります。
しかし、一方通行(下記で言うA1,B1セル)を変化させても、求める結果がわからなくて良い。
または、質問文になるような数式を書く手間を省きたい。
ならば方法があります。下記を参考にして、10セル位で試してから行ってみてください。
A1 C
B1 3
C1 ="="&A1&B1
C1セルコピー
E1セルに形式を選択して貼り付け 値
E列を = から = へ置換。

文字を結合して作った文字をさらにセル指定で使用できるんですね。
"="を最初文字で作っておいて増やしてから値に変換で計算させると。
これは応用が利きそうです。どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Excel(エクセル) excelのindirect関数の別ブック参照について質問です。 1 2022/06/03 15:17
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) ピボットテーブルの参照式はオートフィル出来ない? 2 2023/03/03 15:57
このQ&Aを見た人はこんなQ&Aも見ています
-
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
-
開いてないブックへの参照の変更方法
Excel(エクセル)
-
-
4
excelのindirect関数の別ブック参照について質問です。
Excel(エクセル)
-
5
エクセルで開いていないbookのセルの値が欲しい
Excel(エクセル)
-
6
エクセルで、他のファイルをリンクする際、ファイル名だけをオートフィルできませんか?
Excel(エクセル)
-
7
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
8
参照元のブック名の変更を自動的に式に反映させたい
Access(アクセス)
-
9
別ファイルを参照しながらシート名を動的に
Excel(エクセル)
-
10
Excel:数式のブック名部分を関数にしたい
その他(Microsoft Office)
-
11
エクセルリンク先ファイル名の指定方法
Excel(エクセル)
-
12
エクセルで、月によって参照するシートを自動的に変える関数
Excel(エクセル)
-
13
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
14
セルに入力したファイル名を参照元にしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Office2021のエクセルで米国株...
-
Excelで複数シートの選択セルを...
-
エクセルで条件に一致したセル...
-
Excelの「0」だけ非表示、小数...
-
エクセルで1月0日と表示される!!
-
Excelシートの保護時にデータの...
-
EXCELのハイパーリンクのセルを...
-
エクセルで指定のセルのみ完全...
-
日付が未入力の際はゼロか、空...
-
ExcelでTODAY関数を更新させな...
-
Excelでスクロールすると文字が...
-
エクセルで、加筆修正したセル...
-
iPhoneのExcelアプリで、別のシ...
-
別シートのセルを絶対参照にする
-
エクセル マクロ ボタンを押...
-
複数シートの同じセル内容を1シ...
-
エクセルで複写のように自動入...
-
INDIRECT(空白や()がある文字列...
-
Excelにて、カタカナだけのセル...
-
エクセルで20万行あるシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
エクセルで条件に一致したセル...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
ExcelでTODAY関数を更新させな...
-
EXCELのハイパーリンクのセルを...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
複数シートの同じセル内容を1シ...
-
マクロ 新しいシートにデータ...
-
エクセルで複写のように自動入...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
ハイパーリンク で『指定された...
-
エクセルで20万行あるシート...
-
エクセルで特定のセルの値を別...
-
INDIRECT(空白や()がある文字列...
おすすめ情報