プロが教える店舗&オフィスのセキュリティ対策術

セルの範囲指定で、例えば、「=average(A1:C30)」という計算式を入れるとします。
そこに、もう1つセルを足す場合は、「,F1」を足して、「=average(A1:C30,F1)」と
すると思うのですが、その逆は無いのでしょうか?
「A1:C30」という範囲指定の中の「B20」というセルは省いて範囲指定したい場合は、
なにかいい手が無いでしょうか?
エクセルにはそんな考え方はありませんか?
どなたかよろしくご教授ください!!

A 回答 (4件)

機能は思いつきませんが、「なにかいい手が無いでしょうか?」ということなのでユーザー定義関数を作ってみました。

他の統計関係の関数も同じように対応できるでしょう。
=EXTaverage(主範囲,"追加範囲","除外範囲") とします。
セルにセットする時は
=EXTaverage(A1:C20,"C22:C24","B10:B12,C19") のようにします。
主範囲,追加範囲のみの場合は(主範囲,"追加範囲")
主範囲,除外範囲のみの場合は(主範囲,,"除外範囲")
主範囲のみの場合は(主範囲)とします。
この例では、セル範囲A1:C20にセル範囲C22:C24を追加し、セル範囲B10:B20とC19を除いた範囲の平均を計算します。
時間をかけていないので誤設定した場合エラーになります。しかし計算が不正になるようなセルの選択は一応チェックしています。ご容赦下さい。
真の回答とは言えないかもしれませんが参考にして下さい。

'***** 拡張平均計算 *************************
' rgMain :主範囲
' strPlus:追加範囲。""で囲んで設定します。
' strSubt:除外範囲。""で囲んで設定します。
'*******************************************
Public Function EXTaverage(rgMain As Range, Optional strPlus, Optional strSubt)
Dim calcSum As Double '値の計
Dim calcNum As Double '数値入力されたセル数

Application.Volatile '自動再計算関数にする
'主範囲と追加範囲の重複チェック
If Not IsMissing(strPlus) Then
If Not (Intersect(rgMain, Range(strPlus)) Is Nothing) Then
EXTaverage = "エラー": Exit Function
End If
End If
'主範囲と除外範囲の包含チェック
If Not IsMissing(strSubt) Then
If Union(rgMain, Range(strSubt)).Address <> rgMain.Address Then
EXTaverage = "エラー": Exit Function
End If
End If
'計算する
With Application
calcSum = .Sum(rgMain) '主範囲
calcNum = .Count(rgMain)
If Not IsMissing(strPlus) Then
calcSum = calcSum + .Sum(Range(strPlus)) '追加範囲
calcNum = calcNum + .Count(Range(strPlus))
End If
If Not IsMissing(strSubt) Then
calcSum = calcSum - .Sum(Range(strSubt)) '除外範囲
calcNum = calcNum - .Count(Range(strSubt))
End If
End With
'ゼロ判定
If calcNum > 0 Then
EXTaverage = calcSum / calcNum
Else
EXTaverage = "エラー"
End If
End Function
    • good
    • 0

選択されたセル以外のセルを計算の対象にしたいということですよね。

答えはそような機能はEXCEL2000までのバージョンにはありませんので、出来ません。VBAでプログラミングすれば出来るかもしれませんが・・・(ホントに出来るかは不明)

そもそも、CTRLキーを押しながらのクリックで、複数選択したセルの一部を解除することも出来ませんしね。

面倒ですが、マウスでドラッグ&クリック若しくはキーボードで入力のどちらかになってしまうかと思います。
    • good
    • 0

結果から言えば、対象外のセルを除く考えはエクセルにはない様です。



手で、a1:a30,b1:b19,b21:b30,c1:c30と入力が面倒というのであれば、ctrlキーを押しながら対象セルをクリック又はドラッグして範囲を指定するとキーボードを打つ必要はなくなります。(このとき同じセルを選択した場合、複数回入力したことになってしまうので注意が必要です)

この回答への補足

ctrlキーを押しながらは使っているのですが、
例えば、もう1つセルを足す場合に、ctrlキーを押しながら
F1を押すと、数式上では「,F1」と入力されるように、数式上では
「a1:a30,b1:b19,b21:b30,c1:c30」と表示されても、
ショートカットキーの機能として、どこか押しながら
B20を押すと、「a1:a30,b1:b19,b21:b30,c1:c30」と表示される
という機能はやはり無いのでしょうか?

補足日時:2001/04/24 11:48
    • good
    • 0

(A1:C19,A20,C20,A21:C30)


または
(A1:A30,B1:B19,B21:B30,C1:C30)
とするしかないような気がしますが。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!