• ベストアンサー

関数式をエラー値を無視して計算するように直したい。

 当方素人です。よろしくお願いします。  関数式 =AVERAGE(D1:D100) と =INDEX(A:A,MATCH(LARGE(H:H,ROW(A1)),H:H,FALSE)) と いう関数式があります。この式ですとどちらもエラー表示(#VALUE!、#DIV/0!、#NAME?、#N/A、#REF!)が有る場合に”#DIV/0!”などと表示されてしまします。何とかエラー値が表示されている場合は除かれた計を出せるように、関数式を教えていただきたく。よろしくお願いします。

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

  • ベストアンサー
回答No.4

#2です。 =IF(D="","",AVERAGE(D1:D100)) =IF(A="","",INDEX(A:A,MATCH(LARGE(H:H,ROW(A1)),H:H,FALSE))) の DとかAの所に「F4キー」を押して「$」マークを付けてみてはいかがでしょう。

kei__2000
質問者

お礼

 回答ありがとうございます。$をつけてみたのですが、数式エラーがでてしまい、だめでした。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 > =AVERAGE(D1:D100) ⇒ =IF(COUNT(D1:D100),AVERAGE(D1:D100),"") > =INDEX(A:A,MATCH(LARGE(H:H,ROW(A1)),H:H,FALSE)) ⇒ =IF(COUNT(H:H)>=ROW(A1),INDEX(A:A,MATCH(LARGE(H:H,ROW(A1)),H:H,0)),"")  因みにMATCH関数の第4引数は、0,1,-1の3種類の数値指定であるからFALSE(0として評価されるのですが)は使用しない方が良いと思います。

kei__2000
質問者

お礼

回答ありがとうございます。この間数式をそのまま貼り付けたところ、 #DIV/0!などと表示されました。なぜなのでしょうか??

回答No.2

エラーが出ないようにしたらいいんじゃないですか? =AVERAGE(D1:D100) の前に「IF関数」を使って =IF(D="","",AVERAGE(D1:D100)) ってやれば はじめのエラーが出ないと思いますし、 で、おなじように =INDEX(A:A,MATCH(LARGE(H:H,ROW(A1)),H:H,FALSE)) =IF(A="","",INDEX(A:A,MATCH(LARGE(H:H,ROW(A1)),H:H,FALSE))) ってこんな感じでしょうか?

kei__2000
質問者

お礼

 回答ありがとうございます。この間数式をそのまま貼り付けたところ、#NAME? などと表示されました。なぜなのでしょうか??

回答No.1

ISERROR か IF 関数を使用してはどうですか・

kei__2000
質問者

お礼

 回答ありがとうございます。 ISERROR か IF を使用することは解っているのですが、うまくいかず、質問しました。

関連するQ&A

  • 【できれば至急で】エクセル関数の式で教えてください

    画像では、1つのシートに(シート1)(シート2)と記載していますが、実際は、別々のシートになります。 シート1に画像上記のような集計表があり、日々更新をしているのですが、その時に自動的にシート2にある内容が入力されるような関数が入っています。ただ、2010年は問題なく反映されていたのですが、2011年になり入金日を「例:2011/1/4」と入力をすると、シート2の日付部分には「1/0」と表示され、「シート1」の入金日が過去未入力のものが反映されてしまいます。シート1の入金日に「例:2011/1/4」と入力したら、自動でシート2の表が完成するような式を入れるにはどのようにしたら良いのでしょうか?実際に、2010年12月末まで問題なく使われていた関数を下へ書き出します。ちなみに、シート1の入金日は、2010年、2011年が区別されて入力しています。 (シート1) H2には、 =IF(AND(F2<>"",MONTH(G2)=シート2!$A$1),G2+ROW()/1000,"") (シート2) B3セルには、 =IF($B$1="","",IF(ISERROR(INDEX(Sheet1!G:G,MATCH(SMALL(Sheet1!H:H,ROW(B1)),Sheet1!H:H,0))),"",INDEX(Sheet1!G:G,MATCH(SMALL(Sheet1!H:H,ROW(B1)),Sheet1!H:H,0)))) C3セルには、 =IF($B3="","",INDEX(Sheet1!D:D,MATCH(SMALL(Sheet1!$H:$H,ROW(B1)),Sheet1!$H:$H,0))) D3セルには、 =IF($B3="","",INDEX(Sheet1!F:F,MATCH(SMALL(Sheet1!$H:$H,ROW(G1)),Sheet1!$H:$H,0))) の数式が入っています。 12/1~12/31まではシート2の表が反映されていたのですが、シート2のB1に「1月」を入力したところ、画像のように、シート1で入金日が空白(未入金状態)の場合も、シート2に反映されてしまいました。

  • Excelの関数でVALUE!(エラー)を無視して、SUMPRODUC

    Excelの関数でVALUE!(エラー)を無視して、SUMPRODUCT関数など計算するにはどうすればよろしいでしょうか? 過去に教えて頂いたのを更に応用したものです。 月度の数字H3の数字を入れると、横のJ4とK4が自動的に金額が入るようになっています。J4が月ごとの合計金額→関数:=IF(H3="","",SUMPRODUCT((MONTH(D3:D20)=H3)*((F3:F20))))を使用し、K4が月ごとの最大金額→関数:=IF(H3="","",MAX(INDEX((MONTH(D3:D20)&""=ASC(H3))*F3:F20,)))を使用しております。また、D列の西暦年月日には、D3から関数:=IF(ISBLANK(A3),"",DATEVALUE(A3&"年"&B3&"月"&C3&"日"))で表示ができるようにしてあります。 そこでD15からD20については、ISLANK関数を使っているのでA3が空白な為、VALUE!(エラーを返す)のを非表示になります。この場合、D15~D20の関数を削除すれば、J4とK4は正常に表示されますが、D15~D20に関数が入ったままだとJ4とK4はVALUE!を返しエラー表記になってしまいます。回避する関数(J4とK4)はどのようにしたらよろしいでしょうか?また、西暦年月日を参照せずに、B列の月項目の数字で月を判別するにはどうすればよろしいでしょうか?(H4の数字入力により) ※参考までにD3より下、関数:=DATEVALUE(A3&"年"&B3&"月"&C3&"日")で通常入力すると、必ず、D15~D20はVALUE!関数エラーで表示されます。

  • 関数の先頭にIFERRORが有る式

    WINDWS7、エクセル2013です。 ウィザードでしか式を作成したことがなく 他人の作成したエクセル内の関数で疑問が有ります。 1. =IFERROR(VLOOKUP(A1,Sheet2!A$1:H$100,3,0),"") と 2. =IF(A1="","",VLOOKUP(A1,Sheet2!A$1:H$100,3,FALSE)) では何が相違するのでしょうか? 最初の1の方は、式の( )内はセルにカーソルを置いて fxをクリックしてVLOOKUPを選び、ウィザードどうりに 進めてできた式のままで、 もしも検索できなかったら空白にしたい為に 前後にIFERRORと""を加えただけで( )内は よく見る普通の式でわかりやすいです。 後の方の2は、何をしたくてこういう式になっているのかわかりません。 同じく 3. =IFERROR(AVERAGE(B2:K2),"") と 4. =IF(ISERROR(AVERAGE(B2:K2)),"",AVERAGE(B2:K2)) では何が相違するのでしょうか? こちらも同様で 最初の3の方は、式の( )内はセルにカーソルを置いて fxをクリックしてAVERAGEを選び、ウィザードどうりに 進めてできた式のままで、 もしも範囲内に値が無ければ空白にしたい為に 前後にIFERRORと""を加えただけで( )内は よく見る普通の式でわかりやすいです。 後の方の4は、何をしたくてこういう式になっているのかわかりません。 よろしくお願いいたします。

  • INDEX関数SMALL関数を使って空白行を詰める

    シート1にINDEX関数SMALL関数を使って空白行を詰める表を作成したのですが詰めた表をシート2に表示することはできないのでしょうか。  =IF(COUNTIF($A4:$A4,0)=0,MAX(D$3:$D3)+1,"")  =IFERROR(INDEX(A:A,MATCH(ROW()-3,$D:$D, )),"")この表をシート2に表示する方法

  • エクセル 式エラー

    A13に"= ROW( )"という式をいれれば当然13という行の位置を表示する値がでます。 ところでそれを4で割った商を表示したいため次の式をいれてみましたが、 式のエラーとなりました。原因対策を教えてください。 = ROW( ) \ 4

  • AVERAGEIFS関数の引数が可変の場合

    averageifs関数のことについて教えてください。   引数の合計対象範囲をindirect関数とaddress関数、match関数を使い可変にしています。 条件範囲また条件はダイアログボックスで確認する限り計算されてはいるのですが、 戻り値が#VALUEになります。 どうすればキチンと戻り値が表示されるのでしょうか? ちなみに可変の部分(合計対象範囲)をaverage関数で計算するとちゃんと計算されています。          ↓こんな式です。    AVERAGEIFS(INDIRECT(ADDRESS(MATCH(DATE(データ!$D$1,$A3,1),データ!$D:$D,0),6,,,"データ")):INDIRECT(ADDRESS(MATCH(DATE(データ!$D$1,$A3+1,0),データ!$D:$D,0),6,,,"データ")),データ!$C:$C,0) ややこしいですが、お願いします。

  • エクセル抜き出し合計関数式(SUNIF??)

     初めまして、よろしくお願いします。  C1に20、D1に32と入力すると、E1にA列の20から32の間の数字のB列の値の計(表ではA1の20とA3の28が当てはまるのでB1の2と、B3の1の計をE1に3と表示)を導き出す関数式を教えていただきたく、お願いします。     A  B  C  D  E   1  20  2 20 32  3 2  48  8 3  28  1 4  34  2 5  12  7 ・    ・  ・  ・    ・  ・  

  • エクセルの関数の直し方

    現在、画像のような表を作成しておりますが、 1行目の前の行に5行挿入したいと考えております。 下の表からデータを製番・区分ごとに合計して上の表に表示されるようになっています。 5行挿入してタイトル等入れたいと思い、挿入してみると、 今まで下の表からの合計が上の表に表示されなくなってしまいます。 セル番号等確認はしてみたのですが、 どこがいけなくてうまく表示されないのかがわからなくて困っています。 どのように直したらいいかをご教示お願いいたします。 現在入っている関数は以下の通りです。 A2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(A1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(A1)),Sheet1!$L$14:$L$38,0),MATCH(A$1,Sheet1!$B$13:$I$13,0))) B2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(B1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(B1)),Sheet1!$L$14:$L$38,0),MATCH(B$1,Sheet1!$B$13:$I$13,0))) C2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(C1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(C1)),Sheet1!$L$14:$L$38,0),MATCH(C$1,Sheet1!$B$13:$I$13,0))) D2=IF(A2="","",SUMIFS(Sheet1!$G$14:$G$38,Sheet1!$B$14:$B$38,A2,Sheet1!$H$14:$H$38,B2)) E2=IF(C2="","",IF(ISERROR(VLOOKUP(C2,list!$S$3:$T$6,2,0)),"",VLOOKUP(C2,list!$S$3:$T$6,2,0))) H14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),3,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),3,FALSE))) I14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),4,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),4,FALSE))) J14=IF(ISBLANK(B14),"",IF(B14<="J121100144","旧","新")) K14=IF(AND(B14<>"",H14<>"-"),B14&"_"&H14,"") L14=IF(AND(K14<>"",COUNTIF(K$14:K14,K14)=1),COUNTIF($K$14:$K$38,"<"&K14)+1,"")

  • match関数とindex関数について

    B列に空白を含む連続した数値の配列において、空欄と空欄の間の数値の個数を数える式として、以下の式を見たことがあります。 =IF(AND(B9<>"",B10=""),IF(ROW(B9)=COUNT($B$1:B9),ROW(B9),ROW(B9)-MATCH(1,INDEX(0/($B$1:B9=""),0))),"") 確かにこの式で求める答えが出るのですが、式の最後の「MATCH(1,INDEX(0/($B$1:B9=""),0)」の意味がよく分かりません。 ・MATCH関数の範囲としているINDEXの内容はどういう意味なのか ・MATCH関数の検査値としている「1」はどういう意味なのか ご教授願います。

  • 関数式で計算された答えの前に、文字を入れたい

    EXCEL2002です。 A10のセルに、SUM関数を使ってA1~A9までの数値の合計を計算したのですが、合計の前に、「計」という文字を入れて「計○○」と入れたいと思っています。 どうやって入れるのでしょうか?式の書き方を教えてください。

専門家に質問してみよう