• ベストアンサー

Excel2003で式の入ったセルのエラー表示

{=IF(COUNTIF($L2:$V2,"<=100")=0,"",AVERAGE(IF(($L2:$V2<=100)*($L2:$V2<>""),$L2:$V2,"")))} 上記の入ったセルが、AD列に縦に並んでおり、条件に合ったセルには数値が出てますが、すべてのAD列のセルに、左上に緑のエラー表示、右上に赤マークが出ており、このエラーに関するヘルプを開いても白紙のダイアログが表示されるだけです。 数値の出てるものに0.15を掛けたものを結果として出したいのですが、上記の式のどの部分に0.15を掛けるのか分かりません。数値の出てるセルの隣のセルに=0.15*セル番号としてもそのまま数式が表示されるだけです。元データのL列からV列までのセルエラーは数値データに変更して解決済みです。 どうぞ宜しくご教示下さい。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。 =IF(COUNTIF($L2:$V2,"<=100")=0,"",AVERAGE(IF(($L2:$V2<=100)*($L2:$V2<>""),$L2:$V2,""))) [配列数式]自体には間違いないです。 #3 さんと考え方は同じですが、別の方法ではこうします。#5さんとは考え方は違います。 =IF(COUNTIF($L2:$V2,"<=100")=0,"",AVERAGE(IF(($L2:$V2<=100)*($L2:$V2<>""),0.15*($L2:$V2),""))) >数値の出てるセルの隣のセルに=0.15*セル番号としてもそのまま数式が表示されるだけです。 数式の入っているセルは#3さんのご指摘のように、書式が文字列になっているはずですが、他に、参照されているセルの中に、書式で文字列設定されたところがある可能性があります。 そうすると、数式を確定したら、対象セルの書式は、コピーされて数式のセルも文字列になります。これは、バグのようなものです。もし、数字を文字列にしたい場合などは、「'(アポストロフィ--文字列書式)」を代用したりします。 セルの左上の緑の三角 オプション--エラーチェック-- 文字列として保存されている数値 または、 空白セルを参照する数式 のどれか。 エラーチェックのオプションは、嫌でしたら、全部、オフにすればよいです。 右上の赤の三角は、コメント >AE列でエラー表示が出てたセルの計算では#VALUE!と出てしまいます これは、AEに数式があるでしょうから、その中が分からなければ、エラーは消えません。おそらく、AD列の数式の戻り値の""(長さ0の文字列)の参照をしてエラーが発生するか、と思います。=If(AD2="","",数式)のようなスタイルにします。 >コメントの削除で消えましたが、列全体を一括でコメント削除するにはどうしたら良いのでしょうか? 範囲を選択して、右クリック、コメントの削除

sapporolov
質問者

お礼

有難う御座いました。 教えていただいた式で、無事解決致しました。 他の方のアドバイスで、0.15を乗じますと空白セルのところでは、#VALUE!エラーが出てしまいますが、これはデータのないものを演算要素にした為でしょうか?0表示させるように式を変更すれば解決出来るのでしょうか? >これは、AEに数式があるでしょうから、その中が分からなければ、エラーは消えません。おそらく、AD列の数式の戻り値の""(長さ0の文字列)の参照をしてエラーが発生するか、と思います。=If(AD2="","",数式)のようなスタイルにします。 この事が問題なのでしょうか?IF関数を検索した際、””が1つの場合、2つの場合がそれぞれ例示されてましたが、良く理解出来ませんでした。2つにする事により長さ0参照エラーが解消されるのでしょうか?

その他の回答 (8)

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

答えに0.15をかけるのでしたら式を次のように入力します。 =IF(COUNTIF($L2:$V2,"<=100")=0,"",AVERAGE(IF(($L2:$V2<=100)*($L2:$V2<>""),$L2:$V2,"")))*0.15 Ctrl+Shiftキーを押しながらEnterキーを押して確定します。 ところで緑とか赤とかが出るとのことですがおそらくはデータに文字列などの数字が含まれているのではないでしょうか。一旦文字列として入力してしまったものは表示形式などで標準や数値に変えても変更できません。入力のやり直しになりますがそれも容易ではありません。それを解消するためにはどこか全く別のセルに1を入力してそれをコピーします。その後にL列からV列にある数値の入っているセル領域を選択し、右クリックをして「形式を選択して貼り付け」で[乗算]にチェックをしてOKします。このような操作ですべての数字を数値のとして扱うことができるようになります。 一度このような操作をぜひ行ってください。

sapporolov
質問者

お礼

有難う御座いました。 式はwendy様に教えて頂いた事で解決致しました。 1、形式選択、乗算はハイパーリンク一括解除でも同様の方法が紹介されていました。成る程こんな方法もあるのかと感心した覚えがあります。 今回は元データのせいでは無かったようです。 お世話になりました。

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

これは配列数式ですか。質問にはこの言葉が、何も出てこないところを見ると、ひょっとすると、他のEXCELに詳しい方が作って、質問者はそういうことを知らないのかな。 ーー AVERAGEの中でもIFは使えます。 例データ A2:B8 区分  計数 1 1 2 2 3 3 2 4 1 5 3 6 2 6 例えば区分2の平均を出すには =AVERAGE(IF(A2:A8=2,B2:B8,"")) と入れて、Shift、CTRL、Enterの3つのキーを同時押しする。 配列数式。 結果 4 Ifにするのは=AVERAGE((A2:A8=2)*(B2:B8))  にすると平均が =12/7になってしまうので、2以外の場合は空白にして、平均を計算させると、=12/3になってくれます。 ーーー >のどの部分に0.15を掛けるのか また結果に0.15したい場合は}の直前に*0.15をして置けばよいと思う。 上記の例で2倍する場合の例 =AVERAGE(IF(A2:A8=2,B2:B8,""))*2 と入れて、SHIFT+CTRL+ENTERキー同時押しで 8になります。 ーーー さてこの質問の場合何をしているか? COUNTIF($L2:$V2,"<=100")=0,"",AVERAGE・・ はL2:V2セルで100以下の件数がないなら、空白、あれば平均を求めている。Average以下の式は、私の上例と同じく L2:V2のセルで100以下で、かつ(*がそれを意味する) L2:v2で空白でないセルは、そのL2:V2のセルを採り上げそれらの平均を求めている。100以上(当然空白でない)で在れば、空白のセルと看做して平均を出す。上記で言ったように空白のセルは平均算出上 はデータが無いものとしてエクセルは扱う。 配列数式は条件に合うものを縦に合計とか平均を「出すとかするのですが、1行でもEXCELの考える条件に合わないものがあると、配列数式の結果そのものがエラーになります。 この配列数式の書き方にエラーは無いのではないかと思います。 あとは、データの実情との絡みです。L2:V2のデータ(絶対番地で固定しているので、>AD列に縦に並んでおりは、各々式の番地が違うのでは?)はどうなってますか。 == 上記を参考にして、正しい結果が出ているのか、ただ>左上に緑のエラー表示、右上に赤マークが出ており、だけなのか、補足してください。 L2:V2に文字列やスペースのセルは無いでしょうね。

sapporolov
質問者

お礼

有難う御座いました。 配列数式は分かりましたが、式自体は別質問で教えてもらったものです。 今回は皆さんのお陰で無事解決致しました。 お世話になりました。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.7

No4です。 =IF(COUNTIF(L2:V2,"<=100")=0,"",SUMIF(L2:V2,"<=100")/COUNTIF(L2:V2,"<=100")) これで結果は出ます. countif、sumifでは空白はカウントしませんので空白セルに対応 する必要はありません。 0.15を掛けるのも何も問題ありません。 余計なお世話かもしれませんが、 AVERAGE(IF(($L2:$V2<=100)*($L2:$V2<>""),$L2:$V2,"")) の数式にこだわるのならそれも宜しいかと思いますがより分かりやすく 簡単な数式の方がベターと思います。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

まず、この数式は配列数式なので、 =IF(COUNTIF($L2:$V2,"<=100")=0,"",AVERAGE(IF(($L2:$V2<=100)*($L2:$V2<>""),$L2:$V2,"")))*0.15 を入力したときか、入力済みの場合は数式バーをクリックしてから、Shft+Ctrl+Enterで確定することはご存知ですよね。 数式自体にエラーはないと思います。データに少なくとも1つ以上の数値データがあれば計算されるでしょう。 「左上に緑のエラー表示」 緑三角の隣の情報ボタンをクリックしてエラーチェックオプションを見て判断し、特に問題なければ、エラーを無視するをチェックするか、エラーになる項目のチェックをはずして、緑三角を表示しないようにします。 「右上に赤マーク」 赤三角なら、コメントなのて、コメントを削除すればいいのですが、「赤マーク」というのはどんなマークなのでしょう。

sapporolov
質問者

補足

有難う御座いました。 緑エラーはエラー無視で消えますが、次のAE列でエラー表示が出てたセルの計算では#VALUE!と出てしまいます。 赤三角です。コメントの削除で消えましたが、列全体を一括でコメント削除するにはどうしたら良いのでしょうか? エラーチェックオプションはもう少し調べてみます。 唯、別表でエラー表示なしで結果が出てるので、基データも含めて検討します。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.4

なにをやろうとしている数式なのかわかりませんが AVERAGE(IF( の後の条件式 ($L2:$V2<=100)*($L2:$V2<>"") これが、#VALUE!になっています。 この部分の数式自体を再確認してください。 (済みません私にはどう直すべきかは判りません) 作業列を使わず数式を駆使して1つの数式で結果を出すのも ときによりけりです。 このように何が原因かわからなくなるような計算式の場合は 作業列を使い数式を簡単にしてデバッグを楽にすることも考慮 すべきかとおもいます。

sapporolov
質問者

補足

入ってる数値の100以下のものだけの平均を求めたく、他の質問で教えてもらった結果です。又最終的に作業列を使わずに数式を作成すべく、色々教えてもらってるところです。

  • kozimaya
  • ベストアンサー率33% (6/18)
回答No.3

=IF(COUNTIF($L2:$V2,"<=100")=0,"",0.15*AVERAGE(IF(($L2:$V2<=100)*($L2:$V2<>""),$L2:$V2,""))) >=0.15*セル番号としてもそのまま数式が表示されるだけ セルの書式設定が「文字列」になっていませんか。 標準に直して、一度、セルをアクティブにし、式を確定し直してみてください。 >右上に赤マーク コメントが設定されていないでしょうか。

sapporolov
質問者

補足

有難う御座いました。 文字列になってました。一度確かめたと思ってたのですが見落としてました。数値に変更して、AD列に数値が表示されてるところは、正しく計算されてますが、空白セルの隣では#VALUE!と表示されてます。 AD列のエラーのプルダウン表示では 1.数式を更新してセルを含める 2.このエラーに関するヘルプ 3.エラーを無視する 4.数式バーで編集 5.エラーチェクオプション 6.[ワークシート分析]ツールバーの表示 となってます。 又、赤印の部分をポイントすると、私の名前が左上に表示されてるウィンドウが開きます。 AE列の#VALUE!ではプルダウンでAD列のそれと、1が(計算の過程を表示)となっていて他は同じです。こちらはヘルプウインドウが開き「引数やオペランドが正しく無い時に表示されます」とでます。AD列のエラーが引き続いてると思われますので、AD列のエラーが解決されれば良いのですが、どのように対処すれば良いのか分かりません。この表はZ列からAC列まで他の計算式が入ってまして、最終的にZからACまでの和とADに0.15を掛けたAEをたした数値結果を出したいのです。 サンプル的に作成した別表でL列からV列まで数値の入ってる表のX列に同じ式を入れましたが、こちらはエラー表示が出ていませんし、0.15を乗じられました。

  • tsubu_m
  • ベストアンサー率29% (106/357)
回答No.2

ざっと拝見したところ、エラーが出る要素が2つ。 まず、2つ目のIF関数の中の、論理式が完結されていませんね。 この式の結果がどうだったらと言う条件分岐が成されていません。 よって、ここで構文エラー。 続いて、AVERAGE関数に文字列は使用できません。 つまり、""(IF関数の「偽の場合」の部分)は文字列として認識されます。 よって、属性エラーが返されます。 まぁ、参考までに。

回答No.1

  AVERAGE(IF( averageの中にifはできません。  

sapporolov
質問者

補足

Excel2007からAVERAGEIFが追加されたと聞きましたが、AVERAGE(IFは2003で普通に使われてますが、実際に当方で結果が出ています。他の表では同じ式でエラー表示無く普通に表示されています。

関連するQ&A

  • Excel2007でのAverage

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

  • 【excel】複数のセルを対象に特定の文字列

    EXCELでセルB24:D31に一つでも文字列Aが入っている場合 あるセルに文字列2を表示させて偽の場合文字列3を表示させたいのですが =IF(B24:D31="","",IF(SUM(COUNTIF(B24:D31,{"*文字列A*","*文字列A*"})),"文字列2","文字列3")) この式ではエラーになってしまい、どうにも作業が進みません。どなたか教えていただけませんでしょうか?

  • 【Excel】セルの書式設定で標準と文字列の違い

    「セルの書式設定」の「表示形式」での「標準」と「文字列」の違いについてです。 「文字列」は「[文字列]は、数値も文字列として扱います。セルには入力した値がそのまま表示されます」 とあります。 しかし「文字列」に数値を入力するとセルの左上に、グリーンの▼印がでてきて、「数値が文字列として保存されています」というエラー表示がでます。 数値も文字列として扱われるはずですがなぜなのでしょう。いちいち「エラーを無視する」にしなければならないので面倒だなと思いますので、今度は「標準」で入力しようと思いますが、 「標準」は「セルの値に対して一般の書式を適用します(特定の書式を指定しません)」 とのことです。一般の書式、特定の書式が何を指すのか分かりません。 文字列が、数値として扱われない理由と、「標準」「文字列」のそれぞれの特徴を教えてください。

  • エクセル2021 高評価の自動表示

    高評価の自動表示 BN12、BP12、BR12、BT12、BV12のセルにはそれぞれ下記の関数を入力しおり、指定した文字列(評価)の合計数字が表示されます。 BN12セル =COUNTIF(BW12:EH12,”×”) BP12セル =COUNTIF(BW12:EH12,”△”) BR12セル =COUNTIF(BW12:EH12,”〇”) BT12セル =COUNTIF(BW12:EH12,”◎”) BV12セル =COUNTIF(BW12:EH12,”☆”) 上記の設定で、下記のように合計数値が一番高い文字列(評価)をBH12セルにしたいです。 1・合計数値が一番高い文字列(評価)をBH12セルに表示する。 例:BP12セルの数値が一番高いときはBH12セルに △ の文字列(評価)が表示される。 2・一番高い文字列が複数(同一数値の文字列)ある時には評価の高い文字列を表示する。 *評価の高い順(左が高い)=☆◎〇△× 例:BN12セル=3 BP12セル=5 BR12セル=5 BT12セル=5 BV12セル=0 の数値が表示された場合、BH12セルには ◎ の文字列が表示される。 3・BN12、BP12、BR12、BT12、BV12のセルすべて数値の表示なし(数値=0)の時にはなにも表示しない。  何卒ご教授願よろしくおい願いいたします。 ※OKWAVEより補足:「富士通FMV」についての質問です。

  • Excel:セル枠外にはみ出た文字列全体の表示

    お世話になります。WindowsXPでExcel2002を使用しております。是非教えてください。 Excelで入力した文字列がセルの横幅を越えた長さとなった場合、右隣のセルが未入力であれば、自動的に全体が表示されるようになっています。 しかし、右隣のセルに、例えば関数を入力していた場合など何らかのデータを入力していた場合には、枠内までの文字しか表示されなくなります。 右隣のセルが、関数計算の結果、何らかの数値、文字列が表示される場合には致し方ないと思いますが、特に何も表示されない時、左隣のセルの文字列全体が表示されるようにしたいのですが、何らかの方法はございますでしょうか。 ちなみに、具体的な状況については以下の通りです。  |A|B| 1| | | ・A1、B1セルにはそれぞれ同じIF関数(=IF([論理式],A21,""))を入力。 ・A1セルのIF関数が「真」となったため、A21の文字列("浜崎総務部長の来訪")が表示される。 ・B1セルのIF関数が「偽」となったため、何も表示されず。 宜しくお願い致します。

  • 【Excel】001と入力したいが1となってしまう

    タイトルの通りです。 「セルの書式設定」を「数値」で設定すると一桁になり、 「文字列」で設定したり、文字列の前にカンマを入れて入力すれば、左上に三角の表示が出て(エラー?)しまいます。 できれば「数値」で001と入力したいのですが…。

  • 【エクセル】抽出データを上に詰めて表示させたい。

    重複するデータを上に詰めて表示さセル方法が解らないです。 B列はA列の元データから重複分は表示しないようにしています。 C列はA列の元データから重複分の数を数えています。 │A │B    │C│ D │ 1│あああ │あああ │3│ 2│いいい │いいい │2│ 3│あああ │     │ │ 4│ええ  │ ええ  │2│ 5│おおお │おおお │1│ 6│ええ  │   │ │ 7│いいい │  │ │ 8│あああ │  │ │ 9│うううう│うううう│1│ ・ ・ 上記のような表で、A列が元データで、 B列にはセルB1から、=IF(COUNTIF($A$1:A1,A1)>1,"",A1)という関数を オートフィルで下まで伸ばしています。 C列は、=IF(COUNTIF($A$1:A1,A1)>1,"",COUNTIF($A$1:$A$100,A1))と いう関数を使用しています。 そこで、B列C列の何も表示されていないセルを詰めて、上に詰めて 表示させたいです。マクロは良くわからないのでなるべく関数で お願いします。ちなみに、今使用している関数も、こうしたほうが いいというのがありましたら。訂正してもらえると助かります。 解りづらいところがありましたら、補足します。 宜しくお願いします。

  • ×しかないセルには0を表示したい。

    エクセル2010を使用しています。 F6に×〇でもない場合は空白、〇が無く、×のみ場合は0の数式を入れたいのですが、どうすればいいのでしょうか。 現在、F6には=IF(COUNTIFS($C6:$E6,"○"),COUNTIF($C6:$E6,"○"),"")が入ってます。 これを下まで数式コピーすると、表のように、×しかないセルには0が表示できません。 F列は、〇の数を表示し、〇が無く×のみの場合は0と表示し、数字が入っているセルは空白にしたいです。 お力をお貸しください。

  • Excel関数 同じ文字がある場合は表示させない

    Excel初心者で困っています。 どなたか教えてください。 A2のセルに  商品コード B2のセルに  メーカー名 D2のセルに  商品名、メーカー名、商品コード が載っています。 Dの列の中には メーカー名が抜けていたり、商品コードが抜けていたりするものもあり、 その場合は、商品コードとメーカー名を D2のセルに入れなければいけません。 上記が出来る関数を教えていただけないでしょうか? データー量が多くて とても困っています。 =IF(COUNTIF(A2、DS)、D2、A2&D2) ↑これをE2 のセルに表示して 商品コードの重複を調べ、 =IF(COUNTIF(B2、E2)、E2、B2&E2) 素人ながら、こんな感じでやってみましたが、商品コードや、メーカー名が2重で表示されてしまいました。 よろしくおねがいいたします。

  • エクセルグラフで0が表示される

    いつものことですみません。 教えてください。 エクセルで折れ線グラフを描画しましたところ、一番最後の表示が0になってしまうのです。 A列に日付(時間)、B列に数値データがリアルタイムに入ってくるので最後の行を特定できません。適当に広い範囲を指定しています。 B列の数値データの平均値(複数)を計算してC列(3平均値)・D列(5平均値)・E列(9平均値)に置いています。 ちなみにセルC3は、=IF(B3="","",AVERAGE(B1:B3))です。 見た目には、なにも表示がなく、0は入っていないのですが・・・ お忙しいとは存じますが、なにとぞよろしくお願いいたします。

専門家に質問してみよう