[関数] 行列で条件指定し平均算出

このQ&Aのポイント
  • Excel2010を使用して、A1:H9の行列データから特定の条件で平均値を算出する方法を教えてください。
  • 条件は、A列が0以外で、1行目が0以外のセルであることです。
  • AVERAGEIFS関数を使用することはできないため、他の適切な関数を教えてください。
回答を見る
  • ベストアンサー

[関数] 行列でそれぞれ条件を指定し平均を算出する

こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 タイトルが分かりづらくて申し訳ありませんが、詳細は下記ご参照ください。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ■やりたいこと 下図のA1:H9のようなリストがあり、下記条件でB2:C9の範囲の平均を出したいのです。 ・A列が0以外 ・1行目が0以外 ・作業列(行)は作らない ・関数で実現する excel2007から追加されたAVERAGEIFS関数が使えるかと思ったのですが、平均対象範囲は単列(もしくは単行)しか指定できないようです。 この場合、どのような関数が適していますでしょうか? 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

条件に合うセル内の数値の合計を条件に合うセルの個数で割れば目的の平均値になります。 条件に合うセル内の数値の合計は次の数式で算出できます。 =SUMPRODUCT(B2:H9,(A2:A9<>0)*(B1:H1<>0)) 条件に合うセルの個数は次の数式で計数できます。 =SUMPRODUCT(ISNUMBER(B2:H9)*(A2:A9<>0)*(B1:H1<>0)) 従って次の数式で平均値を算出できるでしょう。 但し、B2:H9に0が入力されているときは平均値の対象になり、未入力のセルは対象外です。 また、B2:H9セルに文字列が入力されているとエラーになります。 =SUMPRODUCT(B2:H9,(A2:A9<>0)*(B1:H1<>0))/SUMPRODUCT(ISNUMBER(B2:H9)*(A2:A9<>0)*(B1:H1<>0))

rihitomo
質問者

お礼

ありがとうございます! 仰るように指定範囲の合計と割り数を別で出せば済む話でした。 なぜかAVERAGE系の関数に固執していました。 結果もこちらの要望どおりです。

関連するQ&A

  • [関数] 指定の範囲を乗算したものを加算する

    こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 タイトルが分かりづらくて申し訳ありませんが、詳細は下記ご参照ください。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ・やりたいこと 下図のA1:G6のようなリストがあります。 F列の合計はSUM関数で求めればいいのですが、G列のポイント合計を ・作業行や作業列を作らず ・関数内で範囲で指定 して作りたいのです。(例では4列ですが、実際にはもっとたくさんの列があるため) B3:E3の一つ一つのセルに対してB2:E2のセルを乗算した値を加算するような関数はありますでしょうか? ピボットやVBAなどではなく関数で実現したいです。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • [関数] 複数条件を指定し複数列の範囲から集計する

    こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 タイトルが分かりづらくて申し訳ありませんが、詳細は下記ご参照ください。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ・やりたいこと 下図のA1:E8のようなリストがあります。 H1:H4に指定の条件で果物がいくつあるのか計算したいのですが、集計の範囲にはC1:E8ないしリスト全体を指定したいのです。(D1:D8にしたくない) 自分でもSUMPRODUCT(SUMIFS)関数やINDEX関数で考えてみたのですが、完成には至っていません。 この場合、どのようなコードが適していますでしょうか? 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 平均値を出すVBAを教えて下さい!

    平均値を出すVBAを教えてください!! 下記の関数をCA2に入れて下に引っ張って使っているのですが、 データ量が多すぎて砂時計状態のまま動きません!! データはA列~BVまでで50万行位あります。 一番上は見出しです。 VBAで関数を使わないで平均値を出す方法を教えてください!! C列に日付が記入されており、シート11のセルで期間を以上と以下で設定しています。 答えが一緒であればどんな方法でも構いません。 ぜひよろしくお願いします。 =AVERAGEIFS(AC:AC,A:A,A10,C:C,Sheet11!$A$1,C:C,Sheet11!$B$1,AB:AB,2)

  • [関数] 集計用の関数についてご教示ください

    こちらの識者の方々にはいつもお世話になっています。 関数の質問です。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ・やりたいこと 図のようなリスト(A3:G7)があり、りんごやバナナなどの項目ごとに誰がいくつか集計したい(A11:C14) B12:C14の範囲に関数を入力して数字を導き出したいのですが、 その際の関数の範囲はA4:G7を指定したいのです。 (りんごの列の関数の範囲はA4:G5、ばななの列の関数の範囲はA6:G7という風に分けたくない) Aに1列追加して A4=りんご担当 A5=りんご個数 というような集計用の列を作成することは可能です。 このような場合どのような関数を使えばよいでしょうか? もし可能であれば集計用の列を追加した場合としない場合、両方の関数を教えていただければ幸甚です。 (集計用の列をどのような値にするかも併せて教えていただけますでしょうか) 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 条件に一致するデータの平均 (AVERAGEIFS?)

    Excel2007を使用しています。 条件に一致するデータの平均を取りたいと考えてます。 A B 1 1/9/2009 10 2 5/9/2009 15 3 20/9/2009 20 4 8/10/2009 18 Aは日付型、Bは数値型です。 Aが2009年9月の行のみBの平均値をとりたいので、 このケースだと、最初の3行が該当し結果は「15」になります。 以下のような関数を作ってみたのですが、公式エラーになってしまい、うまくいきません。 AVERAGEIFS(B1:B4,A1:A4,">=value("1/9/2009")",A1:A4,"<value("1/10/2009")") もっとキレイな方法も含めて、お分かりになる方、教えてください。

  • 条件を付けて平均を求めたい!(Excel)

    列   A      B         C    商品名    ランク       金額    1みかん    A        1000 行 2みかん    C         300    3みかん    B         600    4みかん    C            5             合計 1900    6             平均A    7             平均B    8             平均C 説明をする為に適当に作ったので、何故こんな物の平均を?と思うかもしれませんが、そこはあまり気にせずご回答頂ければ幸いです。 例えば、こんな表があったとします。(勿論、データ量はもっと沢山。。。) 各ランクごとの平均を求めたいのですが、どんな関数を使い、どんな範囲選択をすれば宜しいのでしょうか?  条件を付けAVERAGEで求めれば良いことはなんとなく分かるのですが・・・ 範囲の設定や数式の順番が全然分かりません。 よろしくお願いします。 ※金額欄(C列)・・・ 実際に未入力のセルがあるので、未入力のセルを0(ゼロ)として考えてくれる数式をお願いします

  • エクセルで条件付きの平均値を求める関数

    お世話になります。 恐らく簡単な見落としかと思うのですが、 関数がうまく動いてくれないので質問します。 A1~A5に商品名群(空白セルあり)、B1~B5(空白セルなし)にその値段が入力されています。 C1セルに、A1~A5で空白ではない行のB1~B5セルの平均値を出したいです。 例: A1:リンゴ  B1:100 A2:(空白) B2:50 A3:みかん  B3:400 A4:メロン  B4:500 A5:みかん  B5:200 この場合、B2の「50」は含めず、それ以外の行の平均値を求める。 関数はC1=AVERAGEIF(A1:A5,"<>""",B1:B5)と入れたのですが、空白セルを除いて計算してくれません。 間違いが分かる方がいましたら、返信頂きたいです。

  • エクセル関数の範囲指定を、座標数値で指定したい

    address関数とindirect関数で、行・列を数値で指定して、セルの値が求められますが、同じように行・列の数値を4つ使って範囲の指定をしたいのですが、どのような関数を使えばよいでしょうか? 具体的には、=MATCH(A1,範囲,1)の範囲を、2組の座標の数値で指定したいのです。

  • Excel_条件に合う範囲の平均値の求め方

    Excel関数についての質問です。 以下のようなデータが合った場合、条件に合う範囲のデータのみ 抜き出して平均値を求める方法を教えてください。 ■やりたいこと マイナスが続いている範囲を見つけ出し、マイナスが続いている 範囲のみの平均を算出する。 以下で言うとB4~B7の平均を自動で計算してくれる 関数を考えています。 A列:時間が入っていますが、これ自体も他の値を時間に換算したもの。 (式が入っています。) B列:データが入っており、プラスの領域とマイナスの領域を交互に繰り返す。    A  B 1 Time DATA 2  0   0.05 3  6   0.04 4  8   -0.02 5  11  -0.01 6  15  -0.03 7  17  -0.05 8  21  0.05 9  24  0.06 10  27  -0.03 ・・・(以下プラスとマイナスが交互に続きます。) DABERAGEなどの様に、条件に合うセルの平均ではなく、 ある範囲のセルの平均を出したいと思いますが 中々良い案がありません。 よろしくお願いします。

  • 特定条件の平均値を出す関数

    こんにちは いつもお世話になっています。  エクセル2003で特定条件の平均値を出す関数を教えてください。     A     B 1   名前   得点 2   新井   80 3   伊藤   70 4   上田   100 5   江藤   90 得点の上位3名の平均を出す関数を教えてください。 「ソートしてから範囲選択して平均を出す」のを省いて、一つの関数の中で上位3人の得点を取得して(100点が4人いたら4人分になりますが)平均を出したいのです。 よろしくお願いします。

専門家に質問してみよう