週間勤務予定表をつくってみました

数式と構成使用している関数の説明サンプルファイル

送信者 OpenOffice
数式と構成

構成

C3セルには、今日の日付を返すTODAY関数が入力されていて、右の列には翌日、さらに右にはその翌日、という感じで一週間が表示されます。一日ごとに自動的に更新されます。
C4セルには、今日の曜日を、TEXT表示するように=TEXT(C1;"AAA")が入っています。
C5セルには=IF(ISERROR(FIND(WEEKDAY(C$1;1);$B3));"出勤";"")が入っています。
B列には、休日の番号を右下の曜日一覧表から選んで入力します。

該当日の曜日番号が、B列に含まれていたらセルに文字は表示されず、黄色く塗りつぶされます。
該当日の曜日番号が、B列に含まれていないと、セルに出勤が表示されます。

数式


C5セルの数式の説明:
WEEKDAY(C$1;1)で処理対象日の曜日番号が返されます。

FIND(WEEKDAY(C$1;1);$B3))で、処理対象日の曜日番号が、B3セルに含まれているかどうか、調べます。含まれていなければ、エラーが表示されます。検索対象の文字が含まれていれば何文字目に含まれているかを表示しますが、今回は出勤の文字に統一します。それは、以下の過程で。

ISERROR(FIND(WEEKDAY(C$1;1);$B3))
ISERROR関数でエラーならTRUEが返され、エラーでない場合は、FALSEが返されます。
この表の場合、エラーでなく、出勤という文字を表示させようとします。

IF(ISERROR(FIND(WEEKDAY(C$1;1);$B3));"出勤";"")

使用している関数
関数名:FIND関数
書式:=FIND(検索文字;検索文字が入っているかどうか探す文字列;開始位置)
何ができる:検索文字が入っているかどうか探したい文字列から、検索文字を探そそうとします。
もしも見つかれば、何文字目に入っていたかを返します。開始位置を指定しなければ一文字目から探し始めます。例えば、開始位置を3と指定していれば、2文字目に検索文字があってもエラーが返されます。
平たく書くと:=FIND("V";"LOVE")で、LOVEの中にVが三文字目に含まれているので3が返されます。
=FIND("O";"LOVE";3)で、LOVEの中にOが含まれていますが、3文字目以降を検索の対象にしていますので、エラーが返されます。

関数名:ISERROR関数
書式:=ISERROR(エラーかどうか検証する数式)
何ができる:数式がエラーならTRUEを返し、エラーでないならFALSEを返します。
平たく書くと:=ISERROR(FIND("L";"KING")でKINGのなかにLの文字が含まれていないのでTRUEが返されます。

関数名:IF関数
書式:=IF(判別する数式;"TRUEならこうする";"FALSEならこうする")
何ができる:判別する数式が真(TRUE)ならこう、偽(FALSE)ならこう、とその後の処理を分別できる。
平たく書くと:=IF(1+1=3;"新発見";"間違い")
1+1はもちろん3でないので、「間違い」が返されます。

週間勤務予定表のサンプルファイルはcalc076.odsをダウンロードしてください。