• ベストアンサー

条件付きのMEDIANとAVERAGEについて。

条件付きのMEDIANとAVERAGEについて、教えてください。 シート2のN列が"成約"だった場合に、シート2のK列の金額の中央値と平均の値を出したいのですが、うまく出せません。 =MEDIAN(IF(シート2!N1:N1000,"成約"),シート2!K1:K1000) では駄目でしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

平均は、例えば男と女の行が混じっていて、男だけの平均を出す例が有名です。それは 配列数式の話題です。 (SUMPRODUCTの問題でもありますが、それを使うと条件つき合計を条件付き件数で割り算しないとなりません。) 原理解説は http://pc.nikkeibp.co.jp/pc21/special/hr/hr4.shtml 例 成約 14 商談中 10 破局 19 成約 25 成約 18 =AVERAGE(IF(A2:A6="成約",B2:B6,"")) と入れてSHIFT+CTRL+ENTERの3つのキーを同時押し。 結果 19 ーーー 例データ 成約 14 商談中 10 破局 19 成約 25 成約 18 商談中 29 商談中 13 成約 18 商談中 16 成約 23 =MEDIAN(IF(A2:A11="成約",B2:B11,"")) と入れてSHIFT+CTRL+ENTERの3つのキーを同時押し。 結果 18

jun_yoshi
質問者

お礼

ありがとうございます。 この通りやったら出来ました!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#79209
noname#79209
回答No.2

> シート2のN列が"成約"だった場合に この表現が端折り過ぎで、とても曖昧になっていますね。 「N列の中に"成約""が一つでもあったら」 「N列の中身が"成約"となっている行を探して」 とか、とりようによっては何とでもとれます... もっとはっきりと区別できる表現にしていただけませんか?

jun_yoshi
質問者

お礼

「N列の中身が"成約"となっている行を探して」 という意味でした。 質問があいまいで、すみません。 1番目の方の答えで出来ました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 統計学 メディアンの定義

    品質管理の仕事で毎日数個のデータをメディアン(中央値)で毎日継続して記録、管理しています。 メディアンの定義として確認したところ値(あたい)が奇数個の場合は順序の中央値、偶数個の場合は順序の中央2個のデータの平均値となっていますが、 現在記録している毎日のデータ数が2個以下になってしまう場合があります。 データが2個の場合は平均値と同様の値、1個の場合はそのままの値となってしまうのですが、それをメディアン値 として管理して良いのでしょうか? メディアン値としてはデータ2個以下は成立しないのでしょうか?

  • EXCEL2007 各行列にmedian関数でメディアンフィルタをかける

    EXCEL2007 各行列にmedian関数でメディアンフィルタをかけ違うシートに処理後の値を出力 今,A1から順に640×480の整数が.csvファイルで保存されています. 上記の行列にmedian関数を使用して3×3の中央値を求め,それを下記の画像のように中央のセルの値と中央値を置き換えます. この処理を640×480の行列に適用して(一列目と一行目は除く),画像処理にあるメディアンフィルタをかけようと思っています. ですがmedian関数を使用しても下記の画像のように中央値しかえられず,640×480のセルに適用するのには時間がかかりすぎます. そこで,上記の処理を行いかつ,処理後の640×480の中央値を別のシートに同じ配列で出力をしたいのですが,できるでしょうか? おそらくマクロやVBAを利用するのでしょうが,自分は今まで扱ったことがなく困っています. 一応本を買い,読んでみたのですが上記の処理はいろいろな機能が合わさっているため実行するにはどうしたらいいのかわかりません. どなたか,アドバイスまたは何をどのように使えば上記の処理ができるか教えてください. よろしくお願いします.

  • 条件つきのMEDIANについて教えてください。

    N列がりんごで、かつS列が青森の場合の、V列の中央値を出す方法を教えてください。

  • AVERAGE(IF

    EXCEL2003ですが、2行目にB列からK列までに数値が入っています。 その中で100以下の数値の平均をL2に表示させるべく、下記式をL2に貼り付けましたが、#VALUE!の表示です。 =AVERAGE(IF(B2:K2<101,B2:K2,"")) 下記式でも同様でした。 =AVERAGE(IF(B2:K2<101,B2:K2)) 加減乗除は分かるのですが、IF関数は良く分かりません。 どうぞ宜しくご教示下さい。

  • Excel2003 条件付き中央値

    Excel2003で条件付きの中央値を算出したいです。 例)A列が「男」の場合のB列の中央値  Excel2007では =MEDIAN(IF(A2:A20="男",B2:B20,"")) 等になるかと思いますが、  2003で算出する手段はありますでしょうか?

  • 【Excel】複数条件のAVERAGE

    ある特定したいくつかの要素の合計を、セル「I5」にだすとします。 たとえば表2のH2の「年」、同表のH3の「店舗」、同表のG5以下の「種目」からそれぞれ具体的な条件を、たとえば表1のA列より「2016年」、同表のE列より「店舗(1)」、同表のB列より「アスパラガス」を探し出すようにする場合関数式は以下のような式となりますが、 =SUMIFS($D$2:$D$596,$A$2:$A$596,$H$2,$B$2:$B$596,$G5,$E$2:$E$596,H$3) これを合計ではなく平均値で出す場合、「SUMIFS」のみ「AVERAGE」に入れ替え =AVERAGE($D$2:$D$596,$A$2:$A$596,$H$2,$B$2:$B$596,$G5,$E$2:$E$596,H$3) という式を「I5]に入れると確かに平均値はあっていたのですが、この式をコピー(セルのコピー)しても、正常に反映されず、I5の回答がそのままコピーされてしまいます。 何が原因なのでしょうか?

  • EXCEL2010のAVERAGE関数について

    こんばんは。 EXCEL2010ですが、同じデーターを使ってワークシートでAVERAGE関数を使って求めた平均値とVBAでApplication.Averageで求めた平均値が違います。 扱っているデーターは少数点以下桁数が20桁数の数値です。 小数点第8位まではあっているのですが、その後は違います。 例 0.00000138786111098443 0.00000137878257235606 0.00000138192909756498 普通にセルにAVERAGE関数を使って平均値を出すと 0.00000138285759363516 VBAでApplication.Avarageを使って平均値を出すと 0.00000138489510427471 (変数のデーター型はDoubleを使用) これは誤差範囲になるのでしょうか? またそれが誤差であれば、どちらが真の値になるのでしょうか? ご教授頂きたくよろしくお願いします。 <追伸> なぜVBAで平均値を求めるかというと、 平均する数の値が固定ではなくCASE毎に変動するVBAを作っています。 上記のVBAを完成し答え合わせした所、違う結果になってしまいました。 いろいろ変数のデータ型を変えたりしたのですが、解決しませんでした。

  • Excel2007でのAverage

    例えばA列のA1からA30間での数値平均を出したい場合、 あるセルに=AVERAGE(A1:A30)と書けばよいのは分かるのですが このA列に何も数字が書いてない場合(0除算のエラー)になり セルには#####と表示されてしまいます。 このA列に何も数字が書いてない場合、0と表示させるには どんな式を書けばよいのか教えてください。

  • VBAの複数条件分岐について

    VBAで下記の構文を使用してシート1にある表より 条件に合致するもののみシート2に抽出するようにしています。 現在はシート1のE2セルの値がシート1のB列の値と比較して 該当するものを抽出しています。 この条件が、 シート1のE1のセルの値が20より小さい場合、 かつE2のセルの値がシート1のB列の値と比較して該当するものを シート1に貼り付け、 シート1のE1のセルの値が20以上の場合、 かつE2のセルの値がシート1のD列の値と比較して該当するものを シート1に貼り付ける というような条件に変えたいのですが どのように変更したらよろしいのでしょうか。 よろしくご教授下さい。 ちなみに現在使用している構文です。 これもきれいな構文かはわからないのですが・・・ Sub test() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") k = 1 sh2.Cells(k, "B") = sh1.Cells(1, "A") sh2.Cells(k, "C") = sh1.Cells(1, "B") k = k + 1 d = sh1.Range("A65536").End(xlUp).Row For i = 2 To d If sh1.Cells(i, "B") <= sh1.Range("E2") Then sh2.Cells(k, "B") = sh1.Cells(i, "A") sh2.Cells(k, "C") = sh1.Cells(i, "B") k = k + 1 End If Next i sh2.Activate End Sub

  • [EXCEL]AVERAGEでブランクを飛ばした計算式

    みなさん、こんばんは。 [EXCEL]AVERAGEでブランクを飛ばした計算式を教えてください。 よろしくお願いします。 まず A列1~13に 10 20 30 40 50 60 (空白/ブランク) 10 20 30 40 50 60 と数字が入っています。 B列6行に =IF(A6="","",AVERAGE(A1:A6))と式を入れ、この式をB列13まで延ばすと、 B列6~13は 35 38 36 34 32 30 35 となります。 私の希望は7行目のブランクを無視して数字があるところだけを指定範囲(今回は範囲は6行)計算したいのです。 結果としてB列6~13は 35 35 35 35 35 35 35 となるのが希望です。 B列6、13は、連続していますので、そのままの平均なので35ですが、 他はブランクがありますので、そのブランク1つ分を計算範囲に入れず、 範囲先頭部分をひとつ増やして計算させたいのです。 B列8ならA7を除く、A2~A6,A8の平均(AVERAGE(A2:A6,A8)) B列10ならA7を除く、A4~A6,A8~A10の平均(AVERAGE(A4:A6,A8:A10)) という感じにです。 よろしくお願いします。

専門家に質問してみよう