アプリ版:「スタンプのみでお礼する」機能のリリースについて

1~31(日にち、シート名は数字のみ入力してある状態)のシートが元々あり2の受入合計(I20)と2の払い出し合計(I35)を備考欄の(R20)に前日(前シート)の受入合計と払い出し合計の累計を表示させたいです。この表は元々あるものなので変えれないのと、既に1~31のシートが出来上がってしまているので表自体は変えれません。
出来れば数値を変えたら即反映してくれるVBAを教えて頂けるとありがたいです。

「エクセルの日報作成について」の質問画像

質問者からの補足コメント

  • >='1'!I20 + '2'!I20
      ='1'!I35 + '2'!I35
    普通の数式は組めます。
    一括で31シート分を行いたいと思ったので投稿しました。
    これから毎月・毎年、31シート分1シートづつ入れていかなくてはいけないので。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/07/05 16:55

A 回答 (3件)

日本語が変です。



>2の受入合計(I20)と2の払い出し合計(I35)を備考欄の(R20)に
>前日(前シート)の受入合計と払い出し合計の累計を表示させたい

R20セルに表示させるのは、
(1)2の受入合計(I20)と2の払い出し合計(I35)
(2)前日(前シート)の受入合計と払い出し合計の累計
のどちらなのでしょうか?

また、仮に(2)だとすると「前日(前シート)の受入合計・・・の累計」という表現も変です。もしかすると「前日(前シート)【まで】の受入合計・・・の【差引の】累計」という意味かもしれません。但し、前日のシートに「翌日繰越」の数値がある場合は「前日(前シート)【まで】の受入合計・・・の【差引の】累計」は前日シートの「翌日繰越」と等しいはずてすので、この表現でも通じます。

とはいっても、全て推測で本当のところは判らないので、「前日(前シート)【まで】の受入合計・・・の【差引の】累計」を表示したいという勝手な解釈で話を進めます。

掲出された表には「前日繰越」があるようですので、「翌日繰越」があっても不思議はありません。

No.2さんが一般的なテクニックを回答されておられます。
そこまで複雑な数式を使わなくても、ご掲示の表だとV41セルに日付を入力しているようです。つまり、(B41セルに「控」と標記されているので別セル【V2セルあたりに】にも日付がある可能性はありますが・・・)V41の値とシート名は一致しているということになります。

だとすると「前日(前シート)【まで】の受入合計・・・の【差引の】累計」は「翌日繰越」と等しいので、「翌日繰越」は前シートの「前日繰越+受入合計-払出合計」で求められます。

日付のセルがV41、前日繰越のセル番地がI53、受入合計のセル番地がI20、払出合計のセル番地がI35だとすると、「前日(前シート)【まで】の受入合計・・・の【差引の】累計」は

=INDIRECT(V41-1&"!I53")+INDIRECT(V41-1&"!I20")-INDIRECT(V41-1&"!I35")

という数式で求められるはずですのでVBAを書くまでもありません。

そうではなく、毎日R20セルにはその月1日以降毎日の受入合計の累計、R35セルにはその月1日以降毎日の払出合計の累計を表示させたいのであれば、同様にV41セルに日付があるとして、R20セルに、

=IF(V41>1,INDIRECT(V41-1&"!R20")+I20,I20)

R35セルに、

=IF(V41>1,INDIRECT(V41-1&"!R35")+I35,I35)

という数式を記述すればよいことになります。
    • good
    • 0

じゃあ横着をするためのヒント。



シート名を取得する関数があります。
 =CELL("filename",A1)
これで、その数式があるシート名をファイル名とともに得られます。
 例:
  D:\ドキュメント\[Book1.xlsx]Sheet1 
ここから必要な文字列を切り出して使いましょう。
切り出し方は分かりますよね。普通にFIND関数やSEARCH関数で"]"の位置を確認してMID関数やRIGHT関数に渡して切り出すだけです。

CELL関数の使い方を確認してください。

※ CELL関数は保存を一度もしていないブックではエラーになります。
  エラーになっても、保存した後に再演算させると正常に動作します。

・・・

このように自力で解決できるようになるための知識のアドバイスを求めるようにしましょう。

ちなみに「一個ずつ入力するのめんどくせー」の補足に反応しての横着するためのアドバイスです。
本文は「代わりにマクロを作れ。オレ様の成果として使ってやるwww」って内容になっていることを反省してください。
    • good
    • 0

普通に数式を組めばイイじゃない。



>2の受入合計(I20)と2の払い出し合計(I35)を備考欄の(R20)に前日(前シート)の受入合計と払い出し合計の累計を表示させたいです。

これは
 シート「1」の I20セル
 シート「2」の I20セル
の合計と
 シート「1」の I35セル
 シート「2」の I35セル
の合計を
 シート「2」のR20セル
に表示させたいという事でよろしいでしょうか?

素直に
 ='1'!I20 + '2'!I20
 ='1'!I35 + '2'!I35
でそれぞれ計算できますよ。
あとは工夫次第で何とでもなると思うのですがいかがでしょう。

・・・

ちなみに「串刺し計算」というテクニックもあります。
これは、同じフォーマットのシートの、同一セルの値を合計するなどの手段に使えます。
 シート「4」の R20セル

 =SUM('1:4'!I20)
と入力すると
シート「1」からシート「4」までの I20セル の合計を求めることができます。

横着ができる数式もあるのですがそれは理屈を理解してからの話なので、
もしもこれをやりたいのであれば、
各シートでこの「串刺し計算」の数式を入力してください。

……数式の組み合わせや R20セル の体裁(見た目)は質問者さん自身で工夫しましょう。


・・・余談(というか注意)・・・

ここは自力で問題を解決するためのアドバイスを受ける場所であり
代わりに作業をしてもらう依頼をする場所ではありません。
 「自分では作れないから代わりに作って」 
ではなく
 「自分では作れないから分からない所を教えて!」 
とする場所って事です。
もしも作業依頼をしたいのであれば、お金を払って業者に作業委託しましょう。
この回答への補足あり
    • good
    • 1

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