![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセル2010で、毎日の勤務時間を1人1ファイル1か月を1シートとして1年分12枚のシートで作成しています。 1シートの1行を1日分としてセルBに 勤務開始時間 セルCに 勤務終了時間を手入力ですると セルDに 勤務時間が表示されるように計算式を入れています。(休憩時間は有りません) A列 縦に1日から31日までの項目が有ります。
ここで、例えば 1日 2日と仕事をして勤務時間を入力して、3日 4日 5日と休みで入力しなくて、6日仕事で勤務時間を入力した時点で、前日の休み 3日、4日、5日の空欄のセルBに 休み
と自動で文字が表示させる方法が有れば教えていただけないでしょうか。
また、休みは、1日の時もあれば続けて5日有る時もあるし、曜日も特に決まっていません。
宜しくお願いいたします。
No.10ベストアンサー
- 回答日時:
確かにご指摘の通りです。
D6にこんな式を入れると
=IF(B6<>0,C6-B6,IF(B7<>0,"休み",IF(D7="休み","休み","")))
ご指摘の分は解決しますが、今度は月末に休むと”休み”が出てきません。
したがって、31日の次の行のB列(B37)に締め切りサイン(例えば1)を入れてもらうと、うまくいきます。
31日の月は32日のところに"締め切り"としてB列にサインを、30日の月には31日のところに"締め切り"とする
というように、各月ごとにシートを変えるようにするしかありません。
pooh2016さん いろいろ教えて頂き有難うございました。
何とか、目的通り表を作成することが出来ました。 本当に有難うございました。
No.9
- 回答日時:
>「休み」の表示を 色付きの文字例えば「赤色」で表示させる事はできないでしょうか。
「休み」だけを赤字にするのはちょっとハードルが高くなります。
条件付き書式という技を使います。
ここで説明して、理解していただけるかわかりませんが、順を追って説明します。
・D7にカーソルを置く
・上のリボン欄に「条件付き書式」というのがあります。それをクリックします。
・プルダウンメニューに「セルの協調表示ルール」の「指定の値に等しい」を選ぶ。
・左の欄に「休み」と入れて、書式:を好みの選択にして「OK」です。
・好みの色にならなければ、「ユーザー設定の書式」を選んで、色やフォント、強調条件等を選んで、「OK」です。
あとはD列にD7のセルをコピーすればOKです。
No.8
- 回答日時:
No.3 です。
>D列6行目から始まっていますので、=IF(B1<>0,C1-B1,IF(B2<>0,"休み",""))を =IF(B6<>0,C6-B6,IF(B5<>0,"休み",""))
微妙に違ってます。 式のB5→B7 です
したがって =IF(B6<>0,C6-B6,IF(B7<>0,"休み","")) です。
>今、B列に =(C6-B6)の計算式が入力されていますので、宜しくお願いいたします。
B列ではなくD列に=(C6-B6)が入っているのですよね。
D列の内容を=(C6-B6)から=IF(B6<>0,C6-B6,IF(B7<>0,"休み","")) に書き換えればOKです。
No.7
- 回答日時:
何度もごめんなさい。
前回の数式では月末まであらかじめフィル&コピーしていると「0」が表示されてしまうのでは?
=IF(COUNTBLANK(B6:C6)=2,"",IFERROR(C6-B6,""))
に変更してみてください。m(_ _)m
tom04さん いろいろ有難うございます。目的通り出来たのですが、ファイルの保存 Excelマクロ有効ブックとして保存がうまくいきません。
ネットで色々調べるとマクロのファイルはマクロを作成したパソコンでの使用が普通みたいで、私の場合は、自宅のパソコンで作成して、職場のパソコンで使うことを目的にしていますので、今の私の知識ではこれ以上は無理と判断しました。
大変ご迷惑をおかけいたしました。本当にありがとうございました。
No.6
- 回答日時:
>D列に「#VALUE!」と表示されてしまいます・・・
B列が「休み」の場合、D列は空白で良いのですね?
(当然C列の入力もない。)
D6セルの数式を
=IF(COUNT(B6:C6),C6-B6,"")
またはExcel2007以降であれば
=IFERROR(C6-B6,"")
にしてみてください。m(_ _)m
No.5
- 回答日時:
No.2です。
>私の表では、6行目から・・・
1か所だけで大丈夫です、前回のコードの
>If .Row > 1 Then
を
>If .Row > 5 Then
に変更し、B列にデータを入力してみてください。m(_ _)m
No.3
- 回答日時:
簡単に作りたいのであればB列ではなく、D列に"休み"と表示されてはどうですか。
入力セルに式を入れると、入力した際に式が消されてしまいます。
それでもやろうと思えば、ほかの方の記載のように、マクロ(VBA)が必要になります。
D列に下記のような関数式を入れることで、D列を勤務時間or"休み"と表示することができます。
セル(D1)の数式 =IF(B1<>0,C1-B1,IF(B2<>0,"休み",""))
B1がブランクで、B2に何かが入力されるとD1に"休み"と表示される。
どこかに”休み”と表示されていても、集計に影響しません。
pooh2016さん 有難うございます。 こんな方法も有りましたね。
勤務表のセルの追加が必要ですが、一度検討してみます。 有難うございました。
No.2
- 回答日時:
こんにちは!
VBAになりますが、一例です。
各シートとも1行目は項目行で2行目以降にデータを入力するとします。
画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)普通通り操作してみてください。
Private Sub Worksheet_Change(ByVal Target As Range) '//この行から//
Dim c As Range, myRng As Range
If Intersect(Target, Range("B:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Row > 1 Then
If .Value <> "" Then
Set c = .End(xlUp)
Set myRng = Range(Cells(c.Row, "B"), Cells(.Row, "B"))
On Error Resume Next
myRng.SpecialCells(xlCellTypeBlanks).Value = "休み"
End If
End If
End With
End Sub '//この行まで//
※ 標準モジュールにコードを記載し、各シートのChangeイベントで標準モジュールのマクロを呼び出しても良いのですが、
結局、各シートにChangeイベントの同じコードをコピー&ペーストする必要があるので
上記コードを各シートのシートモジュールとしてコピー&ペーストしても
効率としてはあまり変わりないと思いまので、単純にシートモジュールとしてみました。m(_ _)m
tom04さん 有難うございます。早速のアドバイス有難うございます。
VBAについても、全く分かりませんが、教えていただいたVBAをペーストしてみます。
取り合えず、お礼までですが、宜しくお願いいたします。
No.1
- 回答日時:
こんんちは
>自動で文字が表示させる方法が有れば教えていただけないでしょうか。
入力対象のセルの値を制御しようという時点で、通常は関数は使えません。
(入力すると、設定してあった関数が上書きされてしまうので)
それなので、ご質問のような処理は通常はマクロ(VBA)で行うことになります。
「対象のセルの値が変わったら」というChangeイベントの発生に応じて処理をするようなタイプのマクロを設定しておくことで可能でしょう。
一方で、入力時にセル位置を間違えないという条件を設けても良いのであれば、関数でも実現は可能だと思います。
A列の対象範囲に以下の関数を設定しておくことでも実現可能だと思います。
自身より下方のセルに、「休み」及び空白以外の値があれば「休み」を表示し、それ以外は空白を表示
fujillinさん 有難うございます。 申し訳ありませんが、マクロ(VBA)については、殆ど知識が有りませんし、 「自身より下方のセルに、「休み」及び空白以外の値があれば「休み」を表示し、それ以外は空白を表示」についても、どのような関数を使うかも分からない事をお詫びします。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 転職 転職活動中で2社内定があり迷っています。皆様ならAとBどちらの方が良いと思いますか?理由もお願いしま 1 2023/02/06 12:20
- 求人情報・採用情報 皆さんでしたらどちらの会社に行かれるか教えてください。 年齢は45歳 男性です。既婚者です 1会社、 4 2022/06/07 08:08
- 正社員 皆さんでしたらどちらの会社に行かれるか教えてください。 年齢は45歳 男性です。既婚者です 1会社、 6 2022/06/04 13:51
- ストレス 女性車掌が不機嫌な理由は何だと思いますか? 1 2022/09/09 21:28
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- 労働相談 有休消化について教えて下さい。 6月末にて退職の予定です。 現在、有休(1日8時間)残りが29日と半 2 2022/04/03 01:05
- その他(就職・転職・働き方) 内定を3社貰って悩んでます 8 2022/08/10 04:38
- 人事・法務・広報 会社の行事などで休日労働させる時、振替休日が休日労働した日の前週or翌週以降、月をまたいだ場合の手当 3 2023/05/21 23:37
- 統計学 お酒に強い人の割合について 2 2022/09/10 18:42
- アルバイト・パート 22年10月から社会保険適用拡大について、詳しい方いらっしゃいましたら教えてください 2 2022/09/01 20:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでURL挿入後、名前を変...
-
エクセル関数使用で赤色数字を...
-
EXCELで千円単位を百万円単位に
-
一つのセルに計算式を入れて別...
-
EXCELのデータ修正時に、...
-
エクセルで1分あたりの作業量...
-
エクセルで入力のあるセルのみ...
-
エクセルで逆さまに印刷したい
-
列幅が変更できなくなった
-
3つの条件のうち、2つを満た...
-
画像(GIF/JPEG Image)をエ...
-
エクセルで部屋番号や個人情報...
-
エクセルでの順位に応じた点数...
-
「マネージメント」と「マネジ...
-
ビジネスメールの添削をお願い...
-
社内の人に名刺を渡すのは失礼...
-
先月退職した会社へ,書類記入...
-
小さな会社の事務全般の社員。...
-
異動した直後の名刺交換について
-
複写用紙の後の方が薄い場合直...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでURL挿入後、名前を変...
-
エクセル関数使用で赤色数字を...
-
エクセルで入力のあるセルのみ...
-
一つのセルに計算式を入れて別...
-
列幅が変更できなくなった
-
EXCELで千円単位を百万円単位に
-
エクセルで逆さまに印刷したい
-
EXCELのデータ修正時に、...
-
エクセルで1分あたりの作業量...
-
エクセルでの順位に応じた点数...
-
エクセルで前月までの平均を出...
-
excel2007で特定の行が印刷され...
-
画像(GIF/JPEG Image)をエ...
-
ExcelVBAで選択したセルで平均...
-
エクセルで部屋番号や個人情報...
-
Excel・プラス値とマイナス値を...
-
3つの条件のうち、2つを満た...
-
一定の情報だけを抜き出すエク...
-
エクセル:複数シートで重複デ...
-
表に日付と担当者を入力すると...
おすすめ情報
有難うございます。コピー&ペーストで上手く表示できません。
「各シートとも1行目は項目行で2行目以降にデータを入力するとします」⇦私の表では、6行目から
1日が始まっていますので、教えて頂いたコード内の2か所の「1」を「5」に置き換えればいいのでしょうか。
大変申し訳ありませんがよろしくお願いいたします。
tom04さん 有難うございます。 もう少し教えて頂けでしょうか?
「休み」B列に表示させる事が出来ましたが、「休み」と表示された行の D列に「#VALUE!」と表示されてしまいます、この #VALUE! を表示させない方法をお願いいたします。
今、B列に =(C6-B6)の計算式が入力されていますので、宜しくお願いいたします。
すいません間違えました。 B列ではなくD列に=(C6-B6)です。
宜しくお願いいたします。
pooh2016さん 有難うございます。
初歩的な質問で申し訳ないですが、D列6行目から始まっていますので、=IF(B1<>0,C1-B1,IF(B2<>0,"休み",""))を =IF(B6<>0,C6-B6,IF(B5<>0,"休み","")) としてD列6行に入力すればいいのでしょうか?
それと、今、D列6行目には、時間計算式 =(C6-B6) の計算式が入力されてますが、この2つ
の関数式を入力するには、どのようにしたらよいのでしょうか? ただ単に、&でつなげば良いでしょうか。
宜しくお願いいたします。
pooh2016さん 申し訳ありません。 補足説明違う方のところに投稿してしまいました。
申し訳ありません。宜しくお願いいたします。
pooh2016さん 有難うございます。=IF(B6<>0,C6-B6,IF(B7<>0,"休み",""))
で上手く表示されるのですが、もう一つ教えて頂けないでしょうか?
ここで、「休み」の表示を 色付きの文字例えば「赤色」で表示させる事はできないでしょうか。
かって言って申し訳ありませんが、宜しくお願いいたします。
pooh2016さん おはようございます。 詳しい説明をして頂いたお陰で、「休み」に色を設定する事が出来ました。有難うございます。
すいません、もう一つだけお聞きしても宜しいでしょうか?
※ D列の内容を=(C6-B6)から=IF(B6<>0,C6-B6,IF(B7<>0,"休み","")) に書き換えればOKです。
これですと、休みが一日おきの場合のみしか 休みが表示されません。
ここで、例えば、1日が仕事で、2日、3日、4日が休みで、5日目に仕事で時間を入力したときに、
2日、3日、4日の三ケ所に「休み」と表示させる事は出来ないでしょうか?
休みが 1日の時や、連続で10日有る時も有りますので、それに対応することは出来ないでしょうか。 勝手言って申し訳ありませんが、宜しくお願いいたします。