• ベストアンサー

エクセルでどうしてもVALUEになります。

宜しくお願いします。 ちょっと長いですが N18  に =IF(AND(OR(D18="",D18=0),E18="",H18="",J18=""),"",D18+E18-F18-H18-J18-K18-M18) X18 に =IF(AND(OR(N18="",N18=0),O18="",R18="",T18=""),"",N18+O18-P18-R18-T18-U18-W18) Y18 に 数値 25,000を入れると AH18 の =IF(AND(OR(X18="",X18=0),Y18="",AB18="",AD18=""),"",X18+Y18-Z18-AB18-AD18-AE18-AG18) がVALUEになります。 どうしたら、数式の意味を変えずにエラー回避できるのでしょうか?

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

  • ベストアンサー
  • bubebube
  • ベストアンサー率55% (11/20)
回答No.2

計算式で参照しているセル (X18+Y18-Z18-AB18-AD18-AE18-AG18)のいずれかが 空白だからだと思います。 空白のところに「0」を入力したらいかがでしょうか? もしくは、以下のように計算式にSum関数を使うのもお勧めです。 =IF(AND(OR(X18="",X18=0),Y18="",AB18="",AD18=""),"",SUM(X18,+Y18,-Z18,-AB18,-AD18,-AE18,-AG18))

hero-yasu
質問者

お礼

回答ありがとうございました。 (X18+Y18-Z18-AB18-AD18-AE18-AG18) のいずれかを0に するとエラーが消えました。 が、計算した0と、もともと無い0を区別したいので できれば0は使いたくありません。 また、SUM関数を使ってみましたが、エラーのままでした。 自分では理由がわかりません。 もう少しお付き合い願います。 宜しくお願いします。

hero-yasu
質問者

補足

すみません 「,」を忘れてました! コピペでできました!ありがとうございました!!

その他の回答 (1)

  • bari_saku
  • ベストアンサー率17% (1827/10269)
回答No.1

質問文同様に試してみましたが、うちのエクセルではエラーが出ませんでした。 どこかに文字列扱いのセルが紛れ込んでいませんか。 関数に使用しているセルが数字扱いか文字列扱いかを、ISTEXTもしくはISNUMBER関数ですべてチェックしてみて下さい。 (書式-セル-表示形式ではだめです)

hero-yasu
質問者

お礼

早速の回答ありがとうございました。 >関数に使用しているセルが数字扱いか文字列扱いかを、ISTEXTもしくはISNUMBER関数ですべてチェックしてみて下さい。 詳しく方法を教えていただきたいです。 宜しくお願いします。

関連するQ&A

  • エクセル関数のエラーについて

    エクセルの関数で間違っている箇所と解決策を教えて下さい。 下記【1】、【2】関数は正しく動いています。 【1】 IF(OR(AB21="err",AC21="err",AD21="err",AE21="err",AF21="err"),"err",IF(AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="○",AF21="○"),AND(AD21="○",AF21="○"),AND(AC21="○",AF21="○"),AND(AB21="○",AF21="○")))),"(1)",IF(AND(OR(H21="MS",H21="AS",H21="BX"),AE21="×",AF21="○"),"(2)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="×",AE21="○",AF21="○"),AND(AD21="×",AE21="-",AF21="○")))),"(3)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="○",AE21="○",AF21="○"),AND(AD21="○",AE21="-",AF21="○"),AND(AD21="-",AE21="○",AF21="○"),AND(AD21="-",AE21="-",AF21="○")))),"(4)",IF(AG16="","(5)","err")))))) 【2】 AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="×",AF21="○"),AND(AD21="×",AF21="○"),AND(AC21="×",AF21="○"),AND(AB21="×",AF21="○")))) これを【1】関数の「AG16=""」箇所に【2】を入れたのが下記関数【3】ですが、これだとエラーになります。 【3】 IF(OR(AB21="err",AC21="err",AD21="err",AE21="err",AF21="err"),"err",IF(AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="○",AF21="○"),AND(AD21="○",AF21="○"),AND(AC21="○",AF21="○"),AND(AB21="○",AF21="○")))),"(1)",IF(AND(OR(H21="MS",H21="AS",H21="BX"),AE21="×",AF21="○"),"(2)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="×",AE21="○",AF21="○"),AND(AD21="×",AE21="-",AF21="○")))),"(3)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="○",AE21="○",AF21="○"),AND(AD21="○",AE21="-",AF21="○"),AND(AD21="-",AE21="○",AF21="○"),AND(AD21="-",AE21="-",AF21="○")))),"(4)",IF(AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="×",AF21="○"),AND(AD21="×",AF21="○"),AND(AC21="×",AF21="○"),AND(AB21="×",AF21="○")))) ,"(5)","err")))))) 原因と解決策(VBAは避けたいのですが・・・)を教えて頂けないでしょうか?

  • JavaScriptの配列について

    var old_array = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); var new_array = Array('b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); のような配列があり、 abcと入力するとbcd DEFと入力するとEFG 012と入力すると!23 というようなものを作りたいのですがどうすればいいでしょうか。

  • 覆面算 C

    学校で覆面算のプログラミングについてならったので自分でもなるべく解の少ないもの作ろうと思っています。 それで DAY + DREAM IZUMI というのを作りたいのですが、 授業でならったものは、 #include <stdio.h> int main(void){ int O,N,E,T,W; for(O=1; O<10; O++){ for(N=0; N<10; N++){ if(N!=O){ for(E=0; E<10; E++){ if(E!=O && E!=N){ for(T=1; T<10; T++){ if(T!=O && T!=N && T!=E){ for(W=0; W<10; W++){ if(W!=O && W!=N && W!=T && W!=E){ if((O*100+N*10+E)*2 == T*100+W*10+O){ printf("%d%d%d\n",O,N,E); printf("%d%d%d\n",O,N,E); printf("-------\n"); printf("%d%d%d\n",T,W,O); printf("-------\n"); break; } } } } } } } } } } return 0; } こんな感じです。これからどう変えればいいのでしょうか?

  • エクセルの2000で下記のような式を作りたいのですが、#VALUEにな

    エクセルの2000で下記のような式を作りたいのですが、#VALUEになってしまいます。 D1~I1が空白であれば、J1にI2を表示、 E1~I1が空白であれば、J1にD2を表示、 F1~I1が空白であれば、J1にE2を表示、 G1~I1が空白であれば、J1にF2を表示、 H1~I1が空白であれば、J1にG2を表示、 I1~I1が空白であれば、J1にH2を表示、 D1~I1がどれも空白でない場合も、J1にI2を表示します。 =IF(D1:I1="",I2,IF(E1:I1="",D2,IF(F1:I1="",E2,IF(G1:I1="",F2,IF(1:I1="",G2,IF(I1:I1="",H2,I2)))))) ネスト回数には引っかかっていないと思うのですが、IF関数の論理式は複数のセルを選択出来ないんですかね? D~H2のセルには=SUM(D15:I15)/SUM(D1:I1)といった数式が入っており、パーセンテージで小数点以下第二位まで表示しています。 うまく表示できる方法をどなたか教えていただけないでしょうか? 逆に D1だけが空白でなければ、D2を表示、 D1~E1だけが空白でなければ、J1にE2を表示、 D1~F1だけが空白でなければ、J1にF2を表示、 D1~G1だけが空白でなければ、J1にG2を表示、 D1~H1だけが空白でなければ、J1にH2を表示、 D1~I1だけが空白でなければ、J1にI2を表示、 D1~I1の全てが空白の場合は、J1にI2を表示、 でもかまいません。 どうかよろしくお願いします。

  • python

    もしも...と.t もしくは .oもしくは .nもしくは.q もしくは.sもしくは.fもしくは.jが同じ行に含まれていたらという条件分岐を書きたいのですが以下のようでは上手くいきません。どのように書いたらよいでしょうか。よろしくお願いします。 if "..."in line and ".t "or ".o"or ".n"or".q "or".s"or ".f "or ".j "in line:

  • C言語の配列の使い方について質問です。

    以下のプログラムを配列を使って見やすくしたいのですが、どのように作ったら良いでしょうか? 宜しくお願いします。 #include<stdio.h> int main(void) { int a, b, c, d, e, f, g, h, i, j, k, l, m ,n, o; /*5段目の処理*/ for(a = 1; a <= 15; a++) { for(b = 1; b <= 15; b++) { if(a == b) continue; for(c = 1; c <= 15; c++) { if(a == c || b == c) continue; for(d = 1; d <= 15; d++) { if(a == d || b == d || c == d) continue; for(e = 1; e <= 15; e++) { if(a == e || b == e || c == e || d == e) continue; // printf("%d %d %d %d %d\n", a, b, c, d, e); ////4段目//// if(a>b){ f=a-b; } else if(a<b){ f=b-a; } if(b>c){ g=b-c; } else if(b<c){ g=c-b; } if(c>d){ h=c-d; } else if(c<d){ h=d-c; } if(d>e){ i=d-e; } else if(e<d){ i=e-d; } // printf(" %d %d %d %d \n", f, g, h, i); /////3段目//// if(f>g){ j=f-g; } else if(f<g){ j=g-f; } if(g>h){ k=g-h; } else if(g<h){ k=h-g; } if(h>i){ l=h-i; } else if(h<i){ l=i-h; } // printf(" %d %d %d \n", j, k, l); /////2段目//// if(j>k){ m=j-k; } else if(j<k){ m=k-j; } if(k>l){ n=k-l; } else if(k<l){ n=l-k; } // printf(" %d %d \n", m, n); /////三段目///// if(m>n){ o=m-n; } else if(m<n){ o=n-m; } // printf(" %d \n", o); if(a != b != c != d != e != f != g != h != i != j != k != l != m != n != o){ printf("%d %d %d %d %d\n", a, b, c, d, e); printf(" %d %d %d %d \n", f, g, h, i); printf(" %d %d %d \n", j, k, l); printf(" %d %d \n", m, n); printf(" %d \n", o); } } } } } } }

  • 20名で1対1で話し合う研修を6回でやる方法

    20名で行う研修で1対1で話し合う研修を合計6回でやろうとしています。 10人が誰かと話し合い、合計59組の組み合わせを6回の間で やる方法がどうしてもわかりません。 どなたか教えてください。 ちなみに組み合わせは決まっており(以下のとおりです)その組み合わせを6回以内に効率よくやりたいと思ってます。 ちなみに3回まではアナログ的なやり方で10組ずつ話し合える組み合わせはわかったのですが、 それ以降が頭がぐちゃぐちゃになってわかりません。 組み合わせは以下のとおりです。 AさんとGさん、BさんとJさん、CさんとMさん、LさんとEさん、PさんとQさん、IさんとNさん、GさんとRさん、GさんとSさん、LさんとFさん、 MさんとOさん、TさんとNさん、DさんとEさん、EさんとSさん、AさんとTさん、BさんとHさん、CさんとFさん、JさんとTさん、HさんとMさん、 FさんとQさん、TさんとOさん、AさんとNさん、BさんとEさん、CさんとKさん、JさんとKさん、HさんとKさん、DさんとTさん、IさんとOさん、 GさんとPさん、LさんとNさん、MさんとPさん、EさんとQさん、AさんとSさん、BさんとPさん、CさんとOさん、JさんとPさん、HさんとSさん、 DさんとKさん、IさんとPさん、LさんとSさん、AさんとRさん、BさんとRさん、CさんとQさん、JさんとRさん、HさんとRさん、DさんとSさん、 IさんとQさん、LさんとOさん、BさんとQさん、DさんとOさん、LさんとRさん、JさんとMさん、HさんとIさん、DさんとGさん、IさんとKさん、 GさんとFさん、MさんとNさん、EさんとFさん、FさんとTさん、KさんとNさん の計59通りです。 お力添え何卒よろしくお願いしますm(_ _)m この回答とプラスその算出方法も合わせて教えていただけると幸いです。

  • 【エクセルの関数について】

    エクセルの関数についてです エクセルで出勤簿を作っているのですが、関数の数式がわかりません。 結論から申しますと、退勤時間を24:00と書いても0:00←(24時のこと)と書いても同じ処理をしてほしいということです。 詳細を以下に記載していきます C9出勤:手入力 D9退勤:手入力  ←問題はココ 休憩セルには=AN9 AN9には「=SUM($AD9:$AM9)」 AD9には「=IF(OR(($C9=$D9),(設定!$A$4=設定!$C$4),COUNT($C9,$D9,設定!$A$4,設定!$C$4)<4),0, IF(AND(設定!$A$4<=$C9,$C9<=設定!$C$4,設定!$A$4<=$D9,$D9<=設定!$C$4),($D9-$C9), IF(AND(設定!$A$4>$C9,設定!$A$4<$D9,$D9<=設定!$C$4),($D9-設定!$A$4), IF(AND(設定!$A$4<=$C9,$C9<設定!$C$4,設定!$C$4<$D9),(設定!$C$4-$C9), IF(AND(設定!$A$4>$C9,設定!$C$4<$D9),(設定!$C$4-設定!$A$4),0)))))」 AM9には「=IF(OR(($C9=$D9),(設定!$A$14=設定!$C$14),COUNT($C9,$D9,設定!$A$14,設定!$C$14)<4),0, IF(AND(設定!$A$14<=$C9,$C9<=設定!$C$14,設定!$A$14<=$D9,$D9<=設定!$C$14),($D9-$C9), IF(AND(設定!$A$14>$C9,設定!$A$14<$D9,$D9<=設定!$C$14),($D9-設定!$A$14), IF(AND(設定!$A$14<=$C9,$C9<設定!$C$14,設定!$C$14<$D9),(設定!$C$14-$C9), IF(AND(設定!$A$14>$C9,設定!$C$14<$D9),(設定!$C$14-設定!$A$14),0)))))」 AD9~AN9までは同じようなことが書いてあります。 設定!$A$4には「12:00」 設定!$C$4には「13:00」 以上までが、休憩セルです H9拘束時間には、=AS9 AS9には、「=AC9」 AC9には、「=IF(COUNT($C9:$D9)<2,0,IF($AA9*24>$AB9*24,0,TEXT($AB9-$AA9,"[h]:mm")))」 AA9には、「=IF(COUNT($C9:$D9)<2,0,TEXT(CEILING($C9,"0:10"),"[h]:mm"))」 AB9には、「=IF(COUNT($C9:$D9)<2,0,TEXT(FLOOR($D9,"0:10"),"[h]:mm"))」 以上が拘束時間 I9普通残業セルには、=AT9 AT9には、「=IF(D9-設定!$C$2<0,"0:00",D9-設定!$C$2)」 設定!$C$2には、「18:00」 以上が普通残業時間 J9深夜残業時間セルには、「=AU9」 AU9には、「=AQ9」 AQ9には、「=SUM($AO9:$AO9)」 AO9には、「=IF( COUNT($C9:$D9)<2, 0, IF( AND(22<=$AA9*24,$AA9*24<29,22<$AB9*24,$AB9*24<=29), ($AB9-$AA9), IF( AND($AA9*24<=22,22<$AB9*24,$AB9*24<=29), ($AB9-"22:00"), IF( AND(22<=$AA9*24,$AA9*24<29,29<=$AB9*24), ("29:00"-$AA9), IF( AND($AA9*24<22,29<$AB9*24), ("29:00"-"22:00"), 0 )))))」 以上が深夜残業時間 ということで、分かる方ご教授願います。

  • エクセル 条件に当てはまるセルの値を返す方法

    こんにちは、よろしくお願いします。   D   E   F   G   H   I ・・・・・N    O  1 北海道 東京 愛知 大阪 京都  沖縄  2  1   2   3   4   5   6        愛知  3  2   3   6   5   1   4        北海道    4  4   2   3   1   5   6        東京   5  2   3   6   5   1   4        京都  6  1   2   3   4   5   6        北海道 となっている表があります。(本来はMまで地名が入っています) この時にNに該当の数字を入れたいのです。 具体的にはN2に3、N3に2、N4に2となっていきます。 =IF(O2=$D$1,D2,IF(O2=$E$1,E2,IF(O2=$F$1,F2,IF(O2=$G$1,G2, IF(O2=$H$1,H2,IF(O2=$I$1,I2,IF(O2=$J$1,J2,IF(O2=$K$1,K2,(O2=$L$1,L2))))))))) とやってみたのですが、やたら長くスマートではない上に、これ以降が エラーになって入力できなくなってしまいました。 良い方法を知っていればご教授下さい。 お願いします。 mac OS10.5 excel2004を使用しています。

  • OCRで文字変換したいのですが。

    Brother 複合機 DCP-595CN 使用。スキャン項目の三段目 OCR:テキストデータ変換で 本の文字を読み取り wordに写しその文字を自由にフォントやサイズを変えたい。  PCは MacBook Air バージョンは Yosemite 10.11 から Hi Sierraの 10.13.8 に変えました。 以下はできてこんなところです! c c r y O w r n e a n a s h a r k k n o w s y o w % ' l t @ e ' b o y r & s @ e d , h a r d l y a b t e t o c r e d i t h i s h e a r i n g , T h e w o m a n n o d d e d , n o t l o o k i n g a t a n g r t h i n g b u t h e r s k i r t . P a u l o ' s b r e a t h e x p l o d e d " B u t t h a t ' s i m p o s s i b l e ! " T h e w o m a n p a u s e d t o r a i s e b l a c k e y e s i . n u r o n d e r , c ' Y o u h a v e n e v e r h e a r d o f m e @ " s h e a s k e d . P a u l o w a s a t a l o s s t o a c c o u n t f o r t h e w o m a n ' s c a s u a l a c c e p t a n c e o f t h e s h a r k ' s p r e s e n c e A l l k n e w s 3 h a r k s w e r e a m e n a c e ! Y e t t h i s o d d o   ※OKWAVEより補足:「ブラザー製品」についての質問です。