• ベストアンサー

EXCELでシフト表を作ってるのですが・・・

人数が多く、人数分シフト表を配りたいのです。 ただ、ほかの人の名前がわからないように各個人のシフト表を作りたいのです。なので、名前が載ったシフト一覧を全員に配るということはできません。 私が作ったシフト表から、たとえば「澤田」とあるところを抽出して、別のシートの同じフォーマットの表に○を付したいのです。 そうなると人数分、シートが必要になりそうですが、1枚の同じフォーマットの表があるシートを使い回してもよいと思います。印刷し終わったら、別の名前の人を入力すると、時間部分に○がついて、それを印刷したら、別の人の名前を入力し、前の人の履歴を消す・・・ やりたいことは具体的にわかりつつあるのですが、 なにかよい方法がありましたら教えてください。 VBAを使うのは大丈夫です。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

具体例を、補足要求したい。 こういう業務の問題は過去の経験から2つ3つある。 (1)エクセルの表形式のシートを「単票形式」(1人1枚B5とかA4ぐらいに)でに印刷したい。 元データの方はは表形式ですから縦方法に多人数のデータが載っているわけです。 (2)(1)でなく、(1)では印刷した紙の枚数(人数分になるから)が多くなり、もったいないので、短冊形の帳票を配りたい。たとえはさみで、各人分を切り分ける手数がかかろうとも。 むしろ短冊形式の帳票でも、もらった人は文句を言わない・言わせない。 (3)(1)(2)とは観点が違うが、自動化して印刷したい。 >印刷し終わったら、別の名前の人を入力すると、とあるから、質問者は印刷自動化には拘っていないのかもしれない。 ●このうち質問の重点はどれですか。 ●今作っているエクセルの一覧表の形式(1人分の行と列のデータ中身例) を書かないと、具体的に答えられませんよ。 質問者の風からして、具体的に答えてもらわないと、進まないのではないですか。 VBAなら、スキルがあれば、ほぼ自由になる。 関数でも、セミ自動化ぐらいはできそうな見当です。

その他の回答 (6)

  • subri
  • ベストアンサー率28% (16/56)
回答No.6

ものっすごく簡単な答えで申し訳ないのですが、 シフト表が、列ラベルが日付で行ラベルが名前だった場合、 全員の分○がついた表を作成し、 印刷に必要ない人を行、または列を「表示しない」にしてみてはいかがでしょうか。 シフト表自体そのような単純なものではなければ、 各名前に通し番号をふって、 印刷用の表に数字を入れることによってHLOOKUP、またはVLOOKUPで行または列を抽出してはどうでしょうか。 この、「次々に数字を入れて印刷してゆく」作業だけをVBAでやれば簡単だと思います。

  • higupapa
  • ベストアンサー率39% (48/121)
回答No.5

VBAを満足に使えませんが、似たようなこと(かな?)をやっています。 私の場合、指定された様式があり、それに200人分ほどを入力して提出するといったものですが。 定められた様式(シート1)に入れるAさんのデータは一行の予め決めた列(シート2の)に入力しておきます。 BさんやCさんも同様に。 各行に[フォーム]の[グループボックス]と[オプションボタン]を貼り付け、最下行にオプションボタンで選択された行のデータを抽出するための行を作成。 あとはシート1の該当する欄にシート2の各項目をリンク貼り付けしておけば。 VBAなしの私でもこんな感じでやってます。

  • poohron
  • ベストアンサー率59% (574/971)
回答No.4

こんなのいかがでしょう? 1. シフト表を普通に作成し、時間部分にその時間のシフトの人の名前を入れる 2. シフト表の名前の入っている部分はすべて文字色を白にする 3. 同じく名前の入った部分に条件付き書式を設定する   ※条件付き書式は「セルの値が」「次の値に等しい」「=$A$1」、書式設定色=黒 4. A1セルに「澤田」と入力すると、白文字だった「澤田」がすべて黒文字になる   (他の名前は地色と同じ白なので印刷されない) この方法だと時間部分に○ではなく「澤田」という名前になりますが。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

VBAなら、オートフィルタを使って一人ずつ抽出しても構いませんが、人数や名前が変わると面倒ですよね。 なので、別の印刷シートに行単位でコピーして自動的に印刷していけばよいのでは? それをデータがなくなるまで繰り返すだけ。

  • 12m24
  • ベストアンサー率23% (193/817)
回答No.2

もうひとつ  VBAが大丈夫でしたら、「フィルタ」よりも自由に条件を設定できるようになると思います。

  • 12m24
  • ベストアンサー率23% (193/817)
回答No.1

 印刷したものだけを渡すのでしたら、メニューの「表示」>「改ページプレビュー」というところをクリックすると、ページの区切り位置を自由に設定することができるようになります。このようにすれば、あなただけが全体を見渡すことができるようになりますから、まず問題がないのではないかと思います。  また、作り方をうまくすれば、「フィルタ」という機能を使って任意の条件で(たとえば、「誰と誰を一緒に」など)自由に設定することができると思います。

関連するQ&A

  • シフト表作成

    アルバイトや社員の勤務時間を入力するシフト表を作成しようと思ったのですが、機械にうといためできませんでした。そこでシフト表をダウンロードできるサイトを知っている人、もしくは、シフト表を持っていてそれを私にあげてもいいという人がいましたらご協力おねがいいたします。  ・横棒グラフ ・縦に名前が入力できて、横が30分ごとに区切れる時間 ・一番下には総人数、総時間が自動計算で記載される というスタンダードなものです。うまく説明できなくて申し訳ございませんが、よろしくおねがいいたします。

  • エクセルでシフト表を作る(Excel 2007)

    説明がうまくできず、わかりにくかったらすみません。 このたび初めて職場のシフトを作ることになったのですが、 フォーマットは会社から渡されたものがあるのですが、 もう少し見やすいものにしたく改良したいと思っています。 フォーマットには、1ページ目にスタッフの名前、日付等を入力すれば 2ページ目以降のシフト表に自動的に表に名前や日付が反映されるようになっており、 あとはセルに*印(*=30分)を入力していけばその*印の数だけ 足し算されて勤務時間がカウントできるようになっています。 (例えば、9時~17時まで勤務の場合、*印を16個入力します) 私が改良したいのはこの*印の部分で、 見た目が*印の羅列のため、非常に見にくいのです。 この部分を例えば■等に変えれば、 16個*印が並ぶのではなく、帯のように見えて 一目でわかりやすいと思っています。 *印でフォーマットに登録されているところを ■等に置き換えたいという意味です。 そして、ワンクリックでセルに入力できるようにしたいのですが、 そのような方法はあるのでしょうか? あと、わがままなのですが、 ただセルを塗りつぶすと、それもやってみたのですが スタッフ同士の帯が全部つながって逆に見にくくなるので あくまで、*印を、セルに対して小さめの■に置き換えたいのですが、 どながか詳しい方がおられましたら、 ご教授ください。 よろしくお願いします。

  • Excelで シフト表作成中。(長文で

    Excelで、アルバイトのシフト表作りをしています。 あまり詳しくなくて、本を見たり このサイトで検索して作っていたのですが、 みなさんのお力を お借りできたらと思い、質問させていただきます。 今 作ってるのが、↓下のような シフト表なんですが、   A   B   C    D 1     2    3 ID       111   222 4 名前      梅   竹 5 1日  火   14   16 6 2日  水   16 7 3日  木       15 8 4日  金   14           この↑シートに それぞれの出勤時間を入力すると、 その入力した人だけを (別のシートの)その日付けの出勤表 (のセル)へ、自動的に データーが移るようにしたいと思っています。   A  B C D C 1 ID 2007年5月1日(火) 2 ( ) (     ) 3 ( ) (     ) うまく 説明出来ませんが すみません。 どなたか、アドバイスを よろしくお願いしたします。    

  • excel シフト表を元に、ポスト配属表を作成

    会社からいただくシフト表を元にして、 excelのシフト表(印刷用ベースのため表示変更不可)にポスト番号を打ち込むと、 個人作成した日付別のポスト配属表のようなものに 名前が自動挿入されるようにしたいのですが? ※その日のチーム編成を一目で把握したい。 例・・・ シフト表:D4に「1」と打ち込む →  ポスト配属表:S4に氏名の「山田 太郎」が自動挿入される。 上記に見合った関数式があればご教授ください。 ※シフト表・ポスト配属表・・・日付欄には表示される書式は変えていますが              共に「2016/10/11」のようにそれぞれ入力してあります。 何分、excel初心者で只今関数を学習中。VBA、マクロはさっぱりです。(ToT;)ゝ 説明不足があればご教授ください。

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

    Excelで勤務シフト表を作りたいのですが、セルの設定方法がわかりません。 シート1の「シフト表」に勤務場所A・B・Cを入力するだけで、自動的にシート2の 「配置メンバー」へ配置場所 対 人名の表が並べ替えられて出力されるようにするには、 どのセルにどのような関数を設定すればよいのでしょうか? マクロやVBAをなどを使わず、もっとも簡単にできる方法を教えてください。 (掲載画像は関数などを使わず、手作業で入力したものです。)

  • Excelで勤務管理と座席表作成をしたい。

    仕事で勤務管理と座席表作成を行っています。 勤務はシフト勤務で勤務に応じた座席表も作っています。 現在座席表はほぼ手入力でやっており非常に手間がかかっています。 1か月分まとめて作っていますが非常に面倒なので勤務表を貼り付けると座席表ができるようにしたいのですがなかなか制限があり苦慮しています。 よい方法があればご教示願います。 シフト表 1列目に日付(1日~末日) A列に名前があり、A~Gの勤務シフトがある。(全部で20人) 座席表 全部で10席。固定の席はなく出勤者に応じて決めています。 シフト表に応じて座席表に人を埋めたい。 使用ソフト:Excel2003(ただしセキュリティー制限でマクロ、VBAが使えません。もちろん制限解除はできません。) なので関数を駆使しないといけないです。 シートは別になってもOKです。 仮にSheet2のA1~A10に名前が埋まるようにしたいです。

  • シフト管理表の作成でわからないことが・・・

    エクセルの関数やマクロはほぼ初心者で、わからないことだらけなので教えてください。 シフト管理表で、半月ごとのシフト表(作成用)で、日単位のシフト表(自動作成)が出来るようにしたいのです。 半月シフト      a     b    c     d     e  ・・・(人) 1/1 1~5        2~3        2~5 1/2 1~5   2~5        2~3 1/3 2~5   1~3  2~3 上記ように作成したら日単位で 1/3 b 1~3 l c 2~3 l a 2~5 l のように日単位で別シートに自動作成できるようにしたいのです。 (dとeは日単位には表示されずに、出勤者のみ時間が早い順に表示) フォーマットは決められており、現在手入力の為ミスが多く時間もかかり・・・ わかりにくかったらごめんなさい もしかしたら簡単かも?しれないけどまったくわからないのでお願いします。

  • シフト表の印刷方法

    現在、あるイベントのシフト表を作成しています。 縦軸が人の名前で、横軸が時間。 横軸の時間帯ごとに各自仕事が決まっていて、仕事の種類によってセルが塗りつぶされています。 そこで、スタッフ数が多いので、個人に分かりやすいよう「一人ひとりのシフト表」をつくりたいのですが、印刷方法が分かりません。 つまり、横軸は1マス分で良いのですが、元の表でいう横軸の内容を縦軸に印刷したいのです。 このような印刷方法がありましたら、教えてください。 よろしくお願いしたします。

  • エクセルでシフト表作成をしたい

    30人規模のシフト表作成をエクセルでやっています。 月間シフトを作成して、日別シフトも作成しているんですが、これを同時にできないかな、という相談です。 例えば、月間シフトで10月14日にAさんが7時から16時まで、Bさんが10時から19時までのシフトだとすると、日別シフト表の方にAさんとBさんの勤務時間を棒線などで表示させて、各時間帯で人が多いとか少ないとかを視覚的に把握したいのです。 こういった事はエクセルVBAで可能でしょうか。 エクセルでなくても、こういうソフトがあるとかでも教えて頂けたら嬉しいですが、自宅PCだけでなく職場のPCでも使いたいので、可能ならVBAで自作をしたいです。

  • エクセルで早遅のシフト表を作りたいです

    こんにちは。 使用環境はエクセル2003です。 仕事場使用での1ヶ月単位の早遅のシフト表を作りたいと思っていますが、以下のようにフォーマットが出来ればいいなと思います。 ちなみに9時~14時と14時~19時までのシフトです。 ・縦に月の日付け、横に名前(4名) ・作成時にシフト時間が単キー入力で9時~14時と表示される ・各名前の最下段に早遅の回数がそれぞれ自動で表示される ・各名前の最下段にトータルの勤務時間が自動で表示される 今手書き計算で作成してますので、かなり時間がかかっています。 上記の事が出来ればかなり時間が有効に使えます。 詳しい方おられましたら、ぜひご教授頂きたいです。 よろしくお願い致します。

専門家に質問してみよう