[[20070711133039]] 『セルの非表示時のSUM計算に関して』(あんぱん) >>BOT

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

 

『セルの非表示時のSUM計算に関して』(あんぱん)

先日はご指導頂きましてありがとうございました。

さて、表記の通りセルの非表示の際、その表示されている部分だけを計算

したいのですが、どのようにしたらよろしいかご指導いただければと思います。

オートフィルターを利用できれば

SUBTOTAL関数にて条件設定9で表示部分だけをSUM計算出来るのですが、

単なる非表示だと表示されていない部分も計算されてしまいます。

宜しくお願いいたします。


 エクセルのバージョンにもよりますが、
 =SUBTOTAL(109,範囲)
 とすればできると思います。
 (ROUGE)

>単なる非表示
とは  ??? 非表示もいろいろありmすよ。
(???)

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.