• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL2003で自動計算に関して)

EXCEL2003で自動計算に関して

このQ&Aのポイント
  • EXCEL2003での自動計算方法について教えてください。
  • EXCEL2003での日報作成時に、前日の最終残金セルの金額を当日の前日残高に反映させたいです。関数はどのようにすれば良いでしょうか。
  • また、EXCEL2003で複数のシートをコピーして日付順に並べ替えることは可能でしょうか。シート名に月数を入れる場合、一括置換で変更できるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

「一つ前のシート」を参照してくる関数や計算式は,エクセルにはひとつもありません。 方法1:あっさりマクロを使う ALF+F11を押す 標準モジュールを挿入し,下記をコピー貼り付ける private function LeftSheet(byval Target as range) as range application.volatile set leftsheet = target.parent.previous.range(target.address) end function エクセルブックに戻り,ある日のシートのB33セルに =leftsheet(L33) と記入する。 #当然ですが,左隣の無い一番左のシートに記入すると,エラーになります。 方法2:マクロを使いたくないときは そういう方法は無いので,代わりに「隣のシートの名前」を計算で求められるように工夫して作成します。 例: 8月21日のシートのシート名を 20110821 と名前を付ける。 当然8月22日のシート名は 20110822 となる。 一度ブックを保存する。必ず行う。 ある日のシートを開く 簡単のため,セルA1に =DATEVALUE(TEXT(RIGHT(CELL("filename",A1),8),"0-00-00")) と記入し,日付の書式を付けておく。 上述の運用の約束を守っていれば,そのシート名の日付が現れる。 (いま運用中のシートのどこかのセルに,代わりになるデータが既に記入済みならそちらを使っても勿論かまわない) すると,「隣のシート(ゲンミツには昨日のシート。これが「隣」になきゃいけない必然性は何も無い)の名前」は「その日の日付の前日の日付」から計算可能なので,そこにあるL33の値は =INDIRECT(TEXT(A1-1,"'yyyymmdd'")&"!L33") のように持ってこれます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

(1)シート名も含めた形で、前の(左のタブのシートの)セルを変化させて複写することは出来ないと思います。 =Sheet1!$A$1 --->= Sheet2!$A$1 (2)日付順に並べ替えることはできるのでしょうか これも (A)VBAでプログラムを組んでシートのタブの順序を並べ替える (B)出来合いのソフトを導入する http://www.geocities.jp/ytaka7451/tool/sheetsort.htmのようなもの しかないと思います (3)>sheet名に月数を入れた場合、一括置換で返られるのでしょうか 実例も書いてないし意味が判りにくいが、シートタブ部のシート名称の文字列の一部を置換する操作は無いでしょう。 VBAならできなくはない。 ーー エクセルで、 式複写や置換や検索や並べ替えといっているのは、ほとんどすべて、シートのセルのデータ(値と数式など)を対象にするもので、シートタブの文言を対象には出来ないと思って、現状は、間違いないでしょう。将来バージョンでは改良されるかも(私が勝手に言っているっだけです)。 当面手作業でやらないとならないでしょう。質問者はVBAは判らないかもしれないので略。

関連するQ&A