新しいウィンドウ

勤務時間帯ごとの社員が分かるシフト表

3人の社員の時間帯ごとの勤務が分かるシフト表を作ります。
勤務する時間帯には社員の名前を表示して、勤務しないときは空欄にします。

使用例

サンプルデータの記入
その1 氏名データ
<A2>から<A4>セルに下の氏名を入力します。
富山
秋田
石川

その2 出勤時刻
<B1>セルに<出勤>と入力します。
<B2>から<B4>セルに下の時刻を入力します。
10:00
11:00
12:00

その3 退勤時刻
<C1>セルに<退勤>と入力します。
<C2>から<C4>セルに下の時刻を入力します。
12:00
14:00
15:00

その4 勤務時間帯
<D1>から<H1>セルに下の時刻を入力します。
入力セルは横方向になることに注意してください。
10:00
11:00
12:00
13:00
14:00

式の入力
下の式を<D2>セルに入力します。
=IF(AND($B2<=D$1,$C2>D$1),$A2,"")

結果
D2セルに<富山>と表示されます。
式のコピー
1 縦方向にコピー
<D2>セルの式を<D3>から<D4>セルにコピーします。

2 横方向にコピー
<D2>セルの式を<E2>から<H2>セルにコピーします。
<D3>セルの式を<E3>から<H3>セルにコピーします。
<D4>セルの式を<E4>から<H4>セルにコピーします。
結果
勤務時間帯から下方向のセルは次の結果になります。
<D1>セルの<10:00>から下方向
<富山><空欄><空欄>

<E1>セルの<11:00>から下方向
<富山><秋田><空欄>

<F1>セルの<12:00>から下方向
<空欄><秋田><石川>

<G1>セルの<13:00>から下方向
<空欄><秋田><石川>

<H1>セルの<14:00>から下方向
<空欄><空欄><石川>

終わり
解説
下の説明は<D2>セルに入力した式で、結果は<富山>になっています。

<D2>セルに入力した式は下のものです。
=IF(AND($B2<=D$1,$C2>D$1),$A2,"")

上の式から絶対番地指定を外した下の式で説明をします。
=IF(AND(B2<=D1,C2>D1),A2,"")

下の説明は<D2>セルの式です。

その1
出勤時刻と勤務時間帯を比較しています。
B2(出勤時刻10時)<=D1(時間帯10時)
出勤時刻と時間帯が等しいか、または時間帯が大きいときは勤務と表示します。

その2
退勤時刻と勤務時間帯を比較しています。
C2(退勤時刻12時)>D1(時間帯10時)
退勤時刻より時間帯が小のときは勤務と表示します。
(退勤時刻が終われば勤務と表示しません)

その3
上の<その1>と<その2>の両方が成立することを条件にしています。
AND($B2<=D$1,$C2>D$1)

その4
IF関数で<その3>が成立したときは<A2>セルの値を表示、成立しないときは、空白>を表示します。
=IF(AND(B2<=D1,C2>D1),A2,"")

その5
式ができたら絶対番地の指定をします。
ここの式のように<縦と横>の両方向にコピーをするときは絶対指定に工夫が必要です。
(ここで説明は省略しまが、絶対指定の方法を変えて試してみてください)

原則的には列と行のうち、変化すると困る方向(列か行だけ)を絶対指定にします。

終わり


By にいがた窓の会