• ベストアンサー

エクセルで空欄時に計算しない方法は

皆様こんにちわ エクセルで次のようにして勤務時間を計算しているのですが D列(勤務開始時間)E列(勤務終了時間)F列(実働時間)G列(早出残業時間) 現在G列には次の数式が入っています =IF( MIN( "8:00",E2)>MAX( "4:00",D2),(MIN( "8:00",E2)-MAX( "4:00",D2)),0) +IF((MIN("22:00",E2)>MAX("18:00",D2)),(MIN("22:00",E2)-MAX("18:00",D2)),0) この数式ですとD・E列が空欄の場合G列に8:00が表示されてしまいます。 D・E列が空欄の場合G列に計算をさせない(もしくは0:00と計算)させるには どうすればよいでしょうか

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

  • ベストアンサー
  • kadakun1
  • ベストアンサー率25% (1507/5848)
回答No.3

その式であっているのかな? =MAX(MIN(E6, "8:00")-MAX(D6, "4:00"),0)+MAX(MIN(E6,"22:00")-MAX(D6,"18:00"),0) では無いですか? これじゃないと早出がちゃんと計算されない気がします。間違いだったらごめんなさい<_o_> あと、すべての空欄に0を入力し(あるいは範囲を選択し0を入力した後にshft+ctrlをおしたままエンターを押す)、ツール-オプションでゼロ値のチェックを外せば良いです。 スペースだから、数字と認識せず8:00になるのですから・・・・

その他の回答 (2)

noname#123709
noname#123709
回答No.2

ご自分でこの数式を作成したのではないのですか? IF関数及びOR関数を使用してD若しくはE列が空白の場合は空白とするという 数式にすればよいのでは?

JJ_PARADOX
質問者

補足

この数式はネットで検索したもの使わせてもらいました。私自身はエクセルぜんぜんわからないのです・・・

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

=IF(OR(D2="",E2=""),"",質問の式)

関連するQ&A

  • EXCEL 空欄の時は空欄にする方法

    EXCEL よろしくお願いします。 d8~d100までこれからいろいろなデータが入ってきます。 今は空欄です。 E8~E100まで既に計算式が入っていますので数字が出ています。 E8に数字が入っていますが D8が空欄の時はE8を空欄にしたいのですが IF関数ですか。よくわかりませんが、E列を空欄にする方法を教えてください。よろしくお願いします。

  • エクセルIFの使い方?結果を空欄にしたい

    A1 B1 C1 D1 E1とセルがある時、 A1とB1を使ってD1に差の絶対値を入力しています。 ここでA1とB1が空欄ならD1を空欄にする方法はどうするのでしょうか? C1にはA1 B1の平均を計算(ただしA1 B1が空欄なら空欄になるように) =IF(ISERROR(AVERAGE(A1:B1)),"",AVERAGE(A1:B1)) を入力しています。 そして D1にはA1とB1の差の絶対値を入力するために =MAX(A1:B1)-MIN(A1:B1) を入力しています。 ここまではOKでした。 ここからなのですが、 D1もC1と同じようにA1 B1が空欄なら空欄になるように設定したいのですがどうしたらよいのでしょうか? =IF(C1="","","MAX(A1:B1)-MIN(A1:B1)") かな、とも思ったのですが上手くいきません。

  • 配列数式で平均を出すと空欄が0で計算されてしまう

      A B C D 1  1 2 1 {=AVERAGE(IF($A$1:$A$4=$C1,B$1:B$4))} 2  1 4 2 {=AVERAGE(IF($A$1:$A$4=$C2,B$1:B$4))} 3  2 6 4  2 8 上記のような数値、数式ですと、 B列すべてに数値が入力されているため、問題なく計算するのですが、 例えば、B2のセルを空欄にすると、空欄を0としてしまい、 D1の計算結果が1となってしまいます。 D1の数式を=AVERAGE(B1:B2)としますと、空欄は空欄として扱い、 計算結果は2となります。 配列数式を使った場合にも、空欄を空欄として扱い、 計算結果が2となるような方法はありませんでしょうか。 よろしくお願いします。

  • エクセル2003で勤務時間計算をしたいのですが、

    エクセル2003で勤務時間計算をしたいのですが、 現状は下記のように、H列の計算式が30分単位なのですが、 5分単位で給与計算して、小数点以下を切り捨てするには、 H列の計算式のどこを訂正するとよろしいでしょうか? ■現状(時給880円の場合) C列     D列     E列     F列     H列 始業時刻  終業時刻  休憩時間  実働時間  日給 10:00    17:30     0:45    6:45     5720円 H列の計算式 =IF(OR(C9="",D9=""),"",G9*HOUR(F9)+IF(AND(MINUTE(F9)>=0,MINUTE(F9)<=29),0,IF(AND(MINUTE(F9)>29,MINUTE(F9)<=59),G9/2,G9)))

  • Excelで参照をして計算式を作る方法

    こんにちは。 Excelの数式で困っていますので、教えて下さい。 下のようなExcelの表で、 A2~D2、A3~D3、A4~D4の【数】にはゼロを含む何らかの数字が入ってて、 【空】は空欄です。    A列 B列 C列 D列 E列 1   1   2   3   4 2   数  数  数  数 3   空  数  数  数 4   空  空  数  数  E2、E3、E4に数式を入れたいのですが、2~4行目の数字が入っているか 入っていないかを1行目の数字に対応させて、 A2、A3、A4に数字が入っていれば、A1の数字を計算に入れて、空欄であれば 計算にいれない。 E2には1+2+3+4で【10】 E3には2+3+4で【9】 E4は3+4で【7】 というふうに数字が入っている欄だけを1行目の数字を絶対参照して合計を求めたいのです。 SUMIFという関数を使って、E2にSUMIF(A2:D2,▲,$A$1:$D$4)という式を入れてみたのですが、▲には半角スペース・*(アスタリスク)・?(クエスチョンマーク)などを入れてみたのですが、エラーで計算が成り立ちません。 ▲のところに【空欄】という意味のものを入れたいのですが、それがあるのかないのかわかりません。 もしくは、この数式を使うのではなく、他の数式を利用するのでしょうか? 説明が分かりにくいかもしれませんが、よろしくお願いします。

  • 給与計算について

    エクセル2000で給与計算をしたいと思っています。 時給は800円なのですが、勤務時間の端数(5分単位)が 30分より短い場合は切り捨て、30分以上だと400円と計算されます。 A列に日付、B列に開始時間、C列に終了時間、D列に勤務時間を入れました。 A列が日付の時、D列は C1-B1 という計算式をいれました。 月毎の合計勤務時間(D列)と合計金額(E列)を求めたいので A列に合計と記入して、 D6にはその月の勤務時間の合計を SUM(D1:D5) を使って計算し、 E6には IF(MINUTE(D6)<30,HOUR(D6)*800,HOUR(D6)*800+400) という数式をいれてみました。  A列が日付か合計かの判別は私自身がして、その行の数式を変えますので、  数式の中に含まれていなくてもかまいません。 このE6にいれた式では1ヶ月の合計勤務時間が24時間を越えた場合、 24時間以上の金額が無視されてしまうので困っています。 過去の質問も検索してみたのですが、勤務時間の端数のことまで 書かれておらず、自力で出した答えはE6の式にIF関数でDAYを確認させるという 恐ろしく長くて、面倒なものでした。 もし、もっと簡単な数式で月毎の金額が求められるようでしたら、教えていただけないでしょうか。 よろしくおねがいします。

  • エクセルで空欄の時に計算しない

    タイトル通りですが、同じ質問の回答を参考に計算式を作成してもエラーになります。 計算式は =IF(E32>=1,SUM(O31,1),SUM(O31,0)) この式でE32が空欄の時には計算せず、何も表示しないようにしたいのです。 それで作成した式は =IF(ISBLANK(e32),"",e32>=1,SUM(o31,1),SUM(o31,0)) これでエラーになります。 アドバイス宜しくお願いします。

  • 残業代の計算をエクセルで・・・。

    エクセルで残業代の計算をしたいのですが、どのようにすればいいのかが全く分かりません。 A列は日付、B列は出勤時間、C列は退勤時間、D列は勤務時間(単純に退勤時間から出勤時間を引いた値)、E列に休憩時間が入力されています。 希望としてはF列に実働時間が、G列に残業時間が入るようにしたいのです。 ①休憩時間は原則1時間ですが、例えば30分しか取れなかった場合は本来取るべきだった残りの30分を残業代に含めることにしています。 ※労基法?ではあまり良しとしていないようですが、ここではあえて無視をしています。 ②勤務時間は午前8時30分から午後5時15分までで、それ以降に勤務していた場合は残業代として15分刻みで支給します。 以上の条件を考慮した残業時間がG列に出る関数がわかりません・・・。 また、土日祝日に勤務した場合は、H列に休日出勤時間が出るようにしたいのです。 給与計算を担当することになったのですが、前任者は一つ一つ手計算をしていたようなのですが、手間がかかり、また間違いの元にもなるかと思いエクセルの数式で何とかできないかと思い質問させていただきました。 何卒ご協力お願いいたします。

  • エクセル・計算式のコピーについて

     A     B      C D E F G 1 3213    3213 2 4566    4566 3       4566 4       4566 5 1234   1234 上記のようにA列に数字が入っていますがところどころ空欄があります。 B列に=IF(A2="",B1,A2)という式を入れて下までコピーし 空欄を全部穴埋めしたいですが 計算式を下までコピーするとき空欄があるのでダブルクリックしても 空欄の前で計算式のコピーがとまってしまいます。 A列の一番下までポインタをもっていってコピーしてるのですが 行が多く時間がかかります。 空欄があっても、もっと手軽にコピーできる方法はないでしょうか? ご存知の方宜しくお願いします。

  • Excel:勤務時間の計算がうまくいかない。

    No.1468024の質問をした者です。 勤務表を作成しています。(Excel2002を使用) 終了時刻(D列)ー開始時刻(C列)ー休憩時間(E列)=当日の勤務時間を計算しています。 No.1468024の質問でアドバイスをいただき、以下のような計算式を記述しました。 <例> =AND(C13*D13)*(MIN(IF(AND(D13>="12:00"*1,D13<="13:00"*1),"13:00",D13),"17:40")-MAX(IF(AND(C13>="12:00"*1,C13<="13:00"*1),"12:00",C13),"09:00")-E13+FLOOR(MAX(D13,"18:00")-"17:59:59","0:15")) ほぼうまくいくのですが、開始時刻9:00終了時刻12:00とした場合、勤務時間4:00となり、間違ってしまいます。(正しくは勤務時間3:00。また開始時刻9:00終了時刻が12時から13時までの間の時刻で入力された場合も勤務時間3:00と出力したいです。) 休憩時間セルに以下のような計算式を書いています。 <例> =IF(COUNT(C13:D13)<2,0,IF(D13-"12:00"*1<=0,0,IF(C13-"12:00"*1>=0,0,IF(D13<"18:00"*1,"1:00","1:20")))) 休憩時間は12時から13時までの1時間。 終了時刻が17:40以降なら20分休憩時間が加算されます。 開始、終了が入力されていないと0:00表示。 言葉足らずでしたら、進んで補足させていただきますので、よろしくお願いします。

専門家に質問してみよう