• ベストアンサー

エラーが出ないような関数

このような関数が書いてあるのですが、 IF(OR(AF4="",AG4=""),"",INT(SUMPRODUCT(($B$16:$B$46>=AF4)*($B$16:$B$46<=AG4)*($F$16:$F$46)*($G$16:$G$46)/"1:0"))) -IF(AS4="","",AS4)) AS4の値が空白の時エラーガでないようにしたいのですが うまくゆきませんどこが悪いのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • zongai
  • ベストアンサー率31% (470/1474)
回答No.1

この式の最後の方 -IF(AS4="","",AS4)) もし、AS4が空白なら、空白を引く 空白でなければAS4の値を引く となるわけですね。 で、「空白を引く」というところがエラーの原因。 空白の時何も引かないのであれば「0を引く」とするのであれば 最後の部分は -IF(AS4="",0,AS4)) となります。

BIG1fukuoka
質問者

お礼

お礼が遅くなりました。 0を引くのですね。少し理解できました。 問題解決です。ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

下記は参考まで。 >IF(AS4="","",AS4)) AS4はB,F,G列の16-46行の値に関係してきますか。 式だけ見るかぎり関係しないようだが。 だからAS4の空白はエラーと関係ないのでは? ーー 例データA1:C3 1 1 0 2 2 3 2 1 C1の式は=A1-B1で下方向に式の複写。 結果c列 B列空白でもエラーにはならない。 空白はセルの数値的には0扱いでは。 >-IF(AS4="","",AS4))は-AS4 で良いはず。 ーー F4,G4,J4で26、30、24(=1/"1:00")と入れる。 データ例を簡略化のために、16-20行にして(F,G列もセルを移した)追試がやりにくいので、これぐらいにしてほしい。 B列  C列 B16:C20 23 0 34 0 27 1 35 0 11 0 C16:C20は C列に=($B$16:$B$20>=$F$4)*($B$16:$B$20<=$G$4) F4,G4は固定したが、「式の複写で移動しても良いのか? で結果上記C列 F16:G20に、データを勝手に設定 23 23 34 2 33 43 25 26 11 21 質問と同等の式で =INT(SUMPRODUCT(($B$16:$B$20>=F4)*($B$16:$B$20<=G4)*($F$16:$F$20)*($G$16:$G$20)*24)) で34056 ーー 他の方法で検算 H16:H20に =F16*G16 I16:I20に=C16*H16 I21に=SUM(I16:I20) I23に =I21*J4 で34056 前出INTの式と一致。 データB16:B20,F16:F20,G16:G20のセルの値やF4,G4の値を変えてみたがエラーが出そうに無い。 ーー ただし、F4,G4は絶対番地にしてないが良いですか。 ===== 私が間違っている(見えてないものがあるの)かもしれないが、質問の言っていることがが納得できない。 >AS4の値が空白の時エラーがでないようにしたいのですが、などの点

BIG1fukuoka
質問者

お礼

お礼が遅くなりました。 全体の表も提示してないのに、追跡までしていただき、 ありがとうございます。 回答の時間差で今回お礼にさせていただきました。 丁寧な回答と提示ありがとうございます。 今からけんしょうしてみますが、私に理解できるか・・・・ スミマセン ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 関数の変更

    =IF(OR(AF4="",AG4=""),"",INT(SUMPRODUCT(($B$16:$B$46>=AF4)*($B$16:$B$46<=AG4)*($F$16:$F$46+$N$16:$N$46)*($G$16:$G$46)/"1:0"))-IF(AS4="",0,AS4)) 上の式を使い勤怠がらある範囲の給料を計算してるのですが、現在は時間×時給で計算させています。これを日給に使いたいので変更してるのですが、うまく出来ませんやりたい事は、 時間を足してる部分を時間単純にカウントさせたいのです。 AF4=開始日 AG4=終了日 B16:B46=カレンダー F16:F46=実働時間 F16~F46の部分をカウントさせ日給をかけさせたいのですが 条件の変更などがうまく出来ません よろしくお願いします。

  • このような式があるのですが、少数を計算したくないのですが、

    このような式があるのですが、少数を計算したくないのですが、 INTなどを どのようにしたらよいのか分らないので教えてください。 =IF(OR(AF4="",AG4=""),"",SUMPRODUCT(($B$16:$B$46>=AF4)*($B$16:$B$46<=AG4)*($F$16:$F$46)*($G$16:$G$46)/"1:0")) 初心者なので、このような質問の仕方でわかるでしょうか。 おねがいします。

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

    エクセルの関数で間違っている箇所と解決策を教えて下さい。 下記【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は避けたいのですが・・・)を教えて頂けないでしょうか?

  • 関数の書き方

    このような 式があるのですが IF(OR(AH4="",AH4=0),"",IF($Y$4=1,IF(AH4>30000,2,1)*210)+105)-AS4 AS4のセルの値を引きたかったのですが、 AS4の値が空白の時エラーが出るので、 いろいろ試したのですが うまくゆきません 助けてください。

  • SUMPRODUCT関数内にINDIRECT関数

    またエクセル関数で質問です すみません 以前下記式で「18歳以下」を「何人」と出していました =SUMPRODUCT(('5期(9-2)'!$AG$44:$AG$90>=0)*('5期(9-2)'!$AG$44:$AG$90<=18)) INDIRECT関数を教えてもらい =COUNTBLANK(INDIRECT("'5期(9-2)'!"・・・・・・ =COUNTIF(INDIRECT("'5期(9-2)'!"・・・・・ は出来ました しかしSUMPRODUCT関数に組み込んでも作動せず =SUMPRODUCT(((INDIRECT("'5期(9-2)'!"&ADDRESS($C$2,COLUMN('5期(9-2)'!AG$1))&":"&ADDRESS($F$2,COLUMN('5期(9-2)'!AG$1))))>=0)*(INDIRECT("'5期(9-2)'!"&ADDRESS($C$2,COLUMN('5期(9-2)'!AG$1))&":"&ADDRESS($F$2,COLUMN('5期(9-2)'!AG$1))))<=18) どこがおかしいのでしょうか? 教えてください よろしくお願いいたします

  • IF関数について

    B2セルに「もし売上高(F9)が空白(””)ならばこのセル(B2)は空白にし、そうでない場合には売上高(F9)セルの値を表示せよ」という意味のIF関数を入力する場合どんな式が入りますでしょうか? よろしくお願いします。

  • IF関数でEmpty値を設定する方法。

    こんにちは。 IF関数でEmpty値の設定方法を知りたいと思っています。 ゼロと値なしを分けるため、セルに対して値なしで有れば IF関数にて""をセットしていますが、SUMPRODUCTで集計を 掛けた場合にエラーとなります。 そこで""ではなくEmpty値をセットしたいのですが、 方法をご存知の方いらっしゃれば宜しくお願い致します。 (例としては下記です。) =if(A1>5,"",A1)をB1にセットし、 これを複数セル(B2:B10)に複写します。 (A1:A10)は0から9までの連番を入れます。 また、(C1:C10)には0から9までの連番が入っています。 B列には結果として0,1,2,3,4,5,空白となります。 これをSUMPRODUCTにて集計を掛けると =SUMPRODUCT((C1:C10)*(B1:B10)) #VALUEエラーとなります。 しかしながら、B7:B10を削除してEmpty値とすると 正常に計算されます。 Excel2000/Excel2002です。 「Empty値」と「""」と「0」の値の件では度々このようなミスをしていましたので、この際解決したいと思っています。 尚、条件としてゼロは値として必要で、表示しなければなりません。 値なしは値なしとして空白を表示しなければなりません。 ご存知の方宜しくお願い申し上げます。

  • 計算式の組み立てについて、教えてください!

    計算式の組み立てについて、教えてください! 下のような勤怠明細があります。 ・・A・・・・・B・・・・・・・・C・・・・・・・・D・・・・・E・・・・・・・F・・・・・・G・・・・・H・・・・・I・・・・・・J・・・・・・・K 15・・・・・日付・・・・出勤時間・・退勤・・休憩・・実働時間・・時給・・時間内・・時間外・・深夜・・基本賃金 16・・・・5月1日・・・・・9:00・・・・・12:00・・・1:00・・・2:00・・・¥850・・・¥1700・・・・・0・・・・0・・・・¥1700 現在AH4:AH7に下の式が入力されています。 =IF(OR(AF4="",AG4=""),"",SUMPRODUCT(($B$16:$B$46>=AF4)*($B$16:$B$46<=AG4)*$K$16:$K$46)) AF4とAG4には、5/1 ・5/6 のように日付が入力されます。 開始日と終了日を入れると その間の金額がAH4:AH:7出るようになってます。 これを単純に稼働時間(F16:F46)× 時給(G16:G47)にしたいのですが、つまり 時間外¥と深夜¥を引いた結果を出すようにかえたいのですが、 式の組み立てが上手くゆきません 教えてください。 お願いします。

  • エクセルでの関数の書き方

    セルA1からF1があります。 A1がC1かD1で同じでかつ B1がC1かD1で同じ場合に、 D1の値をF1にセットしたいのですが、 どのように書けばよろしいでしょうか? EX. A1が1でB1が2の場合は C1がD1が1,2または2,1の場合のみ E1の値をF1にセットします。 COBOLで書くとこんな感じになると思います IF (A1=C1 OR A1=D1) AND (B1=C1 OR B1=D1) THEN MOVE D1 TO F1 END-IF. IF関数かAND関数を使用するような気がしますが、 思いつきません。 よろしくお願いいたします。 エクセル2000です。

  • IF関数についてです

    エクセル初心者です。 わかりづらかったらすいません。 たとえば A1*B1の結果をF1へ。 C1+D1+E1の結果をG1へ。 で、F1+G1の結果をH1へ。 という表を作っています。 で、結果が0の時に空白を返したいので、それぞれを IF(A*B=0、””、A*B)として、 IF(C1+D1+E1=0、””、C1+D1+E1)としています。 最後にF1+G1の結果も0、もしくは空白の時に空白を 返したいのですがどのように数式を入れればよいのでしょうか。 自分なりにいれてみましたがエラーがでてしまいます。 よろしくお願いいたします。

専門家に質問してみよう