[[20170515105918]] 『列方向で空白行の前まで集計したい』(ちゃっぷ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『列方向で空白行の前まで集計したい』(ちゃっぷ)

アクティブセルの一行上から空白行の下までの範囲を合計し表示したい。
以前、教えてもらって使っているのですが、1行、2行の集計だと
空白の上の値まで集計してしまい、誤計算になってしまいます。
解決法を、教えてください。

< 使用 Excel:Excel2007、使用 OS:WindowsXP >


 >教えてもらって使っているのですが

 そのコードをアップしてください

(半平太) 2017/05/15(月) 11:39


すみませんでした。

 With ActiveCell
      j = .Offset(-1).Address  '行方向
      i = .Offset(-1).End(xlUp).Address  '行方向(空白行の下まで?)
          .Formula = "=sum(" & i & ":" & j & ")"  'アクティブセルに数式を設定

 End With

このような感じです。
(ちゃっぷ) 2017/05/15(月) 15:20


 >1行、2行の集計だと 

 旨く行かないのは上に1行のケースだけじゃないですか?

 アクティブセルより2つ上が空行だったら、一つ上のみ集計対象にするべく変更する。
      ↓
     With ActiveCell
         j = .Offset(-1).Address  '行方向

         If .Offset(-2).Value = "" Then ’2つ上が空白なら
             i = .Offset(-1).Address  ’一つ上だけを対象にする
         Else
             i = .Offset(-1).End(xlUp).Address  '行方向(空白行の下まで?)
         End If

         .Formula = "=sum(" & i & ":" & j & ")"  'アクティブセルに数式を設定

     End With

 いずれにしても、アクティブセルを基準に何かすると言うプログラムは少しリスキーな気がします。

(半平太) 2017/05/15(月) 15:50


半平太さん

ありがとうございました。解決しました。
ちゃっぷ
(ちゃっぷ) 2017/05/15(月) 16:25


 関連事項で、もう一点教えて下さい。
上方向に、空白行が無い場合、項目行まで(表の一番上)計算の
範囲指定がされてしまいます。答えは、合っているのですが!
解決方法は、あるでしょうか。
(ちゃっぷ) 2017/05/17(水) 16:31

 >解決方法は、あるでしょうか。

 どうなると解決状態になるんですか?

 私としては、上に何もない所のセルをアクティブにして、
 このプログラムを実行する、と言う状況自体が不思議に思えるんですけど・・・

(半平太) 2017/05/17(水) 17:00


 集計行が1行目から10行目まで、あった場合、11行目をアクティブセルとし、集計すると
上方向に空白行が無い為、集計範囲指定が、項目行(表の一番上)まで指定されてしまう。
集計表の一行目は空白ではない。

(ちゃっぷ) 2017/05/17(水) 17:22


 それで、どうなれば解決なんですか?

 私としては、実行しなければ済むんじゃないかと思っているんですけど。

(半平太) 2017/05/17(水) 17:27


コメント返信:

[ 一覧(最新更新順) ]


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