プロが教えるわが家の防犯対策術!

シフト表とカレンダーがあるのですが、出来れば一緒にまとめたいと思っています。
理想としても添付画像のような感じです。(赤枠部分にシフトを表示)

カレンダーなのですが、その月を入力すると自動で日付が変わるようになっています。
シフトも例えば「Aさん」を選択すると「Aさん」のシフトに自動で変わるように出来ればと考えています。
ただ、毎月日付のセルの位置も変わってしまう為、連動して変わるようにするにはどうすればいいのか困っています。

併せて日付がない所は文字が表示されない様に出来ればと・・・。
もしくはそれに近いものが作成したいのです。
分からないばかりで申し訳ないのですが、どなたか知恵をお貸し下さい!

「エクセルでシフトとカレンダーを一緒に管理」の質問画像

A 回答 (1件)

こんばんは!


一例です。

↓の画像で上側がSheet1で各日のシフトを入力し、下側のSheet2に表示させるとします。

まずSheet1の日付をシリアル値で操作します。
C1セルに西暦年・E1セルに月の数値をそれぞれ入力します。
D2セル(セルの表示形式はユーザー定義から d としておく)に
=IF(MONTH(DATE($C1,$E1,COLUMN(A1)))=$E1,DATE($C1,$E1,COLUMN(A1)),"")
という数式

D3セルに
=IF(D2="","",TEXT(D2,"aaa"))
という数式を入れ、D2・D3セルを範囲指定 → D3セルのフィルハンドルで月末(31日)までの
AH列までコピー!
これでC1・E1セルの数値を入れ替えるだけで横1列のカレンダーができます。

次にSheet2のC1セルに
=DATE(Sheet1!C1,Sheet1!E1,1)
という数式を入れ、セルの表示形式はユーザー定義から
m月
としておきます。(このC1セルは今後手を加えません)
A4セル(セルの表示形式はユーザー定義から d としておく)に
=IF(MONTH($C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A2)/2-1))=Sheet1!$E$1,$C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A2)/2-1),"")

A5セルに
=IF(A4="","",INDEX(Sheet1!$D$4:$AH$100,MATCH($A$1,Sheet1!$C$4:$C$100,0),MATCH(A4,Sheet1!$D$2:$AH$2,0))&"")
という数式を入れ、A4・A5セルを範囲指定 → A5セルのフィルハンドルで「土」のG列までフィル&コピー
そのまま(2行が選択されている状態)で下へ2行ずつフィル&コピー!

これでSheet2のA1セルを入れ替えるだけでSheet1のデータが日付毎に表示されます。

※ このままではセルの左上にエラーチェックオプションのマークが表示され
目障りだと思いますので、
ファイル → オプション → 数式 → エラーチェックの項目の
「バックグラウンドでエラーチェックを行う」のチェックを外しOK

※ Sheet1のC1・E1を変えるだけでSheet2のカレンダーは連動するようにしています。

こんな感じではどうでしょうか?m(_ _)m
「エクセルでシフトとカレンダーを一緒に管理」の回答画像1
    • good
    • 1
この回答へのお礼

素早い回答ありがとうございます!
とても丁寧で分かり易かったです。おかげで理想通りのもので出来ました。
知らない関数もあり、勉強になります(*'▽')

お礼日時:2015/05/15 23:36

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

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


このQ&Aを見た人がよく見るQ&A