• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:選択した項目は表示しないでシフト表を作成したい)

エクセルでシフト表を作成する方法

kagakusukiの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 作業用Sheetを使用する方法です。  今仮に、Sheet1のB1からAF1にかけて1日~31日と入力されていて、Sheet1のA2以下に、作業内容が入力されていて、作業内容の下に 公休の人 と入力されているものとし、Sheet2を作業用Sheetとして使用するものとします。  まず、Sheet2のA2以下に全スタッフの名前を入力して下さい。  次に、Sheet2のAG2セルに次の数式を入力して下さい。 =IF(OR(INDEX($A:$A,ROW())="",COUNTIF(OFFSET(Sheet1!B$1,,,MATCH("公休の人",Sheet1!$A:$A,0)-1),INDEX($A:$A,ROW()))>0),"",ROW())  次に、Sheet2のAG2セルをコピーして、Sheet2のAH2~BK2の範囲に貼り付けて下さい。  次に、Sheet2のAH2~BK2の範囲コピーして、同じ列の3行目以下に、スタッフの人数を上回るのに充分な行数になるまで貼り付けて下さい。  次に、Sheet2のAG2セルに次の数式を入力して下さい。 =IF(ROW()>COUNT(AG:AG),"",INDEX($A:$A,SMALL(AG:AG,ROW())))  次に、Sheet2のB1セルをコピーして、Sheet2のC1~AF1の範囲に貼り付けて下さい。  次に、Sheet2のC1~AF1の範囲コピーして、同じ列の3行目以下に、スタッフの人数を上回るのに充分な行数になるまで貼り付けて下さい。  次に、以下の操作を行って下さい。 Sheet1のB2セルを選択   ↓ メニューの[データ]をクリック   ↓ 現れた選択肢の中にある[入力規則]をクリック   ↓ 現れた「データの入力規則」ウィンドウの「設定」タグをクリック   ↓ 「入力値の種類」欄をクリックして、現れた選択肢の中にある「リスト」をクリック   ↓ 「元の値」欄をクリックしてから、「元の値」欄に次の数式を入力する =OFFSET(INDIRECT("Sheet2!A1"),,COLUMNS($B:B),MATCH("゛",OFFSET(INDIRECT("Sheet2!A:A"),,COLUMNS($B:B)),-1))   ↓ 「データの入力規則」ウィンドウの[OK]ボタンをクリック   ↓ Sheet1のB2セルにカーソルを合わせて、マウスを右クリック   ↓ 現れた選択肢の中にある[コピー]をクリック   ↓ 入力規則を設定するセル範囲を選択   ↓ 選択範囲を示す黒い太枠の内側にカーソルを合わせて、マウスを右クリック   ↓ 現れた選択肢の中にある[形式を選択して貼り付け]をクリック   ↓ 現れた「形式を選択して貼り付け」ウィンドウの中にある[入力規則]と記されている箇所をクリックして、チェックを入れる   ↓ 「形式を選択して貼り付け」ウィンドウの[OK]ボタンをクリック  次に、Sheet1において、A列で 公休の人 と入力されているセルの右隣のセルに、次の数式を入力して下さい。 =INDEX(Sheet2!B:B,ROW(1:1))  次に、そのセルをコピーして、同じ行のC列~AF列の範囲に貼り付けて下さい。  次に、 次に、Sheet1のA列に 公休の人 と入力されている行の、B列~AF列の範囲をコピーして、同じ列の下方に、スタッフの人数を上回るのに充分な行数だけ、貼り付けて下さい。  以上です。

ainex3332
質問者

お礼

一夜にして数件の回答ありがとうございます。 直ちに勉強しながら試してみたいと思います。 私のレベルでは多少時間がかかると思いますが 数日の後ご報告させてもらいます。 本当にありがとうございました。

関連するQ&A

  • エクセルでシフト表から点呼表を作成

    運送会社になります。現在、4日ごとに1日の公休日を入れ1日づずずらして20通り(Aパターン~Tパターン)のシフト表を毎月ごとに作成しております。(sheet1) このシフト表から日々の出庫点検表(sheet2) を作成したいのです。出庫点検表はA1~A20に車両No.が入っており、B1~B20にその日の担当者名が入るようにしたいのですがどうすればよいのか教えて下さい。それぞれ1車両ごとに2名の担当者が決まっております。時には担当者2名の公休日が重なる日もありますのでその場合は空白で構いません。

  • Excel 集計表の作成

    Excelの集計表の作成について教えてください。 Accessから出力したデータ(日別、作業別、その件数)の一覧表を作りたいと思っています。 今のところ、このような状態になっています ↓↓      A    B    C     1   日付  作業名  件数 2  1日   作業A     100 3  1日   作業B    100 4   2日  作業A   100      コレをこのような状態に変えたいんです ↓↓     A      B       C      D 1  日付   作業A  作業B  作業D 2 1日    100   100    50   3 2日    100   100    50 (行→日にち  列→作業名) ボタン1つで出来るようにしたいのでマクロ、VBAを使用したいです。 どなたかお知恵を貸していただけないでしょうか。

  • 項目ごとの対比表のグラフ作成したい

    毎日データを取っていますがエクセルでグラフを作成し一日事の対比をしたいのですが。内容は A項目 A'項目 B項目 B'項目 C項目 C'項目これを対比する傍線と折れ線を使用したグラフを作成したのですが、項目毎に重なる様にしたいが、ずれて表示されます。AとA'が重なり合う様に表示したいのですが、どのようにすれば良いか教えて下さい。エクセル2000です。

  • 選択したsheetの内容を表示

    「sheet1」の「A1」で(sheet名)をドロップダウンから選択すると 「sheet1」の「B列」に、選択したsheetの「B列」の内容が表示されるようにしたいのですが、 1.「sheet1」の「B列」に入る式。 2.「sheet1」の「A1」にsheet名のドロップダウンを表示するためのリストを   sheetが増える毎に自動的にリストに加わるようにする方法。 を教えて下さい。 WinXP Excel2003です。

  • Excelでシフト表作成‥

    Excelで来年の基本シフト表(縦軸:日付・横軸:担当者)を作成しています。 月間労働時間177h、休日8日、1日のシフトパターン(A:7.45h・B:7.20h)の月で、 出勤時刻はA・B共に6:00~9:00の30分単位、 退勤時刻はシフトパターンと出勤時刻によって異なります。 シフトパターン列・出勤時刻列は、ドロップダウンリストからそれぞれ選択できるよう設定してあり、 できるだけ、担当者に入力の手間をかけないよう、 「シフトパターンと出勤時刻を選択すると、  退勤時刻列にシフトパターンと出勤時刻に応じた退勤時刻が設定される」 というようなことがしたいのですが、関数(数式)の設定で出来ますでしょうか? Excel特に関数や数式設定が苦手なので、何方かご教示いただけましたら幸いです。 バージョンはExcel2003です。よろしくお願いいたします。。

  • Excelで該当する項目を抜き出す

    A列の項目(A~H)に対応する個人名(あ~く)について、その個人名に対応するすべての項目を表記するにはどのようにしたら良いでしょうか、ご教示のほど宜しくお願いいたします。 表が間違っていたら申し訳ありません。Excel2007です。

  • outlook本文から項目を選択してexcelに落とす

    いつも、メールでデータをもらっているのですが メールからエクセルに落とす作業が大変なんです。 VBAで、エクセルにデータを落とし込むことが出来るのでしょうか? ちなみに、仕分けのルールでフォルダーわけもしております。 たとえば、Aのフォルダーに来たメールの内容をピックアップする。 ピックアップする、本文の内容として、商品名、売値、利幅、在庫など 基本的に決められたカテゴリーになります。 エクセルで、少しVBAを触ることが出来るくらいなので サンプルソースなどあればすごく助かります。 バージョンはoutlook2007でexcel2007です。

  • 【VBA】EXCELブックを開かずにシート名を取得したい

    VBAに関する質問です。 EXCELブックを開かずに、シート名を取得する方法を教えてください。 http://officetanaka.net/excel/vba/tips/tips29.htm ↑を見たのですが、具体的にどのようにしたらよいのかわかりません。 よろしくお願いします。

  • vbsで選択ダイアログを表示したいのですがやり方が分かりません。教えて

    vbsで選択ダイアログを表示したいのですがやり方が分かりません。教えてください。 以前は以下のようにしてたのですがUser~ってところがvistaでは動作しないようです。 また、既存の処理はできれば変えたくないので以下の関数内で選択されたファイル名を返却できるようにするにはどう変更したらよいでしょうか? Function AAAA() Dim objDialog Set objDialog = CreateObject("UserAccounts.CommonDialog") objDialog.Filter = "Excel File|*.xls" objDialog.InitialDir = "C:\" intResult = objDialog.ShowOpen If intResult = 0 Then Wscript.Quit // ファイル名を返却 End Function

  • Excel2007で他のシートを参照して自動で表を作成したいと思ってい

    Excel2007で他のシートを参照して自動で表を作成したいと思っています。 Sheet1には下記のようなシフトを作成しています。   A    B   C   D   E   F 1     1日  2日  3日  4日  5日 2 Aさん  1   2   1   4   1 3 Bさん  2   休   4   1   4 4 Cさん  1   4   2   1   1 5 Dさん  4   1   1   2   2 Sheet2からはシート名が1日 2日となっています。 それぞれのシート毎にその日付のシフトを並び替えて作成したいと思っています。 【1日のシフト(Sheet2)】 1 Aさん 1 Cさん 2 Bさん 4 Dさん 【2日のシフト(Sheet3)】 1 Bさん 2 Aさん 4 Cさん 休みのスタッフは表示しないように作成したいと思っています。 エクセルでこの様な作業は可能でしょうか。