一つのブックに名前が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でこうすればとかあれば知恵をお貸しいただけると
助かります。

よろしくお願いします。

A 回答 (3件)

一番手っ取り早く確実な手順は,次の通りです。



準備:
今から書き換えの作業をするブックを開く
そのブックが「変更前に」参照している「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などを『開いた状態』にしておかないと,計算が通りません。通らないとは,数式がエラーになるという意味です。
これでは実用的ではなく,ご質問の状況全体としてあまり役に立ちません。
    • good
    • 0
この回答へのお礼

置換の存在を完全に忘れてました、言われてみれば置換で一瞬で終わる作業ですね(><)
なんで1年以上気付かなかったんだろ…。

大変助かりましたありがとうございます。


※ちなみにINDIRECT関数では一度試してみて、仰られる通りの使用方法しか出来ず断念しました。

お礼日時:2011/07/05 04:20

#2です。

ブックの参照の変換も必要なんですね。
やはり、keithinさんのおっしゃる通り、[Chrl]+[H]置換 が早そうです。
合わせ技で、月末の日付シートは常に「月末」にしておいてもいいかも。

もっと根本的なことを言うと、
1年間のデータを同一シート上に(データベース形式で)保存できないか
ってことです。抽出や並べ替え、集計をしないなら意味ないですが。
    • good
    • 0
この回答へのお礼

月末の日付は決まってるので、確かに予めシート名を変えてしまうのもありですね。
その方法も考えてみたいと思います。

1年間のデーターを同一シートで集めるのは、出来るなら一番行いたい方法です。
ただPCの性能がPentium3クラス&メモリの足りないのでエクセルを使う限りは
一ヶ月毎のデーターで正直限界です。

根本的な部分だとエクセルでやろうと思うのが行けないのでしょうが、知識不足の
問題でデーターベース系のソフトは無理っぽいです。

お礼日時:2011/07/05 04:32

逆の考え方で、同一ブック内において(月末に)


月末の日付シートをコピーして「月末」という名前のシートにしておいてはいかが?

=[23-02.xlsx]月末!XX
    • good
    • 0

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

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

Q忘れがちなバックアップデータを教えてください。

忘れがちなバックアップデータを教えてください。

パーツ交換に伴い再インストールをすることになりそうです。OSはWindows7です。
Windows7ではバックアップ機能がありますが、バックアップをとってもWindows上からしか中身が見えなさそうなので、バックアップ忘れが怖いです。

あー、あのデータバックアップするの忘れてたー!となるのを防ぎたいので、みなさんがバックアップしているデータ、アプリケーションのバックアップデータを教えてください。


私は、
Firefox、ThunderbirdのデータをMozbackupでバックアップ
ランチャーの設定ファイル
Google日本語入力の辞書データ
GoogleChromeのお気に入り
C:\Users\ユーザー名 以下をそのままコピー
(このとき、いらないファイルとかってありますか?AppDataフォルダ以下にLocalなどのフォルダがありますが)

うーん、ちょっと少ない気がして不安です。

Aベストアンサー

C:\Users\ユーザー名\AppData\Local\
以下に
Microsoftフォルダ、Tempフォルダ、Googleフォルダなどありますが
これらは新規システムにも引越ししたほうがいいのでしょうか?
>>そんなに大きくないので、アックアップだけしとけばなんかのときに間に合うでしょう。
引越しですか? バックアップのはなしですよね。。

Tempフォルダなどは新規に持ってきてもゴミになるんじゃないかなとおもったりするのですが、
ここらへんは必要なものを自分の環境にあったものを自分でチョイスしてバックアップする形でいいのでしょうか?
>>あんまり細かくすると、自分でわからなくなりますんで。。おおまかに。。

Qエクセルで一つのブックにある複数のシートを一つのシートにまとめる。

エクセルで一つのブックにある複数のシートを一つのシートにまとめる。
各シートには同じ形式の表(大きさも同じ)が1枚ずつあります。
それを一つのシートに、縦に並べて表示したい。
シートが100枚ぐらいありますので、ひとつひとつコピーするのは
大変です。
よろしくお願いします。

Aベストアンサー

こんばんは。

VBA(マクロ)を使った方法の紹介です。

以下の参考URLをご覧ください。

参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_data_matome.html

QPS3のデータのバックアップ

PS3のデータのバックアップ
PS3のデータのバックアップについて、バックアップしたデータは別のps3にコピーしてもユーザーとかトロフィーとか変わらないのでしょうか?
ゲームデータだけコピーして他のps3に移すと「他のユーザーのデータなのでトロフィーは取得できない」と書いていました。
バックアップなら途中のデータからでもトロフィーは残っていて、トロフィーを取得しつつゲームを進めることはできるんですか? 
教えてください。

Aベストアンサー

トロフィーデータはそもそもバックアップされません。
ネットに繋いでいるならPlaystation@Networkサーバーに同期する事がバックアップ代わりになります。

こちらに他の本体へリストアできる項目の一覧がありますので参考にどうぞ。
http://jp-playstation.custhelp.com/app/answers/detail/a_id/440/session/L3NpZC9hcmhaZ1Mzaw%3D%3D/p/1/c/7/r_id/100001/sno/0

QExcel マクロ 他ブックのシートの範囲選択した内容を別ブックのシートにコピーする方法

他ブックのシートの範囲を選択しコピーした内容を、別ブックのシート
に貼り付けするマクロを作成しています。
現在の情報であれば、下記のマクロで解決できます。

Sub Test1()
Dim myCellall As Range
Dim myCellsom As Range
Dim myCelluri As Range

  Set myCellall = Sheets("すべて").Range("A1")
Set myCellsom = Sheets("総務").Range("A1")
Set myCelluri = Sheets("売上").Range("A1")

With Workbooks.Open("\")
.Worksheets("すべて").Range("A1:K17").Copy myCellall
.Worksheets("総務").Range("A1:K88").Copy myCellsom
.Worksheets("売上").Range("A1:K81").Copy myCelluri
.Close False
End With
End Sub

ただ、他ブックのシートのデータは変動するため、行と列の変更を行わなければいけません。行と列の増減があっても、自動的に対応できるマクロを書きたいと思います。
どのようなマクロを追加すればよろしいでしょうか。

よろしくお願いいたします。

他ブックのシートの範囲を選択しコピーした内容を、別ブックのシート
に貼り付けするマクロを作成しています。
現在の情報であれば、下記のマクロで解決できます。

Sub Test1()
Dim myCellall As Range
Dim myCellsom As Range
Dim myCelluri As Range

  Set myCellall = Sheets("すべて").Range("A1")
Set myCellsom = Sheets("総務").Range("A1")
Set myCelluri = Sheets("売上").Range("A1")

With Workbooks.Open("\")
.Works...続きを読む

Aベストアンサー

A1から始まる範囲をA1から始まる範囲にコピーするだけなら,

ケース1)
workbooks("元.xls").worksheets("すべて").cells.copy thisworkbook.worksheets("すべて").range("A1")
でも十分です。

ケース2)
application.displayalerts = false
thisworkbook.worksheets("すべて").delete
workbooks("元.xls").worksheets("すべて").copy before:=thisworkbook.worksheets(1)
とか,
あるいは所定のシートをひっくるめにしてコピーしてしまっても良いかもしれません。
workbooks("元.xls").worksheets(array("すべて","総務","売上")).copy before:=thisworkbook.worksheets(1)


ケース3)
セル番地をちゃんと指定しないとどうしてもキモチワルイなら
with workbooks.open("~")
with .worksheets("全て")
.range(.range("A1"), .cells.specialcells(xlcelltypelastcell)).copy mycellall
end with
end with
などのような手もありますね。

A1から始まる範囲をA1から始まる範囲にコピーするだけなら,

ケース1)
workbooks("元.xls").worksheets("すべて").cells.copy thisworkbook.worksheets("すべて").range("A1")
でも十分です。

ケース2)
application.displayalerts = false
thisworkbook.worksheets("すべて").delete
workbooks("元.xls").worksheets("すべて").copy before:=thisworkbook.worksheets(1)
とか,
あるいは所定のシートをひっくるめにしてコピーしてしまっても良いかもしれません。
workbooks("元.xls").worksheets(array("す...続きを読む

Qパソコンデータ(画像)のバックアップについて。

パソコンデータ(画像)のバックアップについて。


パソコンに保存してある画像をバックアップしたいと思うのですが、ちょっと困っている事があります。

主に、大事な画像はマイピクチャというフォルダに入っているのですが、マイピクチャは、マイドキュメントというフォルダにも入ってます(解りづらくてすみません・・・)

この場合、マイドキュメントのバックアップをとっておけば、マイピクチャのデータも一緒にバックアップされるのでしょうか?
それとも、個別にバックアップをとっておくものなのでしょうか?

これは画像だけじゃないのですが、沢山のデータをバックアップする場合でも、データ一つ一つを個別にバックアップしなきゃいけないものなのでしょうか?


バックアップはまだ詳しくなくて(><)
解りづらくてすみません・・・

他にもバックアップに関するアドバイスや注意がありましたら是非教えて下さい。

Aベストアンサー

マイドキュメントというフォルダにマイピクチャフォルダが入っているのなら、
マイドキュメントのバックアップをとっておけば、マイピクチャのデータも一緒にバックアップされます、

バックアップ先は何になりますか? 外付けハードディスク? Dドライブ?
できたら、外付けハードディスクなどに保存される事をお勧めします、
同じCドライブだと、バックアップになりません、

>沢山のデータをバックアップする場合でも…

他のドライブにバックアップするのであれば、まとめてドラッグすれば、
コピーバックアップされます

例としてバックアップする先を決めます(例としてCからDドライブへバックアップとします)
→Dドライブにバックアップフォルダを制作(D:バックアップフォルダ)開きます→
別にスタートからマイドキュメントを開き、ファイルの無い場所からドラッグしてファイル全体を反転します、
→反転したファイルをバックアップフォルダへドラッグします、
コピーバックアップされます

QエクセルにてシートBの記入情報をシートの名前を入れるだけで、シートAに

エクセルにてシートBの記入情報をシートの名前を入れるだけで、シートAに表示するようにしたいです。
シートB~AZまでに顧客の住所や電話番号などの情報が1社ごとに1シートに記載されています。シートAにはシートB~AZまでの顧客情報が一覧表示できるようにするため、シートの番号を入れるだけで、反映するような計算式を教えていただければと存じます。

Aベストアンサー

回答No2,3,4です。
シートAのB2セルには次の式を入力してP2セルまで横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF(OR($A2="",COLUMN(A1)>15),"",INDEX(INDIRECT($A$2&"!A:H"),IF(AND(COLUMN(A1)>=1,COLUMN(A1)<=5),COLUMN(A1)+2,COLUMN(A1)/2),IF(AND(COLUMN(A1)>=1,COLUMN(A1)<=5),2,IF(MOD(COLUMN(A1),2)=0,5,8))))
これでA列にシート名を入力すればその内容が1行で右横方向に表示されます。

QDドライブのバックアップデータの削除

いつの間にかDドライブにデータを保存していたらいっぱいになってしまったので、
一部のデータを移動させたのですが、ほとんどバックアップのデータでいっぱいになってました。
バックアップデータの削除を削除したいのですが、中身の詳細を見る方法が分からないため大事なバックアップデータが入っていると思うと消す勇気がありません。

また、自動ににバックアップをとるのを止めさせたいです。(自分で設定した覚えがない)
よろしくお願いします。

Aベストアンサー

Windows7の自動バックアップで作成されたデータで
>自分で設定した覚えがない
ということでしたら、世代別の管理も不要でしょうから、古いバックアップを削除すればいいと思います。

●Windows7で古いバックアップのデータを消してハードディスクを軽くする | ぬふふ.com
http://nufufu.com/archives/1803

Q別のブック、または別のシートからの参照

Excelで日付によって、別のブック、または別のシートから特定のセルを参照させる方法はありますか?
例えば、1日に閲覧した時は別のブック(シート)のB3のセル、2日に閲覧した時はB4のセル…、次はB5、という風に参照させたいのです。
日付を表示させて、INDIRECT関数等を使って色々と試行錯誤していますが、上手く行きません…。
関数だけで作れるものでしょうか?どなたかご教授願います。

Aベストアンサー

こんばんは!
Sheet1の表示させたいセルの配列が具体的にどのようになっているか判らないので
勝手に↓のような感じでやってみました。

あくまでヒントとして目を通してみてください。

Sheet1のA1セルに
=INDIRECT("sheet2!B"&ROW(A3))
という数式を入れ、オートフィルで下へコピーしています。

尚、エラー処理はしていません。

以上、参考になれば幸いですが
的外れなら読み流してくださいね。m(__)m

Qntbackupでバックアップしたデータの消去

現在 Windows Server 2003を使用しています。
ntbackupを使って毎週データのバックアップをとっています。

今の状態だとデータがどんどん追加されていくだけなのですが、古い(1ヶ月前とか)のバックアップデータを消去することはできるのでしょうか?

また、今はタスクで自動的に毎週バックアップをとるようにしているのですが、例えば2週間分だけ残して古いデータは消去し、それから最新のデータをバックアップするようなことはできるのでしょうか?

Aベストアンサー

テープデバイスではなくて、ディスク上にバックアップを作成しているのですね。
まず、『データを追加する』ではなく、『データを置き換える』ようにバックアップジョブを作り直す必要があります。
Weeklyにバックアップを"WeeklyBackup"にとるとしたら、タスクを利用して、バックアップの直前に
WeeklyBackup0というファイルをWeeklyBackup1に、
WeeklyBackupをWeeklyBackup0に、
それぞれコピーをするバッチファイルを実行するようにスケジュールします。
つまりWeeklyBackup0が先週のバックアップ、WeeklyBackup1が先々週のバックアップになるわけです。

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

こんにちはよろしくお願いいたします。
エクセルのブックファイル(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つのファイルはすべて同一ファイルに入っています。

何が,参照を阻んでいるのでしょうか?教えてください。よろしくお願いします。

こんにちはよろしくお願いいたします。
エクセルのブックファイル(Book1.xlsx)に,他のブックファイル(Book2.xls)のセルの値を参照しようと思い”=”を入力し参照するブックファイルのセルをクリックし,「 =[Book2]Sheet1!$A$1 」のような参照を行いました。こうしてきちんと表示されました。

しかし,この参照の式を「 =[Book3]Sheet1!$A$1 」のように,他のブックファイル(Book3.xls)のセルに変更したところ,参照できなくなりました。ブックファイル(Book1.xlsx)には,「 =[Book3]Sheet1!$A$1 」という...続きを読む

Aベストアンサー

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


人気Q&Aランキング