痔になりやすい生活習慣とは?

勤務予定表を作りたいのですが

出勤日は出・休・出・休・出・休・休・出・休・出・休・出・休・休・休の15日を1サイクルとしその繰り返しが予定となります。一日ずつずらしたパーターンをいくつか作ります。

<イメージ>

サイクル1 出 休 出 休 出 休 休 出 休 出 休 出 休 休 休 ・ ・ ・ ・ ・
サイクル2 休 出 休 出 休 出 休 休 出 休 出 休 出 休 休 ・ ・ ・ ・ ・
サイクル3 休 休 出 休 出 休 出 休 休 出 休 出 休 出 休 ・ ・ ・ ・ ・
サイクル4 休 休 休 出 休 出 休 出 休 休 出 休 出 休 出 ・ ・ ・ ・ ・
 ・
 ・
 ・


個人別にサイクルを割り当てます。

Aさんはサイクル1 
Bさんはサイクル2
Cさんはサイクル3
 ・
 ・
 ・

エクセルの表は

月を記入すると自動に日付・曜日が表示されるように設定。
(11日始まり10日締めなので31日の表示のある月ない月がある)
個人名または社員番号を入力すると自動にサイクルが割り当てられられる

<イメージ>
    11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
     月 火 水 木 金 土 日 月 火 水 木 金 土 日 月
Aさん 出 休 出 休 出 休 休 出 休 出 休 出 休 休 休 ・ ・ ・ ・ ・
Bさん 休 出 休 出 休 出 休 休 出 休 出 休 出 休 休 ・ ・ ・ ・ ・
Cさん 休 休 出 休 出 休 出 休 休 出 休 出 休 出 休 ・ ・ ・ ・ ・
Dさん 休 休 休 出 休 出 休 出 休 休 出 休 出 休 出 ・ ・ ・ ・ ・
 ・
 ・
 ・


可能でしょうか?。どなたかご教授ください。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

 15日では割り切れない月もあるという事は、毎月の11日が、必ずしもサイクルの第1日目とはなっていない、と考えて宜しいのでしょうか?


 例えば、2011年の1月11日からサイクルが始まったとした場合、2011年の1月25日が第1周目のサイクルの最後の日となり、2011年の1月26日~2月9日がサイクルの第2周目となり、2011年2月11日はサイクルの第3周目の2日目に当たるため、Bさんが「出」となり、Aさん、Cさん、Dさんは「休」となり、2011年3月11日はサイクルの第4周目の最後の日に当たるため、サイクル4のDさんが「出」となり、Aさん、Bさん、Cさんは「休」となる、という様に考えれば宜しいのでしょうか?(もしも、そうではなく、毎月の11日にサイクルがリセットされて、11日は必ず、サイクルの第1日目になるのだとすると、人によって年間の「出」の日や「休」の日の日数に差が生じてしまう事になります)
 もしも、年や月によってサイクルの節目の日が異なるのだとしますと、使用中のサイクルが始まった起点となる日が、何年何月何日なのかを明記しておかなければ、自動的に計算する事は出来ません。

 今仮に、B2セルにサイクルを開始した日を入力し、
サイクル1~サイクル4というサイクルの名称を、B3~B6に入力し、
C3~Q3に1つ目のサイクルの出休のパターンを入力し、
A8セルに何年の何月度の勤務予定表なのかを入力し、
B10以下に各勤務者が、どのサイクルに従って勤務するのかを入力すると、

C4~Q6には、1行上に入力されている出休のパターンから、1日ずつずれた出休のパターンが、
C列~AG列の8行目には日付が、
C列~AG列の9行目には曜日が、
C列~AG列の10行目以下には、その月度における各勤務者の勤務予定表が、
自動的に表示されるものとします。

 まず、A1セルに「サイクル開始日」と入力して下さい。
 次に、B8セルに「度」と入力して下さい。
 次に、A8セルの書式設定の[表示形式]を[日付]の[2001年3月]に設定して下さい。
 次に、C4セルに次の数式を入力して下さい。

=Q3&""

 次に、D4セルに次の数式を入力して下さい。

=C3&""

 次に、D4セルをコピーして、E4~Q4の範囲に貼り付けて下さい。
 次に、C4~Q4の範囲をコピーして、C5~Q6の範囲に貼り付けて下さい。

 次に、C8セルに次の数式を入力して下さい。

=IF($A$8="","",$A$8+COLUMNS($C:C)+9)

 次に、C8セルをコピーして、D8~AD8の範囲に貼り付けて下さい。
 次に、AE8セルに次の数式を入力して下さい。

=IF(OR($A$8="",$A$8+COLUMNS($C:AE)+9>DATE(YEAR($A$8),MONTH($A$8)+1,10)),"",$A$8+COLUMNS($C:AE)+9)

 次に、AE8セルをコピーして、AF8セルとAG8セルに貼り付けて下さい。
 次に、C9セルに次の数式を入力して下さい。

=TEXT(C$8,"aaa")

 次に、C10セルに次の数式を入力して下さい。

=IF(AND(ISNUMBER(C$8),COUNTIF($B$3:$B$6,$B10)=1),VLOOKUP($B10,$B$3:$Q$6,MOD(C$8-$B$1,15)+2,FALSE),"")

 次に、C9~C10の範囲をコピーして、D9~AG10の範囲に貼り付けて下さい。
 次に、D10~AG10の範囲をコピーして、同じ列の11行目以下に貼り付けて下さい。

 以上で準備は完了で、後は、
B2セルにサイクルを開始した日を、
C3~Q3に1つ目のサイクルの出休のパターンを、
A10以下に各勤務者の名称を、
B10以下に各勤務者が、どのサイクルに従って勤務するのかを、
それぞれ入力しておき、

 月度が変わる毎に、A8セルに新しい月度を、例えば、

2011年7月

或いは

2011/7/1

という形式で入力すれば、

その月度における
日付がC8~AG8に、
曜日がC9~AG9に、
各勤務者の勤務予定表が、C列~AG列の10行目以下に、
自動的に表示されます。
「エクセルで勤務予定表を作成」の回答画像5
    • good
    • 0
この回答へのお礼

ありがとうございます!!!
回答して頂いた内容に感動!。自分の希望した通りにできました。
いろいろ勉強して汎用したいと思います。感謝いたします。

お礼日時:2011/06/15 08:16

 回答番号ANo.5です。


 先程の回答の添付画像では、文字が判別し難いため、念のために、フォントを多少大きくした画像を、再度添付しておきます。
「エクセルで勤務予定表を作成」の回答画像6
    • good
    • 0
この回答へのお礼

ありがとうございます!!!
回答して頂いた内容に感動!。自分の希望した通りにできました。
いろいろ勉強して汎用したいと思います。感謝いたします。

お礼日時:2011/06/15 08:16

私はVBAを使ってやります。

関数では複雑になると思う。
こういうアイデアを生かすにはVBAが出来ないと、関数では複雑になって、自分でやれず、誰かに聞くことになる。
VBAは習得に時間がかかるが、ルールをプログラムに織り込みやすい。
(1)1日づらし
(2)月中日数の変動
などもVBAならできそうだ。
こくみんの祝日などは機械的に決めたパターンを当てはめて良いのか?何も書いてない?
はッきり言って、質問者には関数では無理でないかな。コピペなりして作らざるをえないだろう。
ーー
操作でやる場合に
パターンは、ツールーオプションーユーザー設定リストに定義すると、最初の1セルデータを入れると、連続データの作成的(+ハンドルを出して右へドラッグする)に入れられるのではないか(これを活用できないか)
Aさんに対しBさん分は、1列ずらして最初の「出」など入力し、右へドラッグして貼り付け、月末分以後(11日以後?)オーバーは翌月(回)繰越して張り付ける。
少し作業が楽になるかも。
    • good
    • 0

ANo.1 補足です。


曜日の自動算出は 参考URLなどで可能です。
曜日などにより 出勤者数を調整する必要がなければ
パターン番号は RAND関数を使えばランダムに生成が可能です。

参考URL:http://www.officepro.jp/excelfunc/date/index9.html
    • good
    • 0

作成可能ですよ。



質問文に入力しているんだから、同じように作ればOK。
問題ありません。

楽をしたいなら…
Aさんのパターンを入力したら、そのまま下へコピーして
パターンの最後(右端)のセルを Bさんから最後の人まで選択し、
Shiftキーを押しながらパターンの先頭へドラッグすると、選択したセルを移動挿入できます。
それができたら同様に、Cさんから最後の人までのパターンを選択して移動挿入です。
必要な回数繰り返せば良いでしょう。

あとは、オートフィルでしょうか。
月と入力したセルを横や縦にフィル(選択したセルの右下の黒い点をドラッグすること)すると
 火、水、木、金、土、日、月…
と繰り返し表示される機能です。

 「ツール」→「オプション」を選ぶ
  ↓
 「ユーザー設定リスト」タブを選ぶ
  ↓
 「ユーザー設定リスト」項目→「新しいリスト」を選ぶ
  ↓
 「リストの項目」項目に必要なパターンをカンマ(,)区切りで入力する
  ↓
 「追加」ボタンをクリックする
  ↓
 「ユーザー設定リスト」項目に「出,休,出,休,出,休,休,出,休,出,休,出,休,休,休」と表示されていることを確認する
  ↓
 「OK」ボタンをクリックする。

これで、出を入力した後にフィルを行うと設定したパターンが表示されるようになります。
あとは好きにコピーするなり移動させるなりしましょう。
    • good
    • 0

Excelはロジカルな作業でしたらなんでも可能です。


だから答えは「可能です」
しかしそれ以上は どのようにその作業をしたいのかが
分からないので答えようがありません。
たとえば 名前の横のセルに パターン番号を入れれば
1日から 31日まで出勤パターンが自動で記入される。
> テンプレートのシートに 必要な出勤パターンを全部作っておき
  各セルに IF関数でそれを転記していく
関数を使いたくなければ、マニュアルでコピペする。
などでしょうか。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで、勤務表から 日付別に勤務者と勤務形態を抽出して、別シートに抽出したい

Sheet 1 勤務表(4月)
    A     B     C      D…
        4/1      4/2    4/3 …

1 赤星     早1    夜勤入り  夜勤明け …
2 関本    遅1    早1    早1   …
3 新井    休     遅1    早2   …
4 金本    夜勤入り  夜勤明け  休    …
5 ブラぜル  夜勤明け 休     遅1   …
6 桜井    休     早2    遅2   …
7 鳥谷    早2    遅2    早3   …
8 狩野    遅2    早3    休    …
9 藤川    早3    休     夜勤入り …

以上のような、勤務表、(各列には、日付、各行には、従業員の名前が9人)が、あり、毎日、早番 3種類、遅番 2種類、夜勤入り 1人、夜勤明け 2人、休み、のデータが入っています。(ずれていたら、すいません)
これを、Sheet 2以降に、日付ごとに、出勤している従業員名と、そのとなりのセルに、その従業員の勤務種別を抽出して、表示したいのです。しかも、夜勤入り、夜勤明け、休みは表示させたくありません。)例えば、こんな感じです。

Sheet 2   Sheet 3    Sheet 4
(4月1日)    (4月2日)    (4月3日)
赤星 早1     関本 早1  関本  早1
関本 遅1     新井 遅1  新井  早2
鳥谷 早2     桜井 早2   ブラぜル 遅1
狩野 遅2     鳥谷 遅2   桜井  遅2
藤川 早3     狩野 早3    鳥谷  早3 

いろいろとムシのいい話を書いて申し訳ありませんが、当方vbaの初心者で、このような場合、何から手を付けて良いのか分からず、困っております。どうか、なにとぞ、ご教授下さい。

Sheet 1 勤務表(4月)
    A     B     C      D…
        4/1      4/2    4/3 …

1 赤星     早1    夜勤入り  夜勤明け …
2 関本    遅1    早1    早1   …
3 新井    休     遅1    早2   …
4 金本    夜勤入り  夜勤明け  休    …
5 ブラぜル  夜勤明け 休     遅1   …
6 桜井    休     早2    遅2   …
7 鳥谷...続きを読む

Aベストアンサー

回答No3です。
ごめんなさい。肝心の式の表示が抜けておりました。
A15セルには次の式を入力し、下方にオートフィルドラッグします。
=ROW(A3)
B15セルには次の式を入力し右方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF((IF(B3="早1",1,0)+IF(B3="早2",1,0)+IF(B3="早3",1,0)+IF(B3="遅1",1,0)+IF(B3="遅2",1,0))=0,"",MAX(B$14:B14)+1)

Q【大至急お願いします!!】エクセルを使ってシフト表を作成したい

【大至急です!!】
エクセルを使ったローテーションの作成方法を教えてください!!
エクセル初心者です。

人事異動で以下のような窓口当番のローテーションを作成することになりました。

会社のパソコンのセキュリティ上フリーソフトは使用できず、また、私自身のパソコンスキルからエクセルを使用して作成するよりほかないと考えています。
(私自身はマクロは使えません。)

エクセルのバージョンは2010です。

どのような方法があるか詳しくお教え下さい。

1.10名程度で2つの窓口を担当する。

2.1つの窓口に1名の担当者がつきます。

3.担当者は午前と午後で交代する。(=2名×2名で1日つき4名が必要)

4.休暇や繁忙時期を考慮する必要があるため、適宜担当できない日を考慮する必要がある。(繁忙期や休暇というのは、人によって取得日が違うため個別対応が必要という意味です。)

5.担当者の経験が分かれるため、10名を2グループに分け、なおかつ顔合わせもランダムになるようにしたいです。



ざっくりしているかもしれませんが、以上です。宜しくお願いします。

【大至急です!!】
エクセルを使ったローテーションの作成方法を教えてください!!
エクセル初心者です。

人事異動で以下のような窓口当番のローテーションを作成することになりました。

会社のパソコンのセキュリティ上フリーソフトは使用できず、また、私自身のパソコンスキルからエクセルを使用して作成するよりほかないと考えています。
(私自身はマクロは使えません。)

エクセルのバージョンは2010です。

どのような方法があるか詳しくお教え下さい。

1.10名程度で2つの...続きを読む

Aベストアンサー

>窓口が午前・午後各2名ある場合は各列にコピペして増やせば良いのでしょうか
いや、全員を2つのグループに分けてそれぞれのグループから1人ずつという風に理解していたので、その表は一人しか選びません。だって、経験によって2つのグループに分けるのですから、多分ベテランと新人のグループに分けるんでしょう?ですから、ベテラン用の表と新人用の表を2つつくってそれぞれから1人ずつ選ぶという使い方を想定しています。
もし一つの表で2人選ぶということであれば(もちろんそれが要求仕様なのですが)、根本的に作り替えなければならないので、申し訳ないですがお手伝いできないです。
ただ、別の方がアイデアをお持ちかもしれませんので、その「担当者の経験が分かれるため、10名を2グループに分け」が具体的にどういう意味なのか捕捉されておくとよいでしょう。不躾ながら正直言うとベテラン用と新人用で分けてそれぞれから一人ずつ選べばいいんじゃないかなぁ、としか思えないのです。

>お教えいただいた形の場合、何か入力するたびに再計算されるのですが、そもそもそうゆうものなのでしょうか?
そうです。ですから、エクセルの設定を手動計算にする必要があります。
リボンに「計算」というタブがあります。そこに「計算方法の設定」という項目がありますから、そこで設定します。詳しくはこちらをどうぞ↓。
https://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=012854
再計算するにはF9を押します。

>午後当番→同じ方が午前当番となってしまう事例が発生しています
それはそうなると知っていました。午前と午後で交代するということだけだったので、日付が変われば午後と午前でつながってもいいという意味だと思っていました。でも午後-午前も一緒に禁止する方が実装するのは簡単です。Plan Optimized の部分は第一日目の午前を除いて、全部同じにすればいいです。つまり第一日目の午後をそのままま全シフトにコピーすれば午後-午前もなくなります。
ただ前の月の最後のシフトとの関係は人間が確認しなければならないです(これは前のバージョンでも同じ)。

>何度再計算しても各人の当番回数がかなりばらついてしまいます。
そうですね。それは手で調整することを想定しています。私の手元では5人の表を作ったので何回かやるといい感じのが出てくるのですが、それでも特定の期間にかたまってしまうというようシフト表になってしまいます。10人でやるとさらに理想的なシフト表ができにくいかもしれません。でもまるっきり白紙の状態から手で作るよりはかなり楽になるのと思うのですが。
また、本質的な解決方法じゃないですが、過去の3シフトに入っていた人からは選ばない、というような条件を付け加えると、少しはましになるようです。「過去の3シフト」の縛りを加えるには、Plan Optimized の項目で第2日目の午後シフトを =If(CountIf(B24:D24,"√")>0,"x",If(E4="x","x","")) として下と右にコピーしていきます。ただし、この縛りを入れると、とても規則的なシフト表になるとか、誰も入れない日がいくつも出てくるとか、別の問題も出てきます。

>パソコンに詳しい方からすれば無茶な質問であることは理解しております。
私はそうは思いませんが、ただエクセルのファイルのままで渡せないとかいうのがありますので、こういう掲示板でやり取りするとちょっと時間かかるのはたしかですね。

>窓口が午前・午後各2名ある場合は各列にコピペして増やせば良いのでしょうか
いや、全員を2つのグループに分けてそれぞれのグループから1人ずつという風に理解していたので、その表は一人しか選びません。だって、経験によって2つのグループに分けるのですから、多分ベテランと新人のグループに分けるんでしょう?ですから、ベテラン用の表と新人用の表を2つつくってそれぞれから1人ずつ選ぶという使い方を想定しています。
もし一つの表で2人選ぶということであれば(もちろんそれが要求仕様なのですが)、根本...続きを読む

Q★エクセルでセルに文字入力をすると条件で他のセルに文字表示

エクセルで例えば顧客名を入力すると他のセルに住所とか電話とか言うような文字が表示されるような条件設定が出来ますか?
予めフォーマットを作る上で常時表示だとうるさいのでこのように出来ればよいのですが・・・。

Aベストアンサー

NO1です。
エラーになるのは、情報定義シート側に入力情報がない場合ですので、NO2さんのご回答を参考にエラーチェックを追加して見ましたので、お試し下さい。

=IF(A1<>"",IF(ISNA(VLOOKUP(A1,Sheet2!$A$2:$C$3,)),"",(VLOOKUP(A1,Sheet2!$A$2:$C$3,2,1))),"")

Qエクセル シフト勤務表から、シフト別に氏名を抽出。

エクセルで、マクロを使わずに、やってみたいのです。
シフトの勤務表があります。
B4~B18に氏名が入ってます。
Cが、1日で AGが、31日です。
C4~AG4
C18~AG18
ここに、勤務予定が入ってます。
日(日勤) 準(準夜勤) 深(深夜勤) とかです。

ここで、別シートに、
準夜勤の氏名一覧表を、作りたいのです。
1日は
C4 C5 C6
ここに、氏名が出るようにしたいのです。

2日は、
D4 D5 D6 です。

最初に書きましたが、マクロは使えないので、(能力不足)
使わずにできる方法を、教えてください。
よろしくお願いします。

Aベストアンサー

ご質問の内容を解決するには、以下の手順を行ってください。
sheet2が準夜勤の氏名一覧表となります。
1 sheet1にご説明のシフトの勤務表様式を作成する。
2 sheet2にへ氏名のB列を除いて、全く同じ様式を複写します。
※便宜上、以降の説明の中で、sheet1を(1)、sheet2を(2)とします。
3 (1)のB4~B18を範囲指定しておき、ツールバーの「挿入(I)」を
 クリックします。
4 挿入のドロップダウンメニューから「名前」を選択します。
5 名前のドロップダウンメニューから「定義」を選択します。
6 「名前の定義」というダイアログボックスが開きますので、
 一番上の入力欄に「B4~B18」に付ける名前を入力し、OKを
 クリックします。
 ※ここでは便宜的に、「氏名」と名付けます。
7 (2)を開きC4セルをクリックし、以下の計算式を入力します。
  =IF(Sheet1!C4="準",氏名,"")
8 C4の計算式をクリック&ドラッグで、C4~AG18の範囲に複写します。

  以上です。

 注1 IF文の論理式が偽の場合ですが、後で表を改良して、セルの
   値を調べる必要が出てくる場合もありますので、ZEROや空白
   (スペース)でなく、null("")を指定しておく方がBetterと
   思います。
 注2 IF文中の(1)のシート名ですが、計算式作成後にシート名を
   変更した場合、自動で計算式内のシート名も変更されます。
 注3 計算式の入力時、(1)シート名の入力はキーボードからタイプ
   しなくても、(1)のC4をクリックすれば自動的に挿入されます。 

ご質問の内容を解決するには、以下の手順を行ってください。
sheet2が準夜勤の氏名一覧表となります。
1 sheet1にご説明のシフトの勤務表様式を作成する。
2 sheet2にへ氏名のB列を除いて、全く同じ様式を複写します。
※便宜上、以降の説明の中で、sheet1を(1)、sheet2を(2)とします。
3 (1)のB4~B18を範囲指定しておき、ツールバーの「挿入(I)」を
 クリックします。
4 挿入のドロップダウンメニューから「名前」を選択します。
5 名前のドロップダウンメニューから「定義」を選択します。
6 ...続きを読む

Qエクセルの名簿一覧表からすでにエクセルで作られている一人づつのシートに差込印刷

エクセルでできている名簿リストから、すでにエクセルでできている個人別のシートに差込印刷したいのです。一人ずつセル参照で作ることはできるのですが、全部で300人分くらいあるのでワードの差込印刷のように一度にできる方法が知りたいのです。本日中にやらねばならないので手作業では、間に合いそうにありませんしVBAの勉強をしている余裕もありません。

Aベストアンサー

VBAでもない解答をします。ただファイル-印刷の操作を
300回すること。最終部のようにすれば、VBAで自動化も出来ます。
(1)Sheet2のA1:E3に住所録が
氏名郵便番号住所1住所2
山田 和郎111-1111東京都小平市新町2-1-2光マンション222
木之下 重雄222-2222東京都三鷹市本町4-3-2三国荘201
あるとします。本番ではA1:E300とかに住所録があります。
(2)Sheet1は印刷する画面シートです。
F1セルに2、
F2に="Sheet2!A"&F1
F3に="Sheet2!B"&F1
F4に="Sheet2!C"&F1
F5に="Sheet2!D"&F1
F6に="Sheet2!E"&F1
郵便番号を置くセルをB3として式=INDIRECT(F3)
府県市を入れるセルをB5として式=INDIRECT(F4)
町番地を入れるセルをB6として式=INDIRECT(F5)
気付を入れるセルをC6として式=INDIRECT(F6)
名前を入れるセルをB8として式=INDIRECT(F2)
C8に「様」を入れる。
(3)F1セルが2の時は
111-1111

東京都小平市
新町2-1-2光マンション222

山田 和郎様
となりますが、このA1:C8を印刷する。
(4)F1セルの値を3に変える(3を入力する)と
222-2222

東京都三鷹市
本町4-3-2三国荘201

木之下 重雄様
と瞬時に変るが、これを印刷する。
(5)F1を4、5、6、・・・と変えて印刷、変えて印刷すれば良い。
この(5)の部分だけをマクロの記録やVBAにすれば、
同じVBAでも既解答よりずっと易しいと思いますがいかがででしょうか。
Sub test01()
Worksheets("sheet1").Activate
For i = 2 To 3 '300
Cells(1, "F") = i
Range("a1:c8").PrintOut
Next i
End Sub
行高、セル幅、フォントサイズなどは手動で設定。
氏名、郵便番号、住所を置くセルは自由に出来ます。
上記でF1:F6も自由に別列に設定できます。

VBAでもない解答をします。ただファイル-印刷の操作を
300回すること。最終部のようにすれば、VBAで自動化も出来ます。
(1)Sheet2のA1:E3に住所録が
氏名郵便番号住所1住所2
山田 和郎111-1111東京都小平市新町2-1-2光マンション222
木之下 重雄222-2222東京都三鷹市本町4-3-2三国荘201
あるとします。本番ではA1:E300とかに住所録があります。
(2)Sheet1は印刷する画面シートです。
F1セルに2、
F2に="Sheet2!A"&F1
F3に="Sheet2!B"&F1
F4に="Sheet2!...続きを読む

QExcelで作る出勤管理表/カレンダー

はじめてこちらで質問させて頂きますsansian3と申します、
どうぞ宜しくお願い致します。

私は現在、150人規模の会社で総務人事を担当しており、給与計算をしています。
今までのペーパーによるやり取りに限界を感じ、Excel2003を利用して
従業員の出勤管理を行いたいと思っております。

具体的には、タイムカードを無くす事が主な目的なのですが、
私の会社は営業が中心で、正社員とパートで定休日がバラバラ、
そして年間休日制(合計92日)でカレンダーとの連動を取るのがとても難しい会社です。

休日パターンにつきましては、

Aパターン…水曜定休・第1.3火曜隔週
Bパターン…水曜定休・第2.4火曜隔週
Cパターン…日曜定休・第1.3土曜隔週
Dパターン…日曜定休・第2.4土曜隔週
Eパターン…月曜定休・第1.3火曜隔週

...以下、Sまで全19パターン。

カレンダー年度は4月開始~3月終わり、
出勤タイムカードの締め日は、毎月16日開始~15日締め。

GW・夏期休暇・年末年始連続休暇有り、
毎年パターン毎の休日割り振りは、
上記の19パターンを基準として作成しています。

尚、セルに社員番号を入れると、Excelの社員マスターからVLOOKUP関数で
氏名・所属・休日パターンが出てくるようにはなっています。


このとっても問題だらけの状況下で私が作成したいExcelの出金管理なのですが…

1.A4縦、列に項目(日にち・曜日・残業時間・有休等勤怠)
行に日付・曜日(4/16水・4/17木・4/18金...)

2.処理年月を入力すると、日付と曜日が自動的に変わる

3.社員番号を入れると、その社員の休日パターンの定休日(年間休日日)行が
赤く塗りつぶされる

上記の作成したExcelデータをサーバーにアップして、
従業員150人がダウンロードして各々が処理月と社員番号を打ち
印刷する流れを考えております。

以上です、私の知識不足でどうしても解決が出来ません、
ご教授宜しくお願い致します!

はじめてこちらで質問させて頂きますsansian3と申します、
どうぞ宜しくお願い致します。

私は現在、150人規模の会社で総務人事を担当しており、給与計算をしています。
今までのペーパーによるやり取りに限界を感じ、Excel2003を利用して
従業員の出勤管理を行いたいと思っております。

具体的には、タイムカードを無くす事が主な目的なのですが、
私の会社は営業が中心で、正社員とパートで定休日がバラバラ、
そして年間休日制(合計92日)でカレンダーとの連動を取るのがとても難しい会社です。

...続きを読む

Aベストアンサー

「各自印刷をして、手書をする」という運用を前提にしてアドバイスさせていただきます

> 1.A4縦、列に項目(日にち・曜日・残業時間・有休等勤怠)行に日付・曜日(4/16水・4/17木・4/18金...)

列は問題なくつくれますよね
行は日付と曜日なので、
案1・・・A列に日付、B列に数式「=text(A1,"aaa")」を入れる
案2・・・A列に日付、A列のセルの書式設定-表示形式をユーザー設定で「m/d aaa」に変更する

> 2.処理年月を入力すると、日付と曜日が自動的に変わる
処理年月は、締日の年月でしょうか?開始の年月でしょうか?
仮に締日の年月を前提に
年のセルと月のセルを別にしたほうがわかりやすいと思います
開始日のセルに「=date(年のセル,月のセル-1,15)
開始日以降のセルは、「=上のセル+1」で31行作成します
29行目、30行目、31行目のセルに条件付書式を設定します
29行目:数式が=(DAY(29行目のセル)>15)・・・フォント:白、塗潰し:白
30行目:数式が=(DAY(30行目のセル)>15)・・・フォント:白、塗潰し:白
31行目:数式が=(DAY(31行目のセル)>15)・・・フォント:白、塗潰し:白

> 3.社員番号を入れると、その社員の休日パターンの定休日(年間休日日)行が赤く塗りつぶされる
別のシート(仮称:社員番号一覧)に社員番号と休日パターンの表を作成する(休日はパターンはA,bではなく、1,2の数字にしておく。つまりA->1、B->2・・・として登録しておく)
更に別のシート(仮称:カレンダー)に行は日付(1年分)、列には休日パターンの表を作成し、休日パターンごとに休日の日に1を設定しておく
社員番号を入力した際に、vlookupを使用して「社員番号一覧」から休日パターンを取得するようにする
日付の1行目~28行目まで条件付書式の設定
数式が「=(vlookup(日付のセル,カレンダーの範囲,取得した休日パターン+1,false)=1)」
を設定する
日付の29行目以降は、2.で設定した条件付書式に追加で
数式が「=(vlookup(日付のセル,カレンダーの範囲,取得した休日パターン+1,false)=1)」

おおまかにこんな感じでいいのではないでしょうか

「各自印刷をして、手書をする」という運用を前提にしてアドバイスさせていただきます

> 1.A4縦、列に項目(日にち・曜日・残業時間・有休等勤怠)行に日付・曜日(4/16水・4/17木・4/18金...)

列は問題なくつくれますよね
行は日付と曜日なので、
案1・・・A列に日付、B列に数式「=text(A1,"aaa")」を入れる
案2・・・A列に日付、A列のセルの書式設定-表示形式をユーザー設定で「m/d aaa」に変更する

> 2.処理年月を入力すると、日付と曜日が自動的に変わる
処理年月は、締日の年月でしょうか?開...続きを読む

Qエクセルでの指定文字 カウントについて

エクセルで並んだデータでの指定した名前だけの個数をカウントするにはどうすればいいのでしょうか?

山田 高橋 佐藤
高橋 梅田 赤田
 西 山田 梅田
佐藤 山田 梅田

名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?

Aベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

QEXCELで一覧表のデータを個別に印刷したい

こんにちわ。
質問させて頂きます。

EXCEL(エクセル)で一覧表になっているデータがありまして、それを1件1件『A4用紙1枚づつ』に印刷したい。
という発案で、色々調べたのですが上手くいかず・・・。

WORDからの差込印刷も試してみましたが、レイアウトや罫線などの設定も細かく出来ないので駄目でした。



ちなみに、一覧表のデータというのは顧客データでして、名前や住所・生年月日等が入っています。

一番理想的なのは、『EXCEL一覧表のデータ』を『別のシートに作成したテンプレート』にデータを飛ばし、テンプレートに一覧表のデータが反映される。
顧客データは数十人分のデータがありますので、印刷する際にはどのデータを印刷するかしないかを選択できる。
・・・以上が出来れば素晴らしいです。


どなたか、その方法・もしくはヒント的な事を知っている方が居ましたら教えていただけると有難いです。
宜しくお願い致します。

Aベストアンサー

Wordで様式をつくり差し込み印刷がいいと思いますが 

>WORDからの差込印刷も試してみましたが
 差し込み印刷は、エクセルデータをWordの様式に差し込みます。
 参考
  http://www.miyazaki-cci.or.jp/nichinan/pc/case92.html

なお、
>レイアウトや罫線などの設定も細かく出来ないので駄目<
とは具体的にどのようなところが設定できずにダメなのかを提示するといい案を教えていただけるのではないですか

QExcelで勤務シフト表を作りたいのですが、セルの設定方法がわかりませ

Excelで勤務シフト表を作りたいのですが、セルの設定方法がわかりません。

シート1の「シフト表」に勤務場所A・B・Cを入力するだけで、自動的にシート2の
「配置メンバー」へ配置場所 対 人名の表が並べ替えられて出力されるようにするには、
どのセルにどのような関数を設定すればよいのでしょうか?

マクロやVBAをなどを使わず、もっとも簡単にできる方法を教えてください。
(掲載画像は関数などを使わず、手作業で入力したものです。)

Aベストアンサー

こんばんは!
続いてお邪魔します。
関数の説明ですが、

前回の数式はこちらが勝手に10行目まで対応できる数式にしていましたので
データ量によって範囲指定の領域はアレンジしてください。

=IF($A3="","",INDEX(Sheet1!$A$3:$A$10,MATCH($A3,Sheet1!B$3:B$10,0)))

の前半部分 =IF($A3="","", は
単にエラー処理のための数式です。
A3セルが空白の場合は空白にしなさい!という意味で、
A3セル(複合参照しています 「$」マークがAの前だけについています)を
オートフィルで列方向と行方向にコピーした場合、
A列は固定して行番号だけが相対参照するようにしています。
すなわち、下へコピーするたびに、A3→A4→A5・・・と数式が変更します。
列方向へはいくらコピーしてもA列を参照することになります。

そして後半の
INDEX(Sheet1!$A$3:$A$10,MATCH($A3,Sheet1!B$3:B$10,0)) の部分は
A3セルが空白でない場合の数式になります。

Sheet1のA3~A10セルは絶対参照(「$」マークが列番号と行番号の前についています)
ですので、いくら列方向や行方向にコピーしても常にこのセルを参照します
この配置で、A3セルを参照しB3~B10セル
(複合参照です、このB$3:B$10は行を固定し、列は相対参照です。行方向にコピーしても3~10行目を常に参照します。
列方向に関してはオートフィルでコピーするにしたがって、列も移動しますので
コピーした一つ右となりの列の数式をみたもらうと
C$3:C$10 となっているはずです。
結局その行内でA3と一致する行番号(INDEX関数で範囲指定した行の何行目か?)を表示させています。

これで、画像のSheet2の1日はSheet1のB2~B10を参照し、3行目は「A」と一致する「鈴木さん」
4行目は「B」と一致する「佐藤さん」・・・
という表示になる訳です。
2日も同様になりますので、
Sheet1のC2~C10を参照し、「A」と一致するのは「田中さん」「B」と一致するのは「鈴木さん」・・・
といった具合です。

以上、大変長々と書いてしまいましたが
この程度で理解いただけたでしょうか?
どうも失礼しました。m(__)m

こんばんは!
続いてお邪魔します。
関数の説明ですが、

前回の数式はこちらが勝手に10行目まで対応できる数式にしていましたので
データ量によって範囲指定の領域はアレンジしてください。

=IF($A3="","",INDEX(Sheet1!$A$3:$A$10,MATCH($A3,Sheet1!B$3:B$10,0)))

の前半部分 =IF($A3="","", は
単にエラー処理のための数式です。
A3セルが空白の場合は空白にしなさい!という意味で、
A3セル(複合参照しています 「$」マークがAの前だけについています)を
オートフィルで列方向と行方向に...続きを読む

QExcelで入力したデータを他のシートにも反映したいです

Excelでシートに入力したデータだけを他のシートに表示させたいです・・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。

シート1
 Å列    B列 C列    
キャベツ     玉   1
りんご     個   2
オレンジ    個
バナナ     本   10
きゅうり    本
ニラ     Kg  20.5

シート2
 Å列    B列 C列
キャベツ     玉  1
りんご     個  2
バナナ     本  10
ニラ     Kg  20.5

↑のように。シート1に入力したデータを入力した行ごと表示させたいです。

Aベストアンサー

》 なにぶん初心者なもので…

関数を一切使用しない方法(フィルタオプションの設定)をご紹介します。

Sheet1
1   A    B   C
1 品名   単位 数量
2 キャベツ 玉    1
3 りんご  個    2
4 オレンジ 個
5 バナナ  本   10
6 きゅうり 本
7 ニラ   Kg  20.5
8

添付図は[フィルタオプションの設定]を開始する Sheet2 を示しています。
([データ]→[フィルタ]→[フィルタオプションの設定]の手順を実行します)


人気Q&Aランキング