カレンダー形式の配置表を作成すると連動して勤務表が作成されるようにと考えています。
理想としては添付画像の赤枠だけを編集すれば、別シートの各々の勤務表が連動して作成されるようにしたいです。色々調べながら作成し、毎月カレンダー形式の1週目1日のセルの位置が変わることによる勤務表の連動はできたのですが、2週目以降の連動がどうすればいいのかわからなくなりました。(見えにくいですが、IF、INDEX、MATCHを使用してみました)
併せて、配置表のカレンダー形式で5週目までの表記にしたいので、その月が6週目になった場合は1日の週の頭に残りの日にちがくるようにしたいです。例えば、2019/6の様に30日が6週目になった場合は1日の週の日曜に表示させたいのですがどうすれば良いでしょうか。(添付画像のように)
カレンダーは配置表の月を変更すれば、配置表・勤務表の日付けが自動で変わるようにしています。
各々の勤務表のシートは添付画像のように分けたままにしたいです。(残業時間などを自分で記入するため)
ややこしい質問で申し訳ありませんが、どなたか知恵をお貸しください。宜しくお願いします。
No.4ベストアンサー
- 回答日時:
No1です
補足を眺めて、なんとなくなさりたいことはわかってきましたが・・・
基本的には単純な検索・参照の処理のはずの内容なのに、なぜ難しくなっているかと言えば、大きな原因は表のレイアウトにあります。
多分、日にちに対して縦1列(または横1行)で増加するような表形式にしておけば関数式を作成するのもさほど難しくないものと思います。
ご質問のケースでは、見やすいように好きなレイアウトを作成しておいて、これを関数で対応させようとして、わけがわからなくなっているのではないかと見受けられます。
ご提示のような表形式で作業を行うにしても、基本的には1列(又は1行)レイアウトの表を「作業シート(実は元データ)」としえ作成しておき、それを基本にして、使いやすいレイアウトの表から参照するようにすれば、大分簡単になるはずと思います。
この「作業シート」は直接見ることはないでしょうから、レイアウトの換算が難しいような場合は、作業シート上に対象シートのレイアウトでの行番号や列番号を計算する作業列等を作成しておけば、レイアウトの換算は簡単にできるようになるものと想像します。
それを一発でレイアウト変換までこなそうとするので、わけがわからなくなりますし、仮にできたとしても関数式は長くなり、メンテナンス性も悪く、ほとんど理解のできないものになってしまいます。
などと、御託ばかり並べていても仕方がないので・・・
当方がきちんと内容を理解できているのかどうかはわかりませんが、勤務表のD5セルに
=IFERROR(HLOOKUP(VLOOKUP("Aさん",OFFSET(配置表!$B$1,MOD(INT((WEEKDAY(DATE(配置表!$C$3,配置表!$E$3,0))+B5-1)/7),5)*7+5,0,5,8),MOD(WEEKDAY(DATE(配置表!$C$3,配置表!$E$3,0))+B5-1,7)+2,0),{"○","×","△","当直","休日","有休";"A勤務","A勤務","A勤務","A勤務","/","有休"},2,0),"")
を入れて、コピペするとできそうな気がしますが……?
※ 上式は、配置表のB列から"Aさん"と一致する行を検索していますので、名前部分を実際の表に存在する名前に入れ替えておく必要があります。
No.3
- 回答日時:
補足日時:2019/05/13 14:27 に示された、D5 に入力したと豪語された式
=IF(INDEX(配置表!$C$6:$I$11,1,MATCH('勤務表(Aさん)'!B5,配置表!$C$5:$I$5))="休日","/",IF(INDEX(配置表!$C$6:$I$11,1,MATCH('勤務表(Aさん)'!B5,配置表!$C$5:$I$5))="有休","有休","A"))
ですが、前に示されていた配置表の $C$5:$I$5 の何処にも 休日、有休 等々は見当たらないので、私には貴方が何をやっているのかサッパリポンです。
お手数を掛けしましたが、此れ以上ご迷惑をお掛けするのは忍びないので、此処で失礼いたします。サヨナラ。
すいません、折角確認していただけたのに月の違う添付画像を載せてしまいました。
一応、6月の勤務表を添付画像で補足させていただきます。
こちらこそ、お手数をお掛けしまして申し訳ございませんでした。
No.2
- 回答日時:
補足日時:2019/05/13 00:05 の添付図に示された
セル D5 の数式、老眼の私のために、もう一度「補足]で
今度はテキストで書き写してください。貴方の添付図では読み取れません!
貴方自身はどう思いますか?
それから、
》 毎月カレンダー形式の1週目1日のセルの位置が変わることによる勤務表の連動はできた
とのことだけど、参考までに「配置表」の範囲 C5:I5 に入力された式を教えてください。
ご指摘ありがとうございます。
添付画像では見にくいと思います。補足を追加しましたので確認していただけると有難いです。
配置表のC5:I5 に式は入力していません。入力規制で○,×,△,休日,○+夜,当直,有休が入力できるようにしています。
配置表で○,×,△,休日,○+夜,当直,有休を入力すると、勤務表の勤務区分が○,×,△,=A勤務、休日=/、有休=有休で入力されるようにしたいからです。
No.1
- 回答日時:
こんにちは
メインのご質問については、図が見えない上になさりたいことの内容もまったく把握できませんでした。
その代わりと言ってはなんですが、把握することができた
、
>その月が6週目になった場合は1日の週の頭に残りの日にちがくるようにしたい
という方だけに回答させていただきます。
C3セルに年、E3セルに月がそれぞれ数値(=シリアル値ではない)で入力されていると仮定しています。
日付表示のセル値がシリアル値が日付の数値のみなのか不明ですけれど、上記仮定に合わせて、ひとまず「日付の数値」と考えました。
ご提示の表のC5セルに
=IF(AND(WEEKDAY(DATE($C$3,$E$3,1))<COLUMN(A1)+ROW(A1),DATE($C$3,$E$3,COLUMN(A1)+ROW(A1)-WEEKDAY(DATE($C$3,$E$3,1)))<DATE($C$3,$E$3+1,1)),COLUMN(A1)+ROW(A1)-WEEKDAY(DATE($C$3,$E$3,1)),IF(DATE($C$3,$E$3,COLUMN(A36)+ROW(A36)-WEEKDAY(DATE($C$3,$E$3,1)))<DATE($C$3,$E$3+1,1),COLUMN(A36)+ROW(A36)-WEEKDAY(DATE($C$3,$E$3,1)),""))
の式を入れ、右方にI5セルまでフィルコピーし、さらに1週分をコピーして7行おきにペーストします。
もう少し簡単な式にできそうな気もしますが、すぐには思いつきませんでしたので…
カレンダーの日付の件、解決しました。回答ありがとうございます。
fujillinさんの仮定された通り日付の数値で作成しておりましたので、すぐに解決することができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Excel(エクセル) エクセルの条件付き書式について エクセルでカレンダーを作りました。縦に日付が並んでいて、横にスケジュ 3 2022/10/10 15:32
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Visual Basic(VBA) excel2016でリストからカレンダーに内容を反映させたいです 2 2022/10/27 15:32
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- Excel(エクセル) エクセルでシフト表を作成中で困っています。 3 2022/06/22 11:49
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- アルバイト・パート バイト週1の定義(数え方)について 1 2022/08/22 21:13
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
添付画像見えにくいため補足しました。
添付画像見えにくいため補足しました。
セルD5には =IF(INDEX(配置表!$C$6:$I$11,1,MATCH('勤務表(Aさん)'!B5,配置表!$C$5:$I$5))="休日","/",IF(INDEX(配置表!$C$6:$I$11,1,MATCH('勤務表(Aさん)'!B5,配置表!$C$5:$I$5))="有休","有休","A")) の式を入力しました。
配置表を記入すれば、勤務表の勤務区分のD5~D20、J5~J19までが連動して入力されるようにしたいです。
しかし、上記の式ではカレンダー形式の配置表で2週目以降になると、添付画像の勤務表5/5(配置表では2週目)からできなくなり、式がわかりません。
言葉足らずで申し訳ございませんが、宜しくお願いします。
6月の勤務表です。 ○,×,△,当直=A勤務、休日=/、有休=有休(すいません、A勤務の当直を追加
しました)理想ではAさんの勤務表の勤務区分が
1土 A
2日 /
3月 A
4火 /
5水 A
になってほしいのですが、上記の式では2週目(6/2の日曜以降)からできなくなりました。
回答ありがとうございます。提示して下さった式で解決いたしました。
理解できていない関数が多数あり、勉強不足を痛感いたしました。
レイアウトの件なのですが、元々は会社の既存の書式があり月末に勤務表を各々で手入力して提出していたものを自動でどうにかできないものかと考え作成するようになりました。なので、恐縮ですが出来ればこのレイアウトのまま作成したいと考えています。
あとご提案いただきました作業シートのことで、もしお時間ございましたら回答お願いしたいのですが…
添付画像の作業シートを別シートで作成いたしました。このような作業シートの場合、どうすれば良いでしょうか。作業シートの年日は配置表と連動し、日付は日付の数値です。