• ベストアンサー

1列おきのワースト平均3を計算する関数

よろしくお願いします。 下記の様な表でL列の求め方は分かりますがM列の求め方は次の様な関数を使うとAVERAGE(SMALL(B3:J3,{1,2,3}))とするとC,E,G,I,Kの人数まで計算されます。点数だけのワースト3を求める方法をどうか教えて下さい。   A    B  C  D  E   F  G    H  I   J  K   L    M    1     国語   英語   数学    社会   物理   平均 ワースト3 2 クラス 点 人  点 人  点 人  点 人   点 人    点   平均 3 a組  70 33  75 31  74 32  73 32  70 30   4 b組  80 30  79 28  76 33  75 31  72 32 5 c組  85 31  82 30  75 32  77 30  74 31 6 d組  90 32  80 30  77 31  79 29  73 31

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

例示の各クラスの点というのはクラスごとの平均点なのでしょうか? その場合、正確には総平均点(加重平均)はクラスごとの平均点の平均とは違うのですがOKでしょうか? クラスごとの点数の平均やワースト3の平均点を出すなら、以下のような数式のほうがわかりやすいかもしれません。 平均:=AVERAGE(IF($B$2:$K$2="点",B3:K3,"")) 配列数式を使わないなら =SUMIF($B$2:$K$2,"点",B4:K4)/5 ワースト3平均:=AVERAGE(SMALL((IF($B$2:$K$2="点",B3:K3,"")),{1,2,3})) いずれも配列数式になりますので入力後Ctrl+Shift+Enterで確定してください。

3021783630
質問者

補足

質問が足りなかったのでね。例示してある点数は科目ごとのクラスの平均で示してあります。またL列の平均は5科目の平均です。 科目数はまだ多くあり、クラスもまだ多いのですが質問上省略し簡単に例を書きました。解答例 ワースト3平均 AVERAGE(SMALL((IF($B$2:$K$2="点",B3:K3,"")),{1,2,3})) を書いて試してみたのですが#VALUE!となり目的の答えが出ません。 もし宜しければ再度お願い致します。

その他の回答 (2)

noname#204879
noname#204879
回答No.3

   A   B  C  … … J  K   L      M 1      国語  ……  物理 2 クラス 点 人 … … 点 人 平均点 ワースト3平均 3 a組   70 33 … … 70 30  72.4      72.4 4 b組   80 30 … … 72 32  76.4      76.4 5 c組   85 31 … … 74 31  78.6      78.6 6 d組   90 32 … … 73 31  79.8 L3: =SUMPRODUCT((B$2:K$2="点")*(B3:K3))/5 M3: =SMALL(L$3:L$6,ROW(A1))

3021783630
質問者

お礼

私の説明不足もありましたが貴重なご指導ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

平均点=SUMPRODUCT(($B$2:$K$2="点")*($B3:$K3))/5 W3平均=SUMPRODUCT(SMALL(100^($B$2:$K$2="人")*($B3:$K3),{1,2,3}))/3

3021783630
質問者

お礼

質問の仕方が悪かったのかワースト3の平均が出ませんでした。 手を煩わしまして申し訳ございません。 ありがとうございました。

関連するQ&A

  • 巨大なCSVの加工(指定列のみの抽出)について

    巨大なCSVの加工(指定列のみの抽出)について 下記のような構成のCSVファイルがあります。 "ID","a","b","c","d","e","f","g","h","i","j","k","l","m" "0001","a","b","c","d","e","f","g","h","i","j","k","l","m" "0003","a","b","c","d","e","f","g","h","i","j","k","l","m" "0004","a","b","c","d","e","f","g","h","i","j","k","l","m" ・ ・ ・ 例えば、 ここから"ID"列と"c"列と"f"列のみ抽出して新たなCSVファイルで保存。 という処理を行いたいのですが、行数が5000万行近くあり、ファイルサイズが80GB程あるので エクセルはおろかアクセスでも開くことができません。 テキストエディタの秀丸64bit版なら開くことができますが、指定列の抽出方法が分かりません。 秀丸のマクロでもVBSでも良く、また膨大な待ち時間がかかっても構わないので実現する方法について お知恵をお貸しください。

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

  • エクセル計算式

       A    B    C    D    E    F   G   H   I   J    K    L  1 名前(1) 80.00  50.0  51.0 ×54.0 80.0  85.0  90.0  51.0   90.0  141.0  2 2 名前(2) 79.00  50.0 ×52.0 ×53.0  88.0 89.0 91.0 50.0  91.0 141.0 1 このとき、      C~EのMAXをIに(×の場合は00.0で計算)      F~HのMAXをJに(×の場合は00.0で計算)      (※C~Hの前には×を入れるためのセルあり)      I,J,K共にBの数値が小さいほうが上位に来る      (※I,Jの後ろには、順位を入れるセルあり)      Kは、I+J      Lは、Kの計に対する順位       列がずれていて見にくいです。すみません。 どなたか回答お願いします。

  • エクセルの関数の読み取り方を教えてください。

    エクセルで夜間の出勤時間の管理をしております。 以前在籍しておられた方が作られたようなのですが 関数初心者の私では読解するのが困難なので お教えいただきたく投稿しました。 完成されてる表を掲載できればいいのですが・・・ 関数を掲載させていただきますので その関数の読み取り方をお教えいただければ幸甚です。 A列 日付 B列 始業時間 C列 終業時間 D列 計算用退勤表記 E列 拘束時間 F列 労働時間 G列 深夜労働時間 H列 残業時間 I列 普通勤務 J列 深夜勤務 K列 普通残業 L列 深夜残業 D列 =IF(COUNT(B5:C5)=0,0,C5+IF(C5<=B5,"24:00",0)) F列 =IF(E5-$B$37<0,0,E5-$B$37) G列 =IF(COUNT(B5:C5)=0,0,MAX(0,"5:00"-B5)-MAX(0,B5-"22:00")+MAX(0,D5-"22:00")-MAX(0,D5-"29:00")-$B$37) H列 =IF(F5-$B$38<0,0,F5-$B$38) I列 =IF(D5-B5-H5-G5-$B$37<0,0,D5-B5-H5-G5-$B$37) J列 =IF(I5=0,0,$B$38-I5) K列 =IF(F5-I5-J5-L5<=0,0,F5-I5-J5-L5) L列 =IF(G5-J5<=0,0,G5-J5) 基本休憩時間 2:00(=B37) 所定労働時間 8:00(=B38) 深夜終了時刻 5:00(=B39) 深夜開始時刻 22:00(=B40) 深夜労働時間 5:00(=B41) 当番休憩時間 1:00(=B42) 表の内容はこんな感じなのですが。 これでわかりますでしょうか? 基本の時間は20:00~7:00 です また、万一勤務時間が17:00~4:00の場合 どこの計算式がどのようにわかりますでしょうか? 文字の羅列になって申し訳ございませんが 宜しくお願い申し上げます。

  • 二項目の平均

    教えて下さい。 A B   C   D   E    F   G   H    I 1        1学期        2学期 2 氏名 国語 算数 平均  国語 算数 平均  総平均  3   a男  70  60   65.0   60  65  62.5  4  b子  75  50   62.5   70  60  65.0 5  c子  77  40   58.5   80  50  65.0   Excelwで上記の様な「I列」を求める場合Average関数を使い(C3:G3)と すると「E列」の1学期の平均まで含めて計算します。 C、D、F、G列だけの平均を求めたいのですが・・・ お願いします。

    • ベストアンサー
    • HTML
  • エクセルで2列以上のものを同時に並び替えするには

    エクセルで下記のようなデーターがあるとします。 1 A  G     B  H 2 C  I  ○   D  J 3 E  K   F  L このようにひとつの項目に2行づつあるものに対して、最後に○をつけたものを先頭に2行そのまま一気に並び替えるにはどのようにすればよろしいでしょうか?要するに 2 C  I  ○   D  J 1 A  G     B  H 3 E  K   F  L このようにしたいです。 よろしくお願いいたします。

  • エクセルの関数についてです。平均・最小値・合計

    エクセル2003です。 下記の14~7までの数字から、少ない数字を5つ選び、 その5つの平均を出したいのですが、調べて見てもわかりません。 「1J」に「9.2」と出るようにお願いします。 すいませんが、よろしくお願いします。   A  B  C  D  E  F  G  H  I  J 1  14  9 13 12 11 10 15  9  7   

  • 列A,列Bを参照して列Cにそれに対応する文字列を表示

    列A,列B,列C 4,8,A 4,9,B 4,10,B 4,11,C 4,12,C 4,13,D 3,8,E 3,9,F 3,10,F 3,11,G 3,12,G 3,13,H 2,8,I 2,9,J 2,10,J 2,11,K 2,12,K 2,13,L 1,8,M 1,9,N 1,10,N 1,11,O 1,12,O 1,13,P 列Aに1~4,列Bに4~20の値を入れ、 列Cに、計算式で上記のような文字列を表示させたいのですが、 if関数のネストが7つまでらしく8つ以上が出来ません。 何か方法がありましたらお願いします。 =IF(AND(A2=4,B2<=08),"A" ,IF(AND(A2=4,B2<=10),"B" ,IF(AND(A2=4,B2<=12),"C" ,IF(AND(A2=4,B2>=13),"D" ,IF(AND(A2=3,B2<=08),"E" ,IF(AND(A2=3,B2<=10),"F" ,IF(AND(A2=3,B2<=12),"G" ,IF(AND(A2=3,B2>=13),"H"))))))))

  • エクセル関数でちょっと悩んでます。

    エクセル関数でちょっと悩んでます。 sheet1にセルB4、C4、D4、B5、C5、D5(グループ1)とI4、J4、K4、I5、J5、K5(グループ2)にデータが入っているとします。 sheet2のB3、C3、D3、E3、F3、G3にグループ1のデータを記入します。 B4、C4、D4、E4、F4、G4にはグループ2を入れたいのですが、sheet1からみて列7つ移動したものとして記入したいです。どうやればいいですか? 例えば、sheet2のB3には、=Sheet1!B4を入れれば反映されます。 sheet2のB4にはsheet1のI4を入れたいのですが、sheet1からみて列7つ移動した形でエクセル関数を使って表現したいのです。どうやればいいですか? =Sheet1!B4+?

  • エクセルデータの並び替え

    A列に 1 2 3 4 5 6 7 ・・・・・ B列に a b c d e f g h i j k l ・・・・ と文字列があります。 これを C列に 5つずつデータをセットにして並べたいのです。 A列    B列           C列 1     a      1 a   2 b  3 c  4 d  5 e 2     b      6 f   7 g  8 h  9 i  10 j 3     c      11 k  12 l  13 m  14 n  15 o 4     d      16 p   17 q  18 r  19 s  20 t 5     e      以下同じように続く 6     f 7     g 8     h 9     i 10     j 11     k 実際のC列のデータは トマト tomato  ネコ cat   机 desk  いす chair  かばん  bag  のようにしたいのです。 関数の扱いがわからずに苦戦しています。どうぞ、よろしくお願いします。

専門家に質問してみよう