WEBサービス

スプレッドシートで優先度に基づいた当番を決めたいときに使う関数

会社のシフト表で、掃除当番を決めたい。

掃除当番は相澤さん→飯田さん→上野さんの順番で優先度が決まっている。相澤さんがいたら相澤さんが担当し、いなければ飯田さんと順番が降りていきます。
こういった若干複雑な条件指定をする際にコピペでサクッと指定できると簡単。IF関数を使用して優先度が高い人を表示してくれるよう作ります。

まず条件を書き出す


まず、この会社のシフト表は「空欄、休み、水やり、出張」が入力されます。
「休み」「出張」の場合は不在のため掃除当番はできません
「空欄」「水やり」の場合は掃除当番が可能です。
ここから、「空欄、水やり」が入力されているか別の内容が入力されているかに分けて条件を考えていきます。

関数を作る

上の内容を踏まえると、こちらが条件になります。

【1】相澤に「空欄もしくは水やり」が入力されているなら、相澤を表示する
【2】相澤に「空欄もしくは水やり」以外が入力されていたら、飯田を表示する
【3】相澤に「空欄もしくは水やり」以外が入力されていて、飯田に「空欄もしくは水やり」以外が入力されていたら、上野を表示する
【4】相澤に「空欄もしくは水やり」以外が入力されていて、飯田に「空欄もしくは水やり」以外が入力されていて、上野に「空欄もしくは水やり」以外が入力されていたら、空欄を表示する

相澤さん→飯田さん→上野さんと、出勤しているときに優先度が高い順で当番が決まるというだけです。

これを個別に作っていくと、下記のようになります。

【1】IF(OR(B2=””,B2=”水やり”),”相澤”)
【2】IF(OR(B3=””,B3=”水やり”),”飯田”)
【3】【4】IF(OR(B4=””,B4=”水やり”),”上野”,””)

形としては、

=IF(OR(セル="条件1",セル="条件2"),"条件と合致していた場合の入力される内容","違った場合の入力される内容")

になります。

もし「条件1」か「条件2」のどちらかに合致していた場合、「条件と合致していた場合の入力される内容」を入力し、違っていたら「違った場合の入力される内容」を入力する

日本語で書くとこんな式です。

IF関数は以下のような式を基本としています。

=IF(条件,条件と合致している結果,違った結果)

しかし、違った結果を省略することも可能です。下の式でもOK

=IF(条件,条件と合致している結果)

IFを連結する


上で作った式を連結していくと、求めるものが入力されます。


=IF(OR(B2="",B2="水やり"),"相澤",違った場合)

こちらの式をベースに、違った場合に次の条件を入れていきます。

=IF(OR(B2="",B2="水やり"),"相澤",IF(OR(B3="",B3="水やり"),"飯田",違った場合))

そうすると、下の式が完成形となります。


=IF(OR(B2="",B2="水やり"),"相澤",IF(OR(B3="",B3="水やり"),"飯田",IF(OR(B4="",B4="水やり"),"上野","")))

こちらの式をコピーしていくと当番表が簡単に作れますよ。