• 締切済み

別シートの参照について(日報作成)

現在日報を作成しています。一日分の日報はほぼ完成していてそれを31日分のシートがありさらに月報を作りたいと思っていますが、月報は一日の日報と別のシートで月報を作りたいと思ってます。月報は   1 2 3 4 5 6 7 9 10 … 計 A B C D それぞれの項目をもう一度月報に入れて合計を出したいのですが、日報1日目の項目Aの金額を月報A1に2日目の項目AをA2に3日目の項目AをA3にと言う感じにしたいのですがひとつひとつの入れ方はA1に=sheet1日A2と言うように入れれますが、オートフィルのように31日分にがーっと出来ません。ひとつひとつやっていては項目が多すぎて出来ません。どなたか教えてください。お願いいたします。

みんなの回答

回答No.7

調べてみましたが残念ながら INDIRECT使用では、外部Bookへのリンクは 上手く行かないようです。 1月.xlsを開かないとREFは消えません。 手順が増えますが、関数用の文字列を作成するしか方法が無いようです。 1.年計Bookの各セルに文字列を入力   B58セル    C:\Documents and Settings\XXX\My Documents\日報\[   C58セル    月.xls]月計表'!DZ5   C59セル    月.xls]月計表'!(商品Bの値のセルを指定)   C60セル    月.xls]月計表'!(商品Cの値のセルを指定)   ※商品数だけ繰り返して入力   ※B58の C:\の前に 'は不要 2.1月のA欄に関数入力 =$B$58&C$4&$C58 これで文字列として  C:\Documents and Settings\XXX\My Documents\日報\[1月.xls]月計表'!DZ5  が表示されるので、月軸、商品軸にオートフィルで関数をコピー 3.文字列が全てに表示されたら、コピーして、同じ位置に値を貼り付け 4.ツールバーの編集→置換で下記の様に設定し 全て置換   検索文字列 C:\   置換後   ='C:\ これで必要な関数は全て入ります。

回答No.6

#REFが出るのは2月3月の列ですよね? オートフィルした時にちゃんと関数が =INDIRECT("["&D$3&"月.xls]月計表!$DZ$5") =INDIRECT("["&E$3&"月.xls]月計表!$DZ$5") と、セル参照部分が書き変わっていれば、単純に2月.xls 3月.xlsを 開いていない為のエラーではないでしょうか。 単純に ○○.xlsを指定していても、どこにある○○.xlsなのか 判別出来ていないだけです。 ※例えば、CドライブのAフォルダ内に同じ名前のファイル2個は 作成出来ませんが、AフォルダとBフォルダに同じ名前のファイルを 作成する事は出来ますよね? 回避する方法は、年計表を開くたびに1~12月.xlsを全部事前に 開いておくかファイルの場所をINDIRECTで指定する事です。 まず2月.xlsを開いて、月計表のDZ5セルを年計の2月の欄で 参照して、一旦2月.xlsを閉じます。 そうすると、2月の欄の式が [2月.xls] ではなく [C:\○○\××\2月.xls] に 書き変わっているはずです。 その式を再度INDIRECTに置き換えればエラー回避出来ます。 1月~12月が同じフォルダに入っていて[C:\○○・・・]の部分が 長くなってしまう場合は、年計表のどこか空いている欄に [C:\○○・・・]のフォルダ名を指定している部分を文字列で 貼り付けておいてINDIRECTに入ればOKです。 例) 年計表のX1セルを文字列に書式指定しておいて C:\○○ から  ファイル名(2月.xls)の手前の\マークまでをペースト 1~12の下に入れる関数は下記の通り。 =INDIRECT($X$1&C$3&"月.xls]月計表!$DZ$5")

参考URL:
http://allabout.co.jp/study/pcbasic/closeup/CU20030928/
hiroki6071
質問者

お礼

年計表は1から12月のブックを開けばちゃんと対応してますがこのやり方ですとふと年計を見たいときにそれぞれのブックを開くのは面倒です。なのでこのやり方でやりたいのですがまず日報のフォルダーをマイドキュメントに置きまず一月を開き年計表の一月の欄に参照させたら、 =[1月.xls]月計表!$DZ$5。次に1月を閉じて、='C:\Documents and Settings\Owner\My Documents\日報\[1月.xls]月計表'!$DZ$5となり次にC:\Documents and Settings\Owner\My Documents\日報\をB58におきました。この時初めの’はコピーしなくていいのですか?項目に上の式をコピーしてセルをたいおうさせましたが=INDIRECT($B$58&C$4&"月.xls]月計表!$DZ$5")ではREFとなります。 この式には¥のあとの[ は必要ないのですか?試しに=INDIRECT($B$58&"["&C$4&"月.xls]月計表!$DZ$5")としてもREFとなります。どこがおかしいのですか?

回答No.5

一点書き忘れました。 $DZ$5の部分は 文字列なので、オートフィルでコピーしても 数式の様に変化しません。 なので絶対参照の$を除いてDZ5でOKです。

回答No.4

月計表の後ろの&が余分です。 >=INDIRECT("["&C$3&"月.xls]月計表!"&$DZ$5) では 年計表の集計シートのDZ5セルに値を探しに行きます。 ブランクですと =[1月.xls]日計表!"" と変換されますので エラーになります。 =INDIRECT("["&C$3&"月.xls]月計表!$DZ$5") として下さい。

hiroki6071
質問者

お礼

こんばんわ。年計表の件ですがとりあえず上の =INDIRECT("["&C$3&"月.xls]月計表!DZ5") 直接入力したセルは上手くいったのですがオートフィルで横に引っ張るとすべてREFになってしまいます。けれども実際に月計表のブックで試しに数字を入れて見るとその数字になるのですがこれはちゃんとなっているのですか。日計表から月計表にした際同じ要領でやりましたがこのときは上手くいって数値が0となっているのですが。 教えてください。お願いします。

回答No.3

>上の関数のB1は日数の1日目の1が入ったセルつまり上の場合 >B1をさすのですか? >そしてこの関数のA1は日報のaの金額のが入っている項目を >さしているのですか? そうです。作成された表にあわせて B1の部分とA1の部分は 書き換えて下さい。 B1の部分は右へオートフィルを使用すると、C1 D1と書き変わりますが 日報シートのA1を見ると言う部分は文字列での入力のため 書き変わることはありません。 >関数の始めの"'"は何をさしてますか? これは ='1日'!A1  と変換されます。 シート名の頭についている '(シングルクオーテーション)です。 ' と B1に入っている 「1」 と '!A1 という文字を&で連結して INDIRECTで関数にしている と考えて下さい。

hiroki6071
質問者

お礼

先日の解答ありがとうございました。 おかげさまで日計表から月計表はできました。 次に月計表のブックを12か月分コピーし、ブック名を1月、2月、3月…と作りました。新しいブックに年計表を作り1月の項目を参照したら=[1月.xls]日計表!$DZ$5とでました。 これを同じようにINDIRECTを使って表したいのですかどう考えてもREFとでてしまいます。 =INDIRECT("["&C$3&"月.xls]月計表!"&$DZ$5) 何か間違ってるでしょうか?教えてください。お願いします。

回答No.2

シート名が 1日 2日・・・とあり、集計シートの B1セルから日数が1,2,3,4,横並びで書いてあり、A1セルにAの値が 入っているという前提で。 =INDIRECT("'"&B1&"日'!A1") と入れてみて下さい。 INDIRECTは文字列やセルの値を関数に変換するための関数です。 上の関数の意味は ='1日'!A1 という変換され、オートフィルタで 横にコピーしていくと ='2日'!A1 ='3日'!A1 となります。 セルを表すA1の文字は、環境によって書き換えて下さい。

hiroki6071
質問者

お礼

この場合月報の集計シートが  A B C D E F G H 1   1  2  3  4  5  6  7 2 a 3 b 4 c となりますと上の関数のB1は日数の1日目の1が入ったセルつまり上の場合B1をさすのですか?そしてこの関数のA1は日報のaの金額のが入っている項目をさしているのですか? 関数の始めの"'"は何をさしてますか? お手数かも知れませんが教えてください。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

シート名は"Sheet1日"で座標が固定でA2なら A1=INDIRECT("#Sheet"&ROW()&"日!A2") として下方にコピーしてみてください。

hiroki6071
質問者

お礼

上の数式がイマイチわからないなりに試してみてもやはりうまくいきませんでした。初心者でしてすみません。

関連するQ&A