• ベストアンサー

【Excel2010】出勤日のみ表示したい

勤務時間管理表にて、現状、土日はweekday関数で翌出勤日が表示されるようにしてありますが、平日の祝日はそのセルに日付を手入力しています。祝日のある月はその作業が面倒でどうにかならないかと常々思っております。 休日&振替日一覧は作成してありますので、条件付き書式で土曜日は青文字、日曜日と休日は赤文字になるよう設定して会社休日が紛れ込んでいないか確認できるようにしてあります。 この一覧表を利用して出勤日のみを表示させる関数はありませんか?

  • KO1014
  • お礼率97% (536/551)

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8013/17127)
回答No.1

E4は2019/4/25と入力して,E5に =WORKDAY(E4,1,$B$3:$B$25) と入力する。それ以降はE5をコピペ。

KO1014
質問者

お礼

ご回答ありがとうございました。 できました!! こんな便利な関数があったのですね。非常にシンプルで分かりやすい関数です。 これでしたら振替日の設定が不要なので助かります。

その他の回答 (3)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>この一覧表を利用して出勤日のみを表示させる関数はありませんか? Excelに組み込まれた幾つかの関数を組み合わせれば1つの数式をオートフィルコピーして自動的に出勤日を抽出できます。 G4セルは開始日として手入力とします。 G5セルへ次の数式を設定し下へ必要数コピーします。 =MIN(INDEX(G4+ROW(G$1:G$15)+COUNTIF($B:$B,G4+ROW(G$1:G$15))*100+(WEEKDAY(G4+ROW(G$1:G$15),2)>5)*100,0)) 質問に提示の画像にはC列の振替日を提示されていますがB列に日曜日の祝日に併せて振替休日が含まれていますのでC列は無意味なようです。

KO1014
質問者

お礼

ご回答ありがとうございました。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

添付図参照 G3: =H2 G4: =IFERROR(IF(IFERROR(VLOOKUP(IF(MOD(G3+1,7)=0,G3+3,IF(MOD(G3+1,7)=1,G3+2,G3+1)),B$3:C$25,2,FALSE),IF(MOD(G3+1,7)=0,G3+3,IF(MOD(G3+1,7)=1,G3+2,G3+1)))>I$2,"",IFERROR(VLOOKUP(IF(MOD(G3+1,7)=0,G3+3,IF(MOD(G3+1,7)=1,G3+2,G3+1)),B$3:C$25,2,FALSE),IF(MOD(G3+1,7)=0,G3+3,IF(MOD(G3+1,7)=1,G3+2,G3+1)))),"")

KO1014
質問者

お礼

ご回答ありがとうございました。

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

関数では難しいと感じて、参考までにVBAで。 ーー 処理ロジックは至って素直なもの。 ーー まず、祝日の一覧を手作業で作る。 例えばWEB記事の https://iko-yo.net/articles/4131 の祝日一覧をコピーし、シートのA列に貼り付け、「データ」「区切り位置」機能で、( で分ける。 1月1日 1月14日 2月11日 ・・・ 10月14日 10月22日 11月4日 11月23日 ただし、手持ちのカレンダーと2か所(振替休日か)違っていたので修正。 また、社内の特別休業日があれば(例 会社創立記念日など)付け加えれば仕舞い。 ーー 標準モジュールに Sub test01() k = 2 '書き出しをC、D列の第2行から始めるとする For i = DateSerial(2019, 1, 1) To DateSerial(2019, 1, 1) + 364 '1年分の日付について If Weekday(i) = 1 Or Weekday(i) = 7 Then '土日なら除外 Else Set x = Range("a2:A18").Find(i) '祝日テーブルにあれば除外 If Not x Is Nothing Then GoTo p1 '---C,D列に日付と曜日を書き出し Cells(k, "C") = i Cells(k, "D") = Format(i, "aaa") k = k + 1 '--- p1: End If Next i End Sub ーー 実行する。 ーー 結果 C,D列に 1月2日 水 1月3日 木 1月7日 月 1月8日 火 1月9日 水 1月10日 木 1月11日 金 以下略 ーー 1月分(2,3カ月分)などの場合は DateSerial(2019, 1, 1)  と DateSerial(2019, 1, 1) + 364  の部分を書き換えればできる。 書き出す列を好みの列にするのは、上記のC,Dの箇所を修正するだけ。

KO1014
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • Excel2007毎月●日を指定(土日祭日除く)

    ●質問の主旨 A5セル(商品出荷)A6セル(メルマガ配信)の各業務について、 関数式や条件付き書式を使って当該の指定日のセルを赤く塗りつぶしたいと考えています。 どのようにエクセルの関数式や条件付き書式を記述すれば良いでしょうか? ご存知のかたご教示願います。 ●前提条件 ○業務上のルール 1.商品出荷→毎月1,10,20日(土日祝日が重なるときはその直前の営業日) 2.メルマガ配信→毎月21,25,1日(土日祝日が重なるときはその直後の営業日) ○条件付き書式 1.月名($C$2:$AG$2) →「=DAY(C2)<>1」 →文字の色を白色とし月の1日のところのみ月名が表示 2.日にち・曜日($C$3:$AG$4) →「=MATCH($C$3,祝日一覧,0)」「=COUNTIF(祝日一覧,C3)=1」「=WEEKDAY(C3)=1」「=WEEKDAY(C3)=7」 →セルの背景色を赤色・青色 →「祝日一覧」シートの祝日と日曜日はセル背景色を赤色、土曜日は青色 ○その他の条件 1.B2セル→「毎月1日」を手入力するが"yyyy年m月"形式で表示 2.添付のワークシートとは別のシートに「祝日一覧」のシートが 同じファイルに存在し、2012年の祝日の日にちが記載

  • Excel-振替休日の求め方

    Excel2002を使用して、以下のような勤務表を作りたいと思っています。     A     B     C 1  日付    曜日   適用   2 9月1日   金    出勤 3 9月2日   土    出勤 4 9月3日   日    出勤 5 9月4日   月    休日          ・          ・          ・ 19 9月18日   月    休日 20 9月19日   火    振替休日 毎月曜日が休日で、月曜以外を「出勤」・月曜を「休日」と表示させ、尚且つ今月のように月曜日が祝日(9月18日(月)敬老の日)の場合は表のように翌日を振替休日と表示したいのですが、どういった式にすればいいか解からず困っています。 因みに別シートにて祝日を一覧にした表に「祝日」という名前をつけてあります。 どなたかご教示宜しくお願い致します。

  • 出勤簿の就業時間表示について

    出勤簿を作成してますが、土曜日、日曜日についてはWEEKDAY関数を使用し要就業時間は非表示できるようになりましたが、祝日、有休、特別休暇(夏季休暇)時の就業時間も非表示にする方法を教えてください。 ファイルを添付しますのでよろしくお願いします。 ファイルの黄色い部分の就業時間を表示しないようにする。

  • 「OR関数」の使い方を教えてください。

    【Exel2003】 スケジュール表を作っています。 条件付き書式を使って、「日曜日」と「休日」のフォントの色を赤にしたいのですが、 条件として、「OR関数」で「日曜日」又は「祝日」を選択して、書式を設定したいと考えて  =OR(WEEKDAY($A1)=1,MATCH($A1,祝日,0))   A1=日付 祝日=一覧に名前を定義 と条件を設定したところ、「祝日」の書式は、設定できるのですが、「日曜日」の書式が設定できません。 =WEEKDAY($A1)=1 =MATCH($A1,祝日,0) と条件を別に設定すると、それぞれはうまくいくのですが 「OR関数」の使い方が間違っているのでしょうか教えてください。

  • EXCEL:WORKDAY関数の使い方

    EXCELで祝日リストを用意し、WORKDAY関数で開始日から何日後の日付をを表示したいと考えています。 しかし、この関数では土日を休日としているため、年に数回のみの土曜営業日(もしくは日曜営業日)をまたぐ日付表示はうまくいきません。 祝日リスト(休業日)とは反対の意味になりますが、別シートに土曜営業日リストを用意してその日を営業日として計算に含む方法はありませんでしょうか? 関数では不可能でVBAで可能であれば、VBAでも構いませんのでどうかEXCELの知識のある方よろしくお願いします。

  • エクセル 出勤しなければならない日数

    いつもお世話になっています。 現在、勤怠表の月別集計表を作っています。 出勤しなければならない日の計算がうまくいきません。 C2・・・2012/4/1 D2・・・2012/5/1 E2・・・2012/6/1 ・ ・ ・ C2から右へ月の一日の日を記載し、書式設定で月のみ表示させています。 会社の休みは日曜・祝日と指定された日です。 別シートに祝日の一覧と指定された休みの一覧を作り、 祝日→「祝日」 指定休み→「休日」 と名前(名前の定義)を付けました。 C4には4月の、D4には5月の・・・・ 出勤しなければならない日数を表示させたいです。 自分なりに色々試してみたのですが、 上手くいきません。 宜しくお願い致します。 OS:win7 office:2010

  • Excel:開始日時から終了日時の表示

    例えば、「シート1」の「C3~C6」に日時が入力されているとします。 そして、「D3~D6」に開始日時、「E3~E6」に終了日時、「F3~F6」に「手続き可能中」などの文字を表示したいと思っています。 ただし、条件があります。 ■開始日時について 「D3」に表示する日時:「C3」に入力されている日時から、3ヶ月前(例えば、「C3」に2016年4月30日と入力されているとすれば2016年2月1日となります。)からが「開始日時」となります。開始日時の開始日は必ず「1日」となります。 「D4」に表示する日時:「C4」に入力されている日時から、3ヶ月前(例えば、「C4」に2016年4月30日と入力されているとすれば2016年2月1日となります。)からが「開始日時」となります。開始日時の開始日は必ず「1日」となります。 「D5」に表示する日時:「C5」に入力されている日時から、1ヶ月前(例えば、「C5」に2016年4月30日と入力されているとすれば2016年4月1日となります。)からが「開始日時」となります。開始日時の開始日は必ず「1日」となります。 「D6」に表示する日時:有効期間満了年の誕生日の1ヶ月前。例えば、誕生日が4月15日なら月日のみ3月15日。 ただし、下記の「■表示してはいけない(取り除く)「開始日時」、「終了日時」について」参照。 ■終了日時について 「E3」に表示する日時:基本的には「C3」を表示する。 「E4」に表示する日時:基本的には「C4」を表示する。 「E5」に表示する日時:基本的には「C5」を表示する。 「E6」に表示する日時:基本的には「C6」を表示するが、土曜日、日曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始)に当たるときは、これらの日の翌日までです。 ただし、下記の「■表示してはいけない(取り除く)「開始日時」、「終了日時」について」参照。 ■表示してはいけない(取り除く)「開始日時」、「終了日時」について 「D3」に表示してはいけない日時:土曜日、日曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) 「D4」に表示してはいけない日時:土曜日、日曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) 「D5」に表示してはいけない日時:土曜日、日曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) 「D6」に表示してはいけない日時:土曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) 「E3」に表示してはいけない日時:土曜日、日曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) 「E4」に表示してはいけない日時:土曜日、日曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) 「E5」に表示してはいけない日時:土曜日、日曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) 「E6」に表示してはいけない日時:土曜日、祝日(振替休日を含む)、12月29日~1月3日(年末年始) ■その他 01. いずれも関数のみで表示すること。 02. 祝日は、他のシートとすること。「シート2」とする。 03. 関数式の祝日の設定は、増減・変更の可能性があるためその部分の関数式を変更しなくても永久に使えるようにすること。 条件は以上です。 ■「F3~F6」について 「F3~F6」については、「開始日時」より1日前まででは「手続き必要なし」、「開始日時」から「終了日時」までの期間までなら「手続き可能中」、「終了日時」より1日後以降なら「期限切れ」という文字列を表示したいです。 Excel2010です。 これらの条件を満たした関数式を教えてください。 できれば、関数式の具体的な解説もいただけるとありがたいです。 難しいとは思いますが、回答よろしくお願いします。

  • EXCELで休日出勤を計算する

    お世話になります。 知恵をお貸しいただければ幸いです。 EXCELでひと月ごとのの出勤報告書を作っています。 そこで、休日(土、日、祝)出勤手当てを支払われる日が何日あるかを自動表示させようとしています。 今のシートの構成は A列:日付(2008/9/1の形で入力し、「1」のように表示 A5:A35) B列:曜日(A列から参照し、表示形式でaaaとし「月」のように表示) C列:休日(仕方なく手入力で「休」と入れている) D列:休日出勤したか判定(=IF(OR((C5>0)*(E5>0)),"休出","")C列とE列とも入力された場合に休日出勤とし「休出」と表示) E列:出勤した日はその日の仕事内容を入力 D列の最下部で「休出」が何回あるかカウント(=COUNTIF(D5:D35,"休出")) 祝日は関数が無いので、祝日一覧を作り該当する日付から祝日を割り出すのは分かったのですが。 =IF(WEEKDAY(A5)=1,"休","")&IF(WEEKDAY(A5)=7,"休","") よろしくお願いします。

  • Excel2002 条件付き書式

    四半期ごとにシートを分けて、スケジュール管理表を作成中です。 (1)1~3月シートで、まず土日の数字を    土曜は青、日曜は赤に設定するには、    =Weekday(C2)=7で文字をブルー    =Weekday(C2)=1で文字をピンク    にしたら、数式が間違っているようで、    カレンダーと照合したら間違っていました。    正しい式を教えてください。 (2)開始日と終了日を入力すると、該当する日付の行に色が    つくようにしたいのですが、どのように設定したら    いいでしょうか?教えてください。 よろしくお願いします。

  • EXCEL関数の質問です。A列に2010/10/1という日付が並んだ表

    EXCEL関数の質問です。A列に2010/10/1という日付が並んだ表。土日と祝日の日はB列に「休」と返す関数を作成したいです。 土日だけ「休」と返す関数は作成できますが、祝日を追加できません。 =IF(OR(WEEKDAY(A1,1)=7,WEEKDAY(A1,1)=1),"休","") 今このように作成しています。恐らく祝日の一覧を別シートに設けないといけないと思うのですが・・・ ご助力お願いします

専門家に質問してみよう