先日出退勤管理の遅刻時間の数式について教えていただいた者です。
教えていただいた数式を活用して早退時間の数式も入力したのですが14列と16列の出退勤時間を空白にした場合添付画像のように早退時間に「900.0」と表示されてしまいます。
C23には「=IF(C25="午後休",IF($G$5>C17,$G$5-C17,0),IF($D$5>C17,$D$5-C17,0))*1440」という数式を入力しています。
数式が間違っているのか何か設定が間違っているのか見当がつきません。
原因についてコメントいただけたら嬉しいです。
よろしくお願いいたします。
No.1
- 回答日時:
C23の値は、
C25に"午後休"が無いから、
IF($D$5>C17,$D$5-C17,0)に1440かけた値。
D5が15:00
C17が空白なので0
IFの$D$5>C17が真になるから、
$D$5-C17に1440かけた値。
15:00は15/24なので、
15/24×1440=900
で、計算式通り。
> 数式が間違っているのか何か設定が間違っているのか見当がつきません。
自分も、何がどうなった時に、いくつになって欲しいのか?分からないので見当つかない。
数式も教えていただいたものだったので自分で深く
理解できていなくてわかりやすく教えて下さり理解できました。
回答してくださってありがとうございます!!
わかりやすく表記できてなくてすみません。
補足にも書きましたが出勤時間と退勤時間を空白にした場合に早退時間も空白になるように設定したいです。
No.2
- 回答日時:
こんにちは
>14列と16列の出退勤時間を空白にした場合添付画像のように
>早退時間に「900.0」と表示されてしまいます。
一般的に、縦に連続するセルを「列」、横に連続するセルを「行」と言います。
ご質問の「14列と16列」は「14行目と16行目」という意味ですよね?
また、ご提示の計算式
>=IF(C25="午後休",IF($G$5>C17,$G$5-C17,0),IF($D$5>C17,$D$5-C17,0))*1440
では、14行目も16行目も参照していませんので、ご質問との直接の因果関係はありません。
想像するところ、C17セルにC16(または、C14)セルを参照する式が設定されているのではないかと思いますが、内容が不明なのでよくわかりません。
通常、計算式で参照するセルが空白の場合、0と見做して計算されてしまうことが多いので、(実際のC17セルの内容がわかりませんけれど)空白になっていて、0として計算されているのではないでしょうか?
そのような場合にどうしたいのかについても記載が無いのでわかりませんけれど、ご提示の数式側で対処したいのであれば、C17セルが空白の場合の処理を付け加えれば宜しいでしょう。
例えば、
=IF(C17="","空白の場合に表示したい内容", "現在の計算式")
のようにしておけば宜しいのではないかと想像します。
前回の質問に引き続き
回答してくださってありがとうございます!!
>「14列と16列」は「14行目と16行目」という意味?
おっしゃる通りで行の間違いです。
>C17セルにC16(または、C14)セルを参照する式が設定されているのか?
これもおっしゃる通りでC17に「=(TIME(INT(C16/100),C16-INT(C16/100)*100,0))」という式を設定しています。
わかりやすく表記できてなくてすみません。
補足にも書きましたが出勤時間と退勤時間を空白にした場合に早退時間も空白になるように設定したいです。
No.3
- 回答日時:
前回のご質問
https://oshiete.goo.ne.jp/qa/13557834.html
でC22セルの数式として
=IF(C25="午前休",IF($G$4<C15,C15-$G$4,0),IF($B$5<C15,C15-$B$5,0))*1440
という数式を回答した者です。
上記数式はあくまでも、ご質問者が掲出された数式を分単位での計算にするだけのものです。
従って、C15セル、C17セル、C25セルの状況についての判断は一切しておりません。
例えば、C15セルが空白の場合、C22も空白、C17セルが空白の場合、C23セルも空白という条件をつけるなら、C22セルの数式は
=IF(C15="","",IF(C25="午前休",IF($G$4<C15,C15-$G$4,0),IF($B$5<C15,C15-$B$5,0))*1440)・・・①
C23セルの数式は
=IF(C17="","",IF(C25="午後休",IF($G$5>C17,$G$5-C17,0),IF($D$5>C17,$D$5-C17,0))*1440)・・・②
となります。
但し、②は、C17セルが空白以外の場合、ご質問者の掲出された数式は正しい結果になっているという前提です。
そもそも空白以外の時、正しい結果になっていないのに、空白の場合のみ修正しても意味がありません。
ご質問者の数式を拝見する限り、C17セルが空白でない場合も正しい結果になるようには見えないのですが、いかかでしょうか?
また、C17に
=(TIME(INT(C16/100),C16-INT(C16/100)*100,0))
という数式を入れているとのことですが、これは時刻を「:」抜き入力で、例えば「10:15」を「1015」と入力している場合に時刻に変換する数式です。
前回の投稿を見ると、C16は「10:00」のように表記されており、変換する意味がないように見えますし、逆にこの数式で変換すると、全て「0:00」になってしまうのではないかと思います。
あるいは、表示形式を「#":"#0」にして「1015」と入力すると「10:15」に見せているということでしょうか?
このように疑問が多数ある状態では、ご質問者の表のセルの内容が不明ですし、どのような結果を導きたいのかよく判りませんので回答のしようがありません。
goomaniaさん
毎回お世話になります。
前回の質問で教えていただいた数式を活用して早退時間を自分で考えようとしましたがなかなか難しく・・
何度もすみませんが頼りにしております。
C17セルが空白以外の場合は正しい結果になるので空白の時が900になってしまうので悩んでいます。
教えていただいた上記の②の数式でもやはり900が表示されてしまいます。
時刻についてですが14行、16行に入力する際に数字4桁で入力できるようにユーザー定義の「0":"00」に設定しています。
また15行と17行は実際に出退勤表を使用する場合は非表示にするようにしています。
説明が下手で伝わらなかったらすみません・・・
No.4ベストアンサー
- 回答日時:
>15行と17行は実際に出退勤表を使用する場合は非表示にするように
>しています。
ということなので、C15、C17が実際にどのよう表示になっているのかご質問者自身もよくわかっていないのではないかと推測しました。
そこで、C23セルに
=IF(C17=0,"",IF(C25="午後休",IF($G$5>C17,$G$5-C17,0),IF($D$5>C17,$D$5-C17,0))*1440)・・・①
あるいは、
=IF(C17=0,0,IF(C25="午後休",IF($G$5>C17,$G$5-C17,0),IF($D$5>C17,$D$5-C17,0))*1440)・・・②
という数式をいれてみてください。
①はC16が空白ならC23に空白を、②はC16が空白ならC23に0を返す意図で作成しました。
goomaniaさん
またまた助けられました。
私自身がわかっていない状態の説明をくみ取って
的確な回答をくださり本当に感謝です!!
また質問を投稿することもあると思いますが
もう少し伝わるように質問を考えようと思います。
本当にありがとうございました!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- Excel(エクセル) Excel関数で日またぎの勤務時間にしるしを立てる 2 2022/04/20 17:22
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- Excel(エクセル) エクセルの早退時間を計算したいです。計算はうまくいっているようですが… 1 2022/12/26 16:22
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- その他(Microsoft Office) 勤務表のエクセル作成で数式を教えてください。 1 2023/01/17 03:27
- Excel(エクセル) 勤務表ですが、思うように出来ません。 3 2023/05/19 06:43
- Excel(エクセル) TEXT関数(負の値)を集計のため数値に変換したい 5 2022/05/15 23:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
補足します。
ちなみに遅刻時間には「=IF(C25="午前休",IF($G$4<C15,C15-$G$4,0),IF($B$5<C15,C15-$B$5,0))*1440」という数式を入力していても900.0は表記されません。
出勤時刻と退勤時刻を空白にしたときに23行目の早退時間を空白になるように設定したいです。
親切な方よろしくお願いいたします。