• 締切済み

エクセルの範囲指定

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

noname#40795
noname#40795

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

  • don_cha
  • ベストアンサー率34% (139/407)
回答No.3

選択されたセル以外のセルを計算の対象にしたいということですよね。答えはそような機能はEXCEL2000までのバージョンにはありませんので、出来ません。VBAでプログラミングすれば出来るかもしれませんが・・・(ホントに出来るかは不明) そもそも、CTRLキーを押しながらのクリックで、複数選択したセルの一部を解除することも出来ませんしね。 面倒ですが、マウスでドラッグ&クリック若しくはキーボードで入力のどちらかになってしまうかと思います。

  • don_cha
  • ベストアンサー率34% (139/407)
回答No.2

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

noname#40795
質問者

補足

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

  • taropoo
  • ベストアンサー率33% (34/103)
回答No.1

(A1:C19,A20,C20,A21:C30) または (A1:A30,B1:B19,B21:B30,C1:C30) とするしかないような気がしますが。

関連するQ&A

  • エクセルの値を範囲指定で取得してくるには?

    VB.netについての初歩的な質問かもしれませんがよろしくお願いします。 ●下記の様に値が入力されたエクセル(Book1.xls)があります。    A   B   C   D   E 1  100 200 300 400 500 2 600 700 800 900 999 ●VB.net側では下記のように宣言してあります。 Dim xlApp As Excel.Application Dim xlbook As Excel.Workbook Dim xlsheet As Excel.Worksheet ここで、Book1.xlsの"A1"から"E2"までのセルに入力されている値の中で最大のセルと最小のセルの色を変えるプログラムを作りたいと考えています。 【質問】 (1)この場合、『MAX関数』『MIN関数』の様なものは使用できないのでしょうか?使用できる場合は、セルの範囲指定で計算を行うことができないでしょうか?  ※ちなみに、セルを一つずつforループで検査する方法であればできています。 (2)またそのセル名(A5、C6等)を取得することはできないでしょうか? ご教授下さい。

  • Excelで指定範囲の固定方法

    すいません、Excel(2000)で入力作業をする際、例えば行を1.2.3と指定して、A3でEnterでB1、B3でEnterでC1、・・・・と移動できるように使っていた場合で、矢印キーやマウスでセルをクリックした場合、指定した範囲が解除され、また範囲を指定し、入力セルまでEnterキーなどで移動しなければいけない状態によくなってしまいます。そのような状況にならないように、矢印キーやセルをクリックしても指定範囲が解除されないように固定したいんですが、出来ないのでしょうか?

  • ExcelのVBAで複数の範囲を指定したいのですが

     ExcelのVBAの全くの初心者です。(PC全般については、多少はわかるつもりですが)  R1C1参照という形式を使って、複数のセル範囲を色付けするため指定するにはどのようにすれば良いのでしょうか?  例えば、アクティブセルにA25が指定されていて、A4~C7とE4~F10とI4~I8までを色付けしたいなどという場合。  色付けなどは、わかるのですが、複数の範囲指定がわからないのです。よろしくお願いします。

  • Excelのマクロにおいて、期間指定で印刷範囲の設定方法

    Excelのマクロにおいて、期間指定で印刷範囲の設定方法 Excelのマクロで分からない事がありましたので質問させて頂きます。 Excelで、特定の期間(例えば2010/7/1~2010/10/31)以外の日は 特定のセルを印刷しないよう設定する事は可能でしょうか。 例えば… A1セル TODAY関数 B1セル ああああ C1セル いいいい D1セル うううう とした場合、指定期間(例えば2010/7/1~2010/10/31)はA1~D1までを印刷範囲として、 指定期間以外はC1のみを印刷範囲から外したい、という事です。 指定期間過ぎたらセル削除…という方法では事情により駄目なのです。 無茶な事言っているかもしれませんが、可能な方法がありましたらご教授お願い致します。

  • 行を超えて範囲指定したい。

    エクセル2000でA1:G1とするとA1-A6,B1-B6,C1-C6,D1-D6,E1-E6,F1-F6,G1-G6が範囲指定できます。 行を超えて A1-A6,D1-D6,G1-G6,J1-J6というように3行おきに範囲指定する方法を教えてください。

  • Excel 関数での範囲指定

     Excelでの関数計算は、ほとんど使用した事の無い初心者ですが、もし分かれば教えてください。 あるアプリケーションソフトにパラメーターを投入し実行させるとExcelにて表が出来ます。この表のある列の関連するものを他のある列で指定したものが有るか無いか LOOKUP関数を使用して結果を見ようと思います。しかし、計算を実行するごとに結果を出したい範囲が変わります。簡単に、関数内の範囲指定をする方法は無いでしょうか。    A    B    C    D    E 1  ミカン  100   南      10 2  リンゴ   150   北    15 3  ミカン   200   南      20 4  バナナ   250   南      30 5  ミカン   300   南      55 リンゴ有り 例えば、上のような表が出来今回は、B列の100~200(B列は連続して範囲指定できる)までの範囲を決め A列に「リンゴ」があれば、「リンゴ」とどこかのセルに表示させる。 説明がうまく出来ずわかりにくいかもしれませんがよろしくお願いします。(要は、関数内の範囲指定を他から指定する事は出来ないかなあ)

  • Excelのマクロを使わず、数式内のセル指定範囲をダイナミックにすることはできますか?

    Excelで数式内に範囲を指定するときに、先頭と最後尾のセル番地を指定しますが、他のセルで指定した数値を指定したセル番地の行数に指定することはできますか? 例えば、以下のようなサンプルにおいて A B C D 1 10 2 4 2 32 3 42 4 20 5 17 6 =sum(A2:A4) C1番地に2、D1番地に4を入力すると自動的に A6番地でA2~A4の範囲を指定して足し算してくれるようなことをマクロを使わずに実現できるでしょうか?

  • 複数のエクセルファイルの指定範囲をコピーするには?

    複数のエクセルファイルの指定したセル範囲を、一括して他のエクセルファイルにコピーするフリーソフトがあれば教えてください。 例えばA,B,Cという名前のエクセルファイルを、それぞれ1行目だけを抽出して(指定したセル範囲)、Dという新規のエクセルファイルに並べてコピーするといった具合です。

  • エクセル Vlookup 範囲指定について

    よろしくお願いします Vlookupの範囲指定を, パスや,ファイル名,シート名により作成した文字列で指定したいと思っています。 これにより,年度末の処理が, シート内のセルを一部変更するだけで毎年対応可能になると思っています。 例えば, 平成24年の4月のツヨさんのB2セルの数字を参照したいときに, セルC3 c:\test\  (ディレクトリ1) セルC4 H24      (ディレクトリ2)←年度で変わります セルC5 \kaikei\   (ディレクトリ3) セルC6 04月.xlsx  (ファイル名)←月で変わります セルC7 ツヨ      (シート名)←人で変わります セルC8 !$A$1:$B$5 (検索範囲) という前提の元, セルC9 ="'" & C3 & C4 & C5 &"["&C6&"]'" & C7& C8 (表示は 'c:\test\H24\kaikei\[04月.xlsx]'ツヨ!$A$1:$B$5) とします。 ここで次の2式を記述します。 セルC20 =VLOOKUP(2,'C:\test\H24\kaikei\[04月.xlsx]ツヨ'!$A$1:$B$5,2,FALSE) セルC21 =VLOOKUP(2,C9,2,FALSE) セルC20は,正しく参照されます。 セルC21は,#N/Aエラーです。 なんとか セルC21のように指定したいと思っているのですが, 良い方法が無いでしょうか? ご教授, よろしくお願いします

  • average関数の範囲指定について

    average関数の範囲指定について教えて下さい。 列 A1 A2 A3 A4 A5 A6 ・・・・  の中で奇数列(A1,A3,A5~)のみ取り出して平均を出したいところですが、 =AVARAGE(A1,A3,・・・)という範囲指定を行った場合、ある列数を 上回ったところでエラーが発生してしまいます。 偶数列(A2,A4~)を最初から別行に組替えれば=AVARAGE(A1:??)と できるのでしょうが、表の性質上このままで計算を行いたいところです。 効果的な範囲指定をご教授下さい。よろしくお願いします。

専門家に質問してみよう