[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの非表示時のSUM計算に関して』(あんぱん)
先日はご指導頂きましてありがとうございました。
さて、表記の通りセルの非表示の際、その表示されている部分だけを計算
したいのですが、どのようにしたらよろしいかご指導いただければと思います。
オートフィルターを利用できれば
SUBTOTAL関数にて条件設定9で表示部分だけをSUM計算出来るのですが、
単なる非表示だと表示されていない部分も計算されてしまいます。
宜しくお願いいたします。
エクセルのバージョンにもよりますが、 =SUBTOTAL(109,範囲) とすればできると思います。 (ROUGE)
返信が遅れまして申し訳ございません。
非表示ですが、簡単に話すと、セルの範囲選択→右クリックで非表示
といった形です。それを、ある条件の下、マクロで実行しております。
例えば、A=Bなら非表示、A<>Bなら表示するといった具合です。
ROUGEさん、当方エクセルのバージョンが2002です。
109だと#VALUE!になってしまいます。
何か良い方法は無いのでしょうか?
(あんぱん)
> ROUGEさん、当方エクセルのバージョンが2002です。
> 109だと#VALUE!になってしまいます。 2003から対応しているようです。
以前Sabutotalという関数を試作しました。 [[20060608113546]]『非表示の列は計算されないようにしたい』(MG) これを利用されてはどうでしょうか。 ちなみに、列非表示にも対応しています。 マクロを使っているとのことなので、使い方は省略。 (ROUGE) '---- Function Sabutotal(cN As Byte, rng As Range) Dim C As Range Dim mA() As Variant With Application .Volatile If cN > 100 Then For Each C In rng If Not C.EntireColumn.Hidden And Not C.EntireRow.Hidden And _ Not C.Formula Like "=Sabutotal(*" Then ReDim Preserve mA(UBound(mA) + 1) mA(UBound(mA)) = C.Value End If Next Else For Each C In rng If Not C.Formula Like "=Sabutotal(*" Then ReDim Preserve mA(UBound(mA) + 1) mA(UBound(mA)) = C.Value End If Next End If With .WorksheetFunction Select Case cN Case 1, 101: Sabutotal = .Average(mA) Case 2, 102: Sabutotal = .Count(mA) Case 3, 103: Sabutotal = .CountA(mA) Case 4, 104: Sabutotal = .Max(mA) Case 5, 105: Sabutotal = .Min(mA) Case 6, 106: Sabutotal = .Product(mA) Case 7, 107: Sabutotal = .StDev(mA) Case 8, 108: Sabutotal = .StDevP(mA) Case 9, 109: Sabutotal = .Sum(mA) Case 10, 110: Sabutotal = .Var(mA) Case 11, 111: Sabutotal = .VarP(mA) Case Else: Sabutotal = "種類が正しくありまへん" End Select End With End With End Function
驚きです・・・ユーザー定義関数まで作れるなんて・・・
ROUGEサン、本当にありがとうございます。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.