[[20031004125333]] 『表示されたセルだけの合計』(どんぐり) ページの最後に飛ぶ

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

 

『表示されたセルだけの合計』(どんぐり)
     金額
Aさん  100
Bさん  500
Cさん  250 
 ↓
合計金額 X
・・・と続く表があって、いろんな条件で行を非表示にします。表示されたセルの合計を出したいのです。オートΣでは、非表示も合計されてしまいますし・・・ 下のバーに合計や平均が選択すると出てきますが、要はこれをそのまま合計”金額X”のセルにもって行きたいのですが・・・
あわせて、オートフィルで抽出した金額又は単価に一律の上乗せをした場合(コピー→形式を選択して貼り付け→加算)も非表示セルに加算されてしまいます。非表示セルには加算されない(貼り付けされない)方法を教えてください。

 表示セルの合計を求めるには =subtotal(9,範囲) で求めることが出来ます。
他に =subtotal(1,範囲) で平均、 =subtotal(2,範囲) で個数が求まります。
 (シニア)

ありがとうございます。説明が足りませんでした。例えばBさんを非表示にした場合、合計は350となるわけです。非表示にする条件は、その都度違うのでそこんとこは必要ないんですが・・Bさんを非表示にして(ホントは100人位いてその内の何十人かを非表示にします。)範囲選択すれば、コマンドの欄に合計がでてきます。これをそのままセルに持って行きたいのですが・・・よろしくお願いします。

 オートフィルターで表示された金額の合計は案内のように”金額X”のセル =subtotal(9,範囲) で表示されます。
範囲選択後コマンドバーに表示される額と同じになります。
「オートフィルで抽出した金額又は単価に一律の上乗せをしたい場合」
@上乗せする金額をコピーしておきます。
Aオートフィルで抽出した金額範囲を選択します。
BCtrlキーとGきーを押してジャンプさせ、[セル選択]ボタンをクリックします。
C選択オプションで「可視セル」を指定してOKとして、可視セルを選択します。
D形式を選択して貼り付け→加算 OKで可視セルだけに加算させられます。
 (シニア)

シニアさんありがとうございます。"可視セル”というのがミソだったんですね。一律アップ、ダウン無事出来るようになりました。とってもうれしぃ!!
それと、確かにオートフィルターではsubtotalでうまくいくんですが、表示、非表示セルはオートフィルターで抽出できない内容なんです。単にいくつかの行を非表示(それぞれ手動)してから、残ったセルを縦に合計するだけのことなんですが・・・しつこくてすみません・・・

 横から失礼します。SUBTOTAL関数では手動操作で非表示されたセル値を除く事は無理です。
ユーザー関数です。

 Function MYSUM(adr As Range) As Double
    Dim C As Range
    Dim tol As Double

    Application.Volatile

    tol = 0
    For Each C In adr
        If Rows(C.Row).Hidden = False Then tol = tol + C.Value
    Next
    MYSUM = tol
 End Function

 Alt+F11でVBEを開き、挿入>標準モジュールでこのコードをコピペして下さい。
後はMYSUM(A1:A10)の様に使います。但し再計算はされませんのでF9で再計算して下さい。(ケン)

ありがとうございます!!今勉強中なので四苦八苦しながらやってます。何かできそうな気がしてきました。がんばります。シニアさん、ケンさんありがとうございました。
(どんぐり)


コメント返信:

[ 一覧(最新更新順) ]


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