[[20250303155600]] 『オートサムの自動入力』(aser) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『オートサムの自動入力』(aser)

お世話になります。
こんなことができるのかの質問になります。
C列に計と入力するとD列、E列にオートサムが入力され、その日に入力した値が合計されるようにってできたりするのでしょうか。
C列にはもともと材料名が入力されており、日ごとの集計をする際にこんなことってできるのかなーとふと思いまして。

  A  B  C  D  E
1 3/3   材料名 5  50000
2     材料名 5  50000
3      計  10 100000
4
5
6
7

< 使用 Excel:Excel2016、使用 OS:unknown >


 潔く[小計]機能にお願いした方が良いのではないかと思ってしまいますが...

エクセルの集計術:4つの機能(小計、ピボットテーブル、統合、関数) - Genial Technology
https://corp.genialtech.io/ja/column/excel-aggregation/

(白茶) 2025/03/03(月) 17:18:42


  D1 =IF($C1="計",SUM(D$1:INDEX(D:D,ROW()-1)),"")  予め下にコピーしておく
  E1 =IF($C1="計",SUM(E$1:INDEX(E:E,ROW()-1)),"")  予め下にコピーしておく
  これでは日ごとの集計が全く考慮されていないので、こんなのを元に集計開始行や集計終了行をアレンジするなんてのも。ちょっと無理があるかな?

(ポッポ) 2025/03/03(月) 17:38:17


 (1)結論から言うと、手でやったほうが確実だと思います。
 手作業というのは、
 「D3:E3を選択した状態で、ALTキーを押したまま = を押す」ということだけです。
 1日に一回だけでしょう?それくらいやりましょうよ。

 (2)どうしてもということであれば、イベントプロシージャを使います。
 そのシートのsheet moduleに以下を書きます。

 Private Sub Worksheet_Change(ByVal Target As Range)
     If Intersect(Target, Columns("C")) Is Nothing Then Exit Sub
     If Target = "計" Then
         Target.Offset(0, 1).Resize(1, 2).Select
         Application.EnableEvents = False
         Application.CommandBars.ExecuteMso "AutoSum"
         Application.EnableEvents = True
     End If
 End Sub

 # 不測の事態が起きてもこちらでは責任は負いかねます。自己責任でお願いします。

(xyz) 2025/03/04(火) 09:35:16


白茶 さま
ポッポ さま
xyz さま

みなさまご回答ありがとうございます。
皆様の回答内容を参考にしながらどれで運用するか決めたいと思います。

(aser) 2025/03/04(火) 13:26:22


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.