一つのブックに名前が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でこうすればとかあれば知恵をお貸しいただけると
助かります。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
一番手っ取り早く確実な手順は,次の通りです。
準備:
今から書き換えの作業をするブックを開く
そのブックが「変更前に」参照している「23-01.xlsx」を開く
そのブックが「変更後に」参照する「23-02.xlsx」を開く
手順:
今から書き換えの作業をするシートで
Ctrl+Hで置換のダイアログを出し
[23-01.xlsx]31
を
[23-02.xlsx]28
に全て置換する
補足1:
手順に慣れてくれば,変更前後に参照している「23-01.xlsx」や「23-02.xlsx」を必ずしも開いおかなくても,それらを開いてない状態でのセルの数式(「='c:\folder\[23-01.xlsx]31'!A1」のような)をよく見て,その状態からどういう具合に置換の操作をすればよいか考えて操作すれば出来ます。
補足2:
>(A1のセルに 23-01.xls を入力)(A2のセルに 31 を入力)で
>…データーを取得するといった風な感じの事を行う方法は無いのでしょうか?
ご質問の直接の回答としては,そういった事はINDIRECT関数を使って出来ます。
が,そのやり方では『常に』23-02.xlsxなどを『開いた状態』にしておかないと,計算が通りません。通らないとは,数式がエラーになるという意味です。
これでは実用的ではなく,ご質問の状況全体としてあまり役に立ちません。
置換の存在を完全に忘れてました、言われてみれば置換で一瞬で終わる作業ですね(><)
なんで1年以上気付かなかったんだろ…。
大変助かりましたありがとうございます。
※ちなみにINDIRECT関数では一度試してみて、仰られる通りの使用方法しか出来ず断念しました。
No.2
- 回答日時:
逆の考え方で、同一ブック内において(月末に)
月末の日付シートをコピーして「月末」という名前のシートにしておいてはいかが?
=[23-02.xlsx]月末!XX
No.3
- 回答日時:
#2です。
ブックの参照の変換も必要なんですね。やはり、keithinさんのおっしゃる通り、[Chrl]+[H]置換 が早そうです。
合わせ技で、月末の日付シートは常に「月末」にしておいてもいいかも。
もっと根本的なことを言うと、
1年間のデータを同一シート上に(データベース形式で)保存できないか
ってことです。抽出や並べ替え、集計をしないなら意味ないですが。
月末の日付は決まってるので、確かに予めシート名を変えてしまうのもありですね。
その方法も考えてみたいと思います。
1年間のデーターを同一シートで集めるのは、出来るなら一番行いたい方法です。
ただPCの性能がPentium3クラス&メモリの足りないのでエクセルを使う限りは
一ヶ月毎のデーターで正直限界です。
根本的な部分だとエクセルでやろうと思うのが行けないのでしょうが、知識不足の
問題でデーターベース系のソフトは無理っぽいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセル関数について教えてください 4 2023/02/05 14:47
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Visual Basic(VBA) エクセルVBAで次の様にデーターをテンプレートに反映したいのですが、よろし 5 2022/04/17 15:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
Rangeメソッドは失敗しました。...
-
(Excel)あるセルに文字を入力...
-
複数シートの同じセル内容を1シ...
-
別シートのセルを絶対参照にする
-
Excelシートの保護時にデータの...
-
エクセルの文字
-
Excelにて、カタカナだけのセル...
-
Excelで複数シートの選択セルを...
-
エクセルで20万行あるシート...
-
エクセルで、加筆修正したセル...
-
エクセルのルビがついたセルを...
-
エクセルで別シートからの最大...
-
シート参照で変数を使いたい(EX...
-
EXCELマクロで、シート間でのコ...
-
Aというブックの1というシート...
-
excelでハイパーリンクになって...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
エクセルで条件に一致したセル...
-
エクセルで1月0日と表示される!!
-
(Excel)あるセルに文字を入力...
-
別シートのセルを絶対参照にする
-
Rangeメソッドは失敗しました。...
-
Excelシートの保護時にデータの...
-
複数シートの同じセル内容を1シ...
-
エクセルで、加筆修正したセル...
-
シート参照で変数を使いたい(EX...
-
エクセルで複写のように自動入...
-
Excelで複数シートの選択セルを...
-
INDIRECTを使わず excelで複数...
-
ExcelでTODAY関数を更新させな...
-
式の説明をお願いします。
-
excelでハイパーリンクになって...
-
エクセルのルビがついたセルを...
-
Excelでスクロールすると文字が...
-
エクセル ハイパーリンクで画像...
おすすめ情報