何歳が一番楽しかった?

エクセルの入力制限と関数についての質問です。

会社の勤務表をエクセルで作成しています。セルのリストで、早番、日勤、遅番、夜勤入、夜勤明、休み、の6択で入力制限しています。

この中で、夜勤入の次の日は夜勤明け。
夜勤明けの次の日は休み。
という確定事項があるのですが、
リスト内の 夜勤入 を選択することによって、後に続くセルに 夜勤明け
夜勤明け を選択することによって、後に 休み を自動で表示させる方法はないのでしょうか?

情報として、1週間毎の書式なので、月曜日が 夜勤明けだったり、夜勤関係なく休みの日もあります。

わかる方いましたら、よろしくお願いします。

質問者からの補足コメント

  • 指摘があったので補足します。

    入力制限ではなく規制の間違いでした。

    そして、今使用しているシフト表の例が画像のものなんですが、週単位なのでB列(月曜日)に『夜勤明け』や、『休み』が入ることもあります。

    このような表を作るに当たって、『夜勤入』を選択することで隣の列に自動で『夜勤明』が、『夜勤明』が選択されることで『休み』が選択されると楽になるのでは。という意図の質問でした。
    わかりにくい表現で申し訳ありませんでした。

    夜勤入→夜勤明け
    夜勤明→休み
    以外に決まったシフトの流れはありません。

    「エクセルの入力制限と関数について」の補足画像1
      補足日時:2019/02/25 22:38

A 回答 (5件)

私なら、まず日にちと名前は、多くなる方を縦にするのが、Bestなので、縦横入れ替えます。



そして、条件の整理ね!

■入力される情報は、6個をリストにする
 早番、日勤、遅番、夜勤入、夜勤明、休み

□自動入力の条件
 夜勤入>夜勤明>休み

★C3の計算式一つ上=前日の勤務形態を参照して判断させる
=IF(C2="夜勤入","夜勤明け",IF(C2="夜勤明","休み",""))

計算式は、横縦に引っ張って入力しておく。
さらにリストも設定すると両方が反映されるよ。
「エクセルの入力制限と関数について」の回答画像4
    • good
    • 2
この回答へのお礼

ありがとうございます!
これがやりたかったことでした!

既に入力規制がある所にifを、置こうとしていたからダメだったのですね……

関数を、先に置いてから入力規制をかければよかったんですね!

ありがとうございました!解決しました!

お礼日時:2019/02/26 01:00

拡大してみた。

見えるかな?
「エクセルの入力制限と関数について」の回答画像5
    • good
    • 2

「入力制限」とは、Excel用語の[データの入力規則](Data Validation)のことですね。


》 夜勤入 を選択することによって、
》 後に続くセルに 夜勤明け
》 夜勤明け を選択することによって、
》 後に 休み を自動で表示させる方法は?
ということは、
最初のセルでは6択でなく、早番/日勤/遅番/夜勤入の4択ということになりませんか?
何れにしても、それ以上のゴチャゴチャ説明なしで、幾つかの異なった選択状態を、行番号・列記号入りの表にしてみてください。
回答者に表を創作させないで、貴方が意図するものを挙げるべきです。
    • good
    • 1
この回答へのお礼

表現が足りなくて申し訳ありませんでした。質問の本文の方に補足を足させていただきました。

ご指摘ありがとうございます。

お礼日時:2019/02/25 22:40

条件が一定じゃないってことですか?


既定の条件がないとか、設定できないよねぇ。
    • good
    • 1
この回答へのお礼

回答ありがとうございます!

条件というのは、シフトの順序ってことでしょうか?
早番 遅番 日勤 休み 夜勤 がどういう順番にシフトに入るかは決まっていません。

決まっているのは夜勤入→夜勤明→休み の三日間流れだけです。
その他は早番 遅番 休み だったり、日勤 休み 夜勤だったりと様々です。

エクセルに入力する際の効率化が図れればと思い、質問させていただきました。

お礼日時:2019/02/25 21:31

こんばんは!



※ 入力制限 → 入力規則 が正しい言い方です。

一案です。
↓の画像のように別シート(画像ではSheet2)に対応表を作成してみてはどうでしょうか?
Sheet2の1行目に対して次の日のリスト候補に表示できるデータを2行目以降に作成しておきます。
やり方としては各列を名前定義し、INDIRECT関数でSheet1の一つ前のセルを参照してもよいのですが、
今回は数式で対応してみました。

まず、Sheet1のB列(カレンダーの初日の列)だけはSheet2の1行目をリストの「元の値」に指定します。

そしてC2セル以降右側のセルリスト設定を行いたいセルを範囲指定 → データ → データの入力規則 → リスト → 元の値の欄に
↓の数式をコピー&ペーストしてみてください。
=OFFSET(Sheet2!$A$1,1,MATCH(B2,Sheet2!$A$1:$F$1,0)-1,COUNTA(OFFSET(Sheet2!$A:$A,,MATCH(B2,Sheet2!$A$1:$F$1,0)-1,,1))-1)

これで左側セルに対応してリスト候補がSheet2の各列のデータになります。

※ 今後Sheet2のデータ数(行方向)は増えても減っても大丈夫です。m(_ _)m
「エクセルの入力制限と関数について」の回答画像1
    • good
    • 1
この回答へのお礼

なるほど!
夜勤入が左のセルにある時は、その隣では夜勤明けしか選べないリストが出来るってことですね?

勝手に入力される訳ではないけど、選択肢が減るっていう認識で良いのでしょうか。

確かに効率化が、図れそうです!ありがとうございます!

お礼日時:2019/02/25 21:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報