• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:averageif関数について)

averageif関数による売上平均の計算方法

このQ&Aのポイント
  • 質問文章の売上順位表から、上位3名と下位3名の売上平均を計算する方法について説明します。
  • 売上順位表にデータが追加された場合でも、対応した式で上位と下位の範囲を変えることができます。
  • Small関数は使用せず、Averageif関数だけで下位3名の売上平均を求めることができます。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

>はじめから追加されることを見越して対応した式にする =AVERAGEIF(D:D,"<=3",C:C) =AVERAGEIF(D:D,">=" & MAX(D:D)-2,C:C)

jajan1966
質問者

お礼

回答ありがとうございます。 参考にさせていただきます。

その他の回答 (3)

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

採集的に、質問したいことがよく分らないのだが。 入力ータ(特に行)が増加した場合でも、式を変えずに済む、ランクで限定した、売上平均を出したい(式を作りたい)ということと解釈して下記は書いている。 ーー 下記データをシートの下記セル範囲に作って、挿入-テーブル操作をして、で構造化する。 (ファイルーオプションー「数式の処理」「数式でテーブル名を利用する」、をONにしておくこと) テーブル化されると、結果、第1行の見出しに当たる行の各列に▼が着く。色も変わり、データ部の1行おきに色が着く。 ーーー 例データ A1:D16 氏名 売上 ランク 列1 山田 21 10 ヤマダ 植田 32 8 ウエダ 大田 11 13 オオタ 大村 45 5 オオムラ 河合 24 9 カワイ 神田 6 14 カンダ 木村 13 12 キムラ 吉岡 19 11 ヨシオカ 近藤 65 2 コンドウ 大野 36 7 オオノ 大川 46 4 オオカワ 北野 64 3 キタノ 中野 45 5 ナカノ 中北 2 15 ナカキタ 大島 72 1 オオシマ == テーブル化して、結果、第1行の見出しに当たる行の各列に▼が着く。 本来この回答では、不要なのだが、D列のD2に入れる式は =PHONETIC([@氏名]) 式の複写操作はいらない。 === さて本題の、売上3位以上だけの行の、売り上げ平均は、例えば結果を、出すセルはG2として、G2の式は AVERAGEIF(テーブル13[ランク],"<4",テーブル13[売上]) 結果は 67, 検算は 72、65、64を足して201、3で割って67 ==== これで最終行の次の行にデータを追加したりして、テスト・納得してみてください。 === 今まで (1)最終行を捉えるのはやめて、適当な行数+アルファ行数を見積もり、そこの行までは==IF(A1="","",本来の関数式)を式複写して、データが途切れた行より下は空白になるようにした。 この点で、行数(デー数)が多いと式複写も手数だし、無駄な気もしていた。 その後Googleの表計算などで、FormulaArray関数が創設され、対抗上?MSも、構造化参照を(エクセル2010以後?)作った。エクセル使いの合う打で、流行っているかどうか、小生には判らないが、理論的ではあると思う。MSは主流にしたいのだろうが。 ==== 「構造化参照」については、 Googleで「構造化参照」で照会し、 http://www4.synapse.ne.jp/yone/excel2013/excel2013_table_kouzouka.html 他、2-3記事読んでみてください。 (テーブル化は構造化参照以前からあるもののようですが。)

jajan1966
質問者

お礼

わかりにくい質問文にもかかわらず丁寧に回答いただきありがとうございます。 テーブルの機能もぜひ活用できたらと思います。 ありがとうございました。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

勘違いならゴメン 順位は売上の順位ですね、この項目を降順(D列)と昇順(E列)として式で求めます  D2=RANK.EQ(C2,C:C,1) E2=RANK.EQ(C2,C:C,0)  これを縦にコピーします。 上位3件の平均=AVERAGEIF(D:D,"<=3",C:C) 下位3件の平均=AVERAGEIF(E:E,"<=3",C:C) ※アドレスで行№を外すとその列の全てが対象になります 尚、件数も入力セルを用意するとよいかも

jajan1966
質問者

お礼

ありがとうございます 順位は売り上げの順位です 思っていたイメージに近い式です 参考にさせていただきます

  • kkkkkm
  • ベストアンサー率66% (1718/2588)
回答No.1

上位 =AVERAGEIF(D2:D50,"<=3",C2:C50) 下位 =AVERAGEIF(D2:D50,">=" & MAX(D2:D50)-2,C2:C50) のように範囲を大きくとっていればいいのではないでしょうか。

jajan1966
質問者

お礼

ありがとうございます。参考にさせていただきます。

関連するQ&A

専門家に質問してみよう