No.3ベストアンサー
- 回答日時:
こんな感じでも良いんじゃないでしょうか。
1行目は項目名等が入るとして、B2に↓を入れて下方向にコピー
=IF(OR(A2="",A3<>""),"",SUM(A$1:A2)-SUM(B$1:B1))
mt2008さん、試してみました。
うまくできました!
関数で出来そうな気がしてたのですが、実際にやってみるとなかなかうまくできなく、VB勉強中の私にはまだVBでは作れないので、よい教材になると思い質問してみました。
同僚が仕事で1から10まで時間をかけて入力してたので、これでかなり仕事が楽になります。
私もmt2008さんのおかげでよい勉強になりました。
シンプルで無駄がなく美しい関数ですね!
早速使わせていただきます。
mt2008さん、ありがとうございました。
No.4
- 回答日時:
なるほど。
No3 mt2008さんの回答がスマートですね。1行目にも対応できるようにB1からオートフィルするとして
=IF(AND(ROW()=1,A1<>"",A2=""),A1,IF(AND(A1<>"",A2=""),SUM(INDIRECT("A1:A"&ROW()))-SUM(INDIRECT("B1:B"&ROW()-1)),""))
て感じでしょうかね。
eden3616さん、丁寧に教えていただきありがとうございます。
私にはちょっと難しいようです。
参考にさせていただき、勉強に役立てたいと思います。
eden3616さん、ありがとうございました。
No.2
- 回答日時:
VBAの手順で訂正です(箇条番号の付け間違えで、内容は同じです)
(1)標準モジュールに以下のコードを貼付
(2)B1に「=kei(A1)」を入力
(3)B1の数式をA列の最終行までオートフィル
関数の処理に対しての補足です
「=kei(A1)」のA1は対象のセルを指定してください。
対象のセルより上側に連続する値の合計を返します。
対象のセルが1行目または、対象の一つ上のセルが空欄であれば対象のセルの値を合計として返します。
関数での処理、VBAでの処理どちらもA列の最終行は空白である必要があります。
(回答No1添付画像ではA10及びA21のセルが空白)
No.1
- 回答日時:
とりあえず二通り。
■VBAのユーザー定義関数の場合
(3)標準モジュールに以下のコードを貼付
(1)B1に「=kei(A1)」を入力
(2)B1の数式をA列の最終行までオートフィル
Function kei(対象のセル As Range)
Dim tar As Range
Set tar = 対象のセル
If Not (Len(tar) > 0 And Len(tar.Offset(1, 0)) = 0) Then kei = "": Exit Function
If tar.Row = 1 Or tar = "" Then kei = tar.Value: Exit Function
If tar.Offset(-1, 0) = "" Then
kei = tar.Value
Else
kei = WorksheetFunction.Sum(Range(tar.End(xlUp), tar))
End If
End Function
■作業列を使用した関数の場合
(1)B1のセルに「=IF(AND(A1<>"",A2=""),SUMIF(C:C,C1,A:A),"")」
(2)C1のセルに「=IF(ROW()=1,0,IF(A1<>"",OFFSET(C1,-1,0),OFFSET(C1,-1,0)+1))」
(3)B1とC1の数式をA列の最終行までオートフィル
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Web画面の文字をVB6で取得したい
-
【ExcelVBA】インデックスが有...
-
VB.net(VB)で、フォームにExcel...
-
VBA 別ブックから条件に合うも...
-
Excel VBA 文字列のセルを反映...
-
エクセルのマクロについて教え...
-
EXCEL vbaでシート上に配置した...
-
配列のペースト出力結果の書式...
-
VBA ユーザーフォーム ボタンク...
-
Outlookの「受信日時」「件名」...
-
VBA 別ブックからコピペしたい...
-
VBA 入力箇所指定方法
-
【ExcelVBA】値を変更しながら...
-
VBA 複数条件の分岐処理の上手...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBA コードどこがおかしいですか?
-
[VB.net] ボタン(Flat)のEnable...
-
エクセルVBA
-
【ExcelVBA】値を変更しながら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 別ブックからコピペしたい...
-
Vba ファイル書き込み時に書き...
-
Excel_VBAについて質疑です。(...
-
VBAの間違い教えて下さい
-
VBA コードどこがおかしいですか?
-
VBA 円グラフ 特定条件に一致し...
-
VBA 別ブックから条件に合うも...
-
pdfファイルの複数添付 引数の型
-
【ExcelVBA】インデックスが有...
-
ExcelVBAマクロで実行した時の疑問
-
Vba UserformからExcelシートの...
-
VBA初心者です。次のVBAコード...
-
Outlookの「受信日時」「件名」...
-
Excel 範囲指定スクショについ...
-
vbs ブック共有を解除
-
配列のペースト出力結果の書式...
-
Excel VBAで値を変えながら、pd...
-
VB.net(VB)で、フォームにExcel...
-
vbaにてseleniumを使用したedge...
-
ExcelVBA シート名を複数セルか...
おすすめ情報