教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows

 

 

Excel2010-2016:土日なら前の平日を返す(WORKDAY関数・WEEKDAY関数 )

 

 


 

 

 

 

■ 指定日が"土日"なら前の平日を返す

WORKDAY関数 … 土日祝日を除いて○日前(後)を出せます(詳しく→ WORKDAY関数)

WEEKDAY関数 … 曜日を数値に変換するため曜日による条件を作成できます。

 

▼ 確定日を出す(希望日が土日なら前の平日)▼

 

■ WORKDAY関数の場合

  • 前の平日を出す → Workday(開始日+1,-1,祝日) 

  • 次の平日を出す → Workday(開始日-1,1,祝日)    

B2に =Workday(A2+1,-1)

 

■ WEEKDAY関数の場合

WEEKDAY (日付シリアル値 , 曜日の種類★1

 

B2に =IF(WEEKDAY(A2,2)=6,A2-1,IF(WEEKDAY(A2,2)=7,A2-2,A2))

◆Weekdayの結果が6(土曜)なら希望日-1、7(日曜)なら希望日-2、それ以外はそのまま日付を表示

 

★曜日の種類一覧★ 例えばWeekday(日付,2)なら月=1、火=2、水=3、 木=4、金=5、土=6、日=7

1 または省略

1 (日曜) 〜 7 (土曜)

2

1 (月曜) 〜 7 (日曜)

3

0 (月曜) 〜 6 (日曜)

11

1 (月曜) 〜 7 (日曜)

12

1 (火曜) 〜 7 (月曜)

13

1 (水曜) 〜 7 (火曜)

14

1 (木曜) 〜 7 (水曜)

15

1 (金曜) 〜 7 (木曜)

16

1 (土曜) 〜 7 (金曜)

17

1 (日曜) 〜 7 (土曜)

 

例えば【土日だけ〜する】という条件式は、引数2を利用して >=6 (返り値が6以上なら…)とすることができます。

=IF(WEEKDAY(日付,2) >=6,"休み","出勤")


■ 例:毎月20日が給料日だが、土日なら前の平日を給料日とする

毎月20日の予定に「給料日」と表示 します。その日が土日なら前の平日に給料日と表示します。

 

B2に次の式を入力してオートフィル

 

IF (AND (DAY (A2) =20,WEEKDAY (A2 ,2) <=5 ),"給料日", IF (AND (DAY (A2) =19, WEEKDAY (A2,2) =5 ),"給料日",IF (AND( DAY (A2) =18,WEEKDAY (A2,2) =5),"給料日","")))

 

日付が20でかつ平日なら「給料日」と表示、日付が19でかつ金曜なら「給料日」と表示、日付が18でかつ金曜日なら「給料日」と表示、 それ以外は空白を表示

 

 

 

 

 

教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows