• ベストアンサー

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関数は良く分かりません。 どうぞ宜しくご教示下さい。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

解答No4です。 二つの方法ともB2からK2セルの間に100以下の数値が入力されていなければ#DIV/0!の表示が出ます。次のように式をしてください。 =IF(COUNTIF(B2:K2,"<=100")=0,"",SUMIF(B2:K2,"<=100",B2:K2)/COUNTIF(B2:K2,"<=100")) または次の式を入力して、その後にCtrl+Shiftを押しながらEnterキーで確定します。 =IF(COUNTIF(B2:K2,"<=100")=0,"",AVERAGE(IF((B2:K2<=100)*(B2:K2<>""),B2:K2,"")))

sapporolov
質問者

お礼

有難う御座いました。 お蔭様で無事解決致しました。このような単純な計算でも、色々考慮すべき事項があるのですね。 どうもお世話になりました。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

解答No3です。 =SUMIF(B2:K2,"<=100",B2:K2)/COUNT(B2:K2) の式ですが101以上の数値を平均に加えないのでしたら次の式になりますね。 =SUMIF(B2:K2,"<=100",B2:K2)/COUNTIF(B2:K2,"<=100") なお、配列関数を使っての式ですがつぎのような式にして空白のセルを数えないようにします。その後にCtrl+Shiftを押しながらEnterキーで確定します。 =AVERAGE(IF((B2:K2<=100)*(B2:K2<>""),B2:K2,""))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

#VALUE!の表示は引数の種類が正しくない場合に表示されるものでお示しのようなケースでは考えられないのですが。 次の式を入力してはどうでしょう。 =SUMIF(B2:K2,"<=100",B2:K2)/COUNT(B2:K2) この式はセルに入力された数値の平均を求めるもので空白のセルは考慮されていません。

sapporolov
質問者

補足

有難う御座いました。 入力しましたが、条件に合う100以下の数値合計を全データ数10で割った結果が出てるようです。良く分かりませんがCOUNTの100以下の条件付けがされて無いようです。 =AVERAGE(IF(B2:K2<101,B2:K2))を{、}で囲っても駄目なのでしょうか?試しましたが不可でした。 実際のデータ表でやってみましたが、今度は#DIV/0!のエラー表示です。確定する前に#VALUE!の表示でしたが、shift,ctrl,enterで #DIV/0!のエラー表示です。念のため書式が文字列では無く数値である確認はしました。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

式自体はほぼあってます。確定の仕方が間違っているだけで。 100以下は「<=100」なので =AVERAGE(IF(B2:K2<=100,B2:K2,"")) とし、配列数式になるので、CtrlキーとShiftキーを押しながらEnterキーで確定します。(普通にEnterしただけでは駄目) 空白を0としてみなさない場合は、 =AVERAGE(IF((B2:K2<=100)*(B2:K2<>""),B2:K2,"")) として、Ctrl+Shift+Enterで確定します。

sapporolov
質問者

補足

有難う御座いました。 配列数式の意味が分かりませんでした。 現状からF2を押し、Ctrlキー、Shift、Enterで数値が出ました。 L2をみると、{}で囲ってありますが、これが配列数式が演算式として確定されたという事でしょうか?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

式そのものは間違っていませんが式を貼り付けたとの表現が気になりますね。お示しの式を入力してもエラー表示がされますか?

sapporolov
質問者

お礼

有難う御座いました。 式の確定法が間違ってました。

関連するQ&A

  • [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)) という感じにです。 よろしくお願いします。

  • Excel2007でのAverage

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

  • Excel IF関数とAVERAGE関数

    定期考査の成績をExcelで作ってみようと思うのですが、関数の打ち方を忘れてしまいました。 IF関数を使い、点数の所がどこも記入されていなかった場合空白にして、一つでも入っていたらその平均を出そうと思っているのですが、出来ますよね? 平均を出したいところは、下の写真の範囲指定してあるところなのですが、覚えている感じで関数を入力すると、「VALUE」と出てしまいます。 関数は =IF(B3:J3="","",AVERAGE(B3:J3)) にしていますが、関数のせいならば、正しい関数を教えて下さい。 お願いします。

  • OR関数 困っています(><。)

    excel関数で複数条件の組合せに悩んでいます。 U20=10か空白だったらK20をAQ16~AV24から探して5列目を表示し、 「5列目&AQ26」を表示させる。 もしくは、U20=5だったら、K20をAQ16~AV24から探して5列目を表示し、 「5列目&AQ27」を表示させたいです。 下記の式、どこが間違っているでしょうか。 #VALUEが出てしまいます。 =OR(IF(OR(U20=10,U20=""),"",IF(ISERROR(VLOOKUP(K20,$AQ$16:$AV$24,5,TRUE)&$AQ$26),"",VLOOKUP(K20,$AQ$16:$AV$24,5,TRUE)&$AQ$26)),IF(U20=5,IF(ISERROR(VLOOKUP(K20,$AQ$16:$AV$24,5,TRUE)&$AQ$27),"",VLOOKUP(K20,$AQ$16:$AV$24,5,TRUE)&$AQ$27),"")) すみません。教えて下さい。。

  • エクセル IF式について、

    先日からこちらで=IFとisnumberの使い方を教えていただき、次のような式を作りました。 =IF(isnumber(C2),B2+C2+F2+G2+J2+K2,"") これで(C2)に数値がある時のみ計算結果を打ち返し、文字その他は空欄で、が出来ました。 次にやりたいことは、(C2)と(G2)と(K2)のいずれかに数値がある時に計算させる式はどのようにすればよろしいでしょうか? 以下の4つを試しましたがNGでした。 =IF(isnumber(C2,G2,K2),B2+C2+F2+G2+J2+K2,"") =IF(isnumber((C2)*(G2)*(K2)),B2+C2+F2+G2+J2+K2,"") =IF(isnumber((C2)OR(G2)OR(K2)),B2+C2+F2+G2+J2+K2,"") =IF(ISNUMBER((C2)*OR(G2)*OR(K2)),B2+C2+F2+G2+J2+K2,"") よろしくお願いします。

  • 関数が表示されてしまう

    EXCEL2000、OSWIN98SEです。 =Average(B2:F2) というような式を入れているのですが、 結果が出てきません。 セルに =Average(B2:F2) と表示されてしまいます。 表示形式をみると、文字列になっているのですが、 数値や標準に直しても直りません。 他の関数に置き換えてみても同じ状態です。 よろしくお願いします。

  • プラスの値の平均値の求め方を教えてください

    エクセルで列の中のプラスの数値だけの平均値を求める方法を 教えてください。 例)A1セルからA3セルにそれぞれ1、-3、2と入力されている時、 1と2の平均値(1+2/2=1.5)を求めたいので、 =average(if(A1:A3>1,A1:A3)) という式を作ったのですが、エラー(#value!)になってしまいます。 どのようにすれば正しい答えが求められるのでしょうか? よろしくお願いします。

  • EXCELのIF関数の入れ子について

    すみませんよろしくお願いします。 EXCELでセル(A1)~(L1)までに不特定の文字列が入力されており、(M1)に「もし(L1)が入力されていたら(L1)の値を表示、もし(L1)がブランクなら(K1)の値を表示、もし(K1)がブランクなら(J1)の値を表示、もし(J1)がブランクなら(I1)の値を表示・・・・」といった具合で関数を作成したいのです。また、(A1)~(L1)のセルで穴あき状態で入力されていた場合は最も(L1)寄りのセルを表示させたいです。 EXCEL2003のIF関数だと、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="","",E2),F2),G2),H2),I2),J2),K2),L2) で最後の(A1)までの入れ子を作ることができせん。 EXCEL2007を使用すると、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="",IF(D2="",IF(C2="",IF(B2="",IF(A2="","",A2),B2),C2),D2),E2),F2),G2),H2),I2),J2),K2),L2) と作成できます。 EXCEL2003で作成するいい方法はありますでしょうか? ご指南の程よろしくお願いします。

  • IF関数

    初心者なので教えてもらった通りに関数を入力したのですが 値が反映されません。環境はエクセル2007です。 式は =IF($F117=",",AVERAGE($F109:$F117)) 定期的に平均値を出したいのですが答えが すべてFALSEと反映されます。 困っています どうか数値がでるようになるにはどうしたらいいのか教えてください。  宜しくお願いします  

  • 数値がない行のAVERAGEの#DIV/0 ! (エクセル)

    A列には氏名、G列には =AVERAGE(B1:F1)で表を作っています。 後からB列からF列に数値を入れるようにしています。 数値を入れる前にG列に #DIV/0 ! が出るのをなくすには、どうすればいいのですか。

専門家に質問してみよう