- ベストアンサー
エクセルで勤怠表を作っています。
エクセルで勤怠表を作っています。 A1に出勤時間、B1に退社時間が入力されたときのみ D1に 1と表示させたいのです。 また、B1-A1の計算結果が8:00以下ならマイナス表示 8:00以上なら整数表示(残業か早退か)を C1に表示させたいのですが どうすればよいでしょうか。 どなたかよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>…と入力してもそのまま表示されるので 入力したセルに,文字列の設定が付いています。 セルの書式設定の表示形式を「標準」に直してから,さらに,数式を入れ直してください。 なお,エクセルに限らずご質問に当たってご利用のソフトのバージョンを,かならずご相談に明記してください。 色々なシーンでの具体的な操作方法を「こうしましょう」とお話ししたいのですが,ご利用のバージョンによってちょっと変わる場合があります。 >つまりマイナスが早退、遅刻でプラスが残業(自然数)というつもりで、 言葉で説明したつもりでも,このようにさっぱり伝わらないで何度も二度手間になるご相談は多いです。 あなたが作成したいエクセルの「目に見える姿」の,具体例をご質問に書くようにしてみてください。 たとえば 9:00 から 15:00 で 8時間より2時間足りないので -2 にしたいとか 9:00 から 19:30 で (整数でも自然数でもなく)1.5 と表示したいとか 9:00 から 17:00 なら 0と表示したいとか すると,回答者からも即座に具体的に =IF(COUNT(A1:B1)<2,"",(B1-A1)/"1:0"-8) などと入れて書式を標準にしておくといいですよ,といったツカエルアドバイスが寄せられます。 また具体的なサンプルを自分でもよく考えてみることで,1.5だったのをどんな風な整数にしたいのか,例えば1分も59分も全て切り捨てて1時間にしてしまいたいのか,実は整数単位じゃなく0.5刻みに2捨3入したいとかといった,ご自分が「ホントは何をしたかった」のか少しでも先回りで考えるヒントになる場合も多いです。 適宜ROUND系の関数(ROUND,RONDUP,ROUNDDOWNなど)も組み込んでみて,幾つかご自分でも工夫して考えてみてください。
その他の回答 (3)
- layy
- ベストアンサー率23% (292/1222)
>A1に出勤時間、B1に退社時間が入力されたときのみ D1に 1と表示させたいのです。 (ともに値がnull以外)かを判定は関数使います。 1を表示させるには、この結果をif文使います。 >また、B1-A1の計算結果が8:00以下ならマイナス表示 時間計算なので、 9:00→9.0と入力 12:30→12.5と入力 16:00→16.0と入力 こういう規則にすれば就業時間、差分=7.0が求めやすくなります。 >8:00以上なら整数表示(残業か早退か)を C1に表示させたいのですが 差分=7.0から基準の8.0を引いてマイナスか否かをif文使って判定します。 休日出勤の場合はどうしますか。 9:00-12:00出勤でも早退でなく残業では?。 出勤日か休日かのフラグが必要です。
お礼
ありがとうございました。 このほうほうでも、試してみます。 休日出勤までは、まだ頭が回らないので その場合だけ手入力します。(トホホ)
- kuma56
- ベストアンサー率31% (1423/4527)
やり方はいくつかあるかもしれないが、その一つとして・・・・ >A1に出勤時間、B1に退社時間・・・・1と表示させたいのです。 D1に IF 関数を使った計算式を入力してやればできるでしょう。 IF関数・・・Excel Help ファイルより引用 指定された条件が TRUE (真) のとき真の場合を返し、FALSE (偽) のとき偽の場合を返します。 IF 関数を使用して値または数式が条件を満たしているかどうかをテストできます。 書式 IF(論理式,真の場合,偽の場合) ・・・引用ここまで 論理式に"A1に出勤時間、B1に退社時間が入力されたときのみ"をあらわす計算式を入れ、 真の場合に 1を入れてやります。 偽の場合に当たる物がなければ "" とだけしておけば大丈夫でしょう。 >また、B1-A1の計算結果が8:00以下なら・・・どうすればよいでしょうか。 これも同じく IF関数 を使えば可能でしょう。 論理式に"B1-A1の計算結果が8:00以下"をあらわす計算式を入れ、 真の場合に (B1-A1)*(-1)を入れてやります。 偽の場合には(B1-A1) とだけしておけば大丈夫でしょう。
お礼
ありがとうございます。 私にはちょっと難しい感じです。 余裕があればトライしてみます。
- keithin
- ベストアンサー率66% (5278/7941)
>…が入力されたときのみ D1に 1と表示させたい よく使う手としては =IF(COUNT(A1:B1)=2,1,"") のように,COUNT関数で2個数字が入った事を確認します。 >…以下なら …以上なら 「以上」と「以下」を重ねてしまうと,「同じ」はどっちにしたらいいのか困りますね。 たとえば「未満」と「ジャスト」と「超える」の3つに区分しますが,更に上述の「2個数字が入ったら」も加えて4つの区分けにします。 簡単なやり方でIF(IF(IF…を重ねてみると, =IF(COUNT(A1:B1)<2,"",IF(B1-A1-"8:0"<0,"-",IF(B1-A1-"8:0"=0,"フル勤務","残業"))) などのような格好になります。 >整数表示(残業か早退か) ちょっとイミフメイですが,何を表示したいのかよく考えて上述式の「"-"」や「"残業"」の部分にはめこんでやれば,結果を表示できます。
お礼
ありがとうございます。 こちらが一番わかりやすい。 早速やってみます。 整数については、いい加減ですみません。 自然数のまちがいでした。つまりマイナスが早退、遅刻で プラスが残業(自然数)というつもりで、、、、。
補足
すみませんが、 =IF(COUNT(C3:E3)=2,1,"") (Dのセルは空白スペースになっています) と入力してもそのまま表示されるので 式に間違いが?
お礼
大変よくわかりました。 質問の仕方も工夫しなければ。 ありがとうございました。