• ベストアンサー

EXCELでの当番表入力

地元の育成会で役員を押し付けられました。いやになるほど書類を作らされています。 本当に困っているのが、EXCELで作る当番表です。E列に2021年度の年月日、F列に曜日が入っています。土日祝日と夏休み等の特別休暇の間には当番がありませんのでそういった日付を飛ばして、G列に班番号、H列に名前を自動で入れたいのですが、なんとかならないでしょうか。 班番号と名前の順番はA列とB列に用意しました。当番は70名ほどで来年の3月までループします。 なんとか入力だけでも簡易に済ませたいのですが、お力を貸して下さい。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1644/2494)
回答No.1

添付画像のようなものでしたら F列はF2に =TEXT(E2,"aaa") として下までコピーします。 G2に =A2 H2に =B2 として G3に =IF(OR($F3="土",$F3="日"),"",OFFSET(A$2,COUNTA(G$2:G2)-COUNTBLANK(G$2:G2),0)) として 右(H2)と下に必要なだけコピーします。 A列とB列は来年3月末まで対応できるようにループしておいてください。 画像の場合A14に=A2として右(B14)にコピーしてAB列をそこから下に必要なだけコピーしています。

verify
質問者

お礼

すごいです。打ち込む手間がなくなり、修正があってもすぐに対応できそうです。睡眠時間を確保できます。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • SI299792
  • ベストアンサー率48% (726/1508)
回答No.3

画像のような表でいいですか。 まず、Holiday というシートを作って、 https://excel-ubara.com/EXCEL/EXCEL910.html をコピペして下さい。タイトル等はいれず、A1から日付にして下さい。 これに、夏休み等の特別休暇を追加して下さい。(面倒かもしれませんが) 人数が必要なのでC2を使います。 C2: =COUNT(A:A) E2: 開始日付 F2: =E2 セルの書式設定、ユーザー定義「aaa」 G2: =INDEX(A:A,MOD(ROW()-2,$C$2)+2) H2: =INDEX(B:B,MOD(ROW()-2,$C$2)+2) E3: =WORKDAY(E2,1,Holiday!A:A) F2~H2をF3~H3へコピペ。 E3~H3を下へコピペ。 休日をの祖いたカレンダーの例です。 休日も表示して、そこは空白にしたい場合、補足に書いて下さい。

verify
質問者

お礼

いろいろな方法があるのですね。ありがとうございます。助かりました。感謝しております。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Excelでの処理には関数のほか、VBAでの処理、というのがあります。 それでやってみる。 ーー A2からA32まで日付を入れる。 B2セルに=TEXT(A2,”aaa") 下方向に式を複写 。曜日文字1文字が出る。 A列の日で、祝日のB列(曜日文字)を「祝」に変える 。 3月20日など。 L列に当番者の名を入力 し、リストを作る。 そのうち免除者はM列に「免」を入れる 例 氏名 山田 木村 鈴木 免 大野 田中 中野 ’ーーー 標準モジュールに Sub test01() Set sh = Worksheets("Sheet3") sh.Activate m = 2 n = 2 '--- p1: '--祝、土、日をスキップ If Cells(m, "B").Value = "祝" Then m = m + 1 If Cells(m, "B").Value = "土" Then m = m + 1 If Cells(m, "B").Value = "日" Then m = m + 1 '--免をスキップ If Cells(n, "M").Value = "免" Then n = n + 1 '--当番セット Cells(m, "C") = Cells(n, "L") '--土日祝でない 両方+1行 m = m + 1 If m > 30 + 1 Then Exit Sub '30は月中日数 n = n + 1 If n > 7 Then n = 2 '7は当番候補者人数 GoTo p1 End Sub コピペするとか。 ーーー 上記を実行すると、 A、B、C列は 2021/4/1 木 山田 2021/4/2 金 木村 2021/4/3 土 2021/4/4 日 2021/4/5 月 大野 2021/4/6 火 田中 2021/4/7 水 中野 2021/4/8 木 山田 2021/4/9 金 木村 2021/4/10 土 以下略。 ーー 関数式を工夫する場合に比べて、 もし手作業で作業をやる場合の手順から、類推して、ロジックを考えて、VBAが組める場合がある。 本件もそのタイプの処理法でしたもの。 質問者にはお呼でないだろうが、考えてみたもの。

verify
質問者

お礼

ありがとうございました。こういったプログラムを書いて提供していただける方を本当に尊敬しております。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの当番表を作りたいのですが

    似たような質問があると思いますが、なかなか合ったものが無かったので質問させていただきます。 1か月の活動内容が記載されたカレンダーがありまして、A列に日付が1か月分入っています。 B列に当番の名前を入れたいのですが、毎日では無くて飛び飛びになっています。 具体的には、火・木・土・日だけしか当番の名前は入りません。 月次の予定表を兼ねているので、火・木・土・日だけの表示にする事はできません。 当番は10人で、1年間同じ順番で回ってきます。 大した数ではないので今まで直接打込んでいましたが 何か自動でできるような便利な方法がありましたら教えてください。 もう一つ、C列には、管理者が入ります。 管理者は火・木担当と、土・日担当がいます。 管理者は、曜日固定でいつも同じ人が入ります こちらも何か便利な方法があれば教えてください。 よろしくお願いします。

  • 当番表をexcelで作成したい

    トイレ掃除の当番カレンダー表をexcelで作成したいです。 「3日づつ」交代で「8人」で回す~等の決まりで 関数やVBAなどを使って作成したカレンダーに 自動で名前が表示されるようにできないでしょうか? 「」部分は変動する場合があります。 土日祝日は休みです。 1列の物ではなく普通の市販されているような7×6マスのカレンダー表記です。

  • 地域のゴミ置場清掃当番について

    地域のゴミ置場清掃当番について 1年ほど前から1人暮らしでアパートに住んでいます。 先日、初めてドアに回覧板のようなものがかかっていました。 中を見ると「△区◯班ゴミ捨て場掃除当番表」という趣旨の紙が入っていました。 そこには約30名ほどの名前が書かれており、1番の人から順番に掃除をした日を名前の横に書いて、次の人に回しているようです。 私の名前も中盤に書いてあり、名前の横には、なぜか過ぎた日付が書かれていました。 (ちなみに、私より後の番号の人はまだ日付が書かれていない状態です。) 回覧板には「△区◯班」と書いてあるため、おそらくアパートが実施している当番ではなく、自治体が行なっているものと思われます。 入居時に掃除当番があるような説明を受けてはいませんが、別に掃除をするのは構いません。 でも困ったことがあります。 ・どこのゴミ捨て場か分からない ・いつ掃除すれば良いか分からない ・回覧板の次の人がどこに住んでるか分からない そこで誰かに相談したいのですが、隣の人とも面識はなく、地域の自治体に入っていないため、班長が誰なのか連絡先すら分かりません。 このような場合、市役所に問い合わせるべきでしょうか?それともアパートの経営者でしょうか? 回答よろしくお願いします。

  • Excelで当番表を作成したい

    Excel2019使用 初心者です。 ネット上にある様々な回答を参考にし作成していますが、1つ問題が起きたのでご回答いただけますと幸いです。 現在、平日のみをローテーション化した当番表を作成しています。(ファイル添付) ・土日祝は月によって順番がバラバラなので手入力です。 ・祝日は別シートで「祝日」という名前で設定しています。 ・I11:J11のテーブルは「担当者表」という名前をつけています ・セルJ4~ 担当者のメンバー変更は頻繁に起こるため、毎月シート上で変更しています。 ・初日担当番号は手入力です。 ・条件付き書式で、その月に該当しない日程は表示しないように、また入力すべきセルが黄色に色がつくようにしています。 ・A4=N3-(N5-1) ・B4=A4+1 ・A5=IFS(MONTH(A4)<>$K$1,"",WORKDAY(A4-1,1,祝日)=A4,INDEX(担当者表[氏名],MOD(NETWORKDAYS($A$4-1,A4,祝日)+$N$1-$N$5,$N$6)+1),TRUE,"") 問題は、「1月と10月のみ、初日担当番号に指定した者ではなくその次の者から始まってしまう」ということです。要するに、1番(あさん)を指定しているにも関わらず、2番(いさん)から始まります。 1月と10月以外は問題なく動きます。 ズレてしまう二つの月は、月の始めが第一日曜日という共通点があり、それが理由ではないかと思うのですが…。 また、A5セルの+$N$1-$N$5,$N$6)部分が理解できていませんが、間違っていたとしても1月10月以外は正しく動くのでどうしたら良いのかが分かりません…。 ここまで読んでくださってありがとうございます。 不足している情報もあるかと存じますが、ご教示下さい。

  • エクセルで作成したカレンダーに「当番の名前」を自動的に入力する方法をお

    エクセルで作成したカレンダーに「当番の名前」を自動的に入力する方法をおしえてください。 毎月エクセルで朝礼当番表を作っています。 土、日、祝がお休みです。 たとえば、1日に最初の人の名前を入力すると休みの日はぬかして、 順番に当番が入力されるという関数があれば教えてください。 1行目に「日にち」 2行目に「曜日」 3行目に「当番者名」 と簡単な表です。 リストからコピペしたら間違えてしまいました。 オートフィルで入力しようかと思ったのですが、休みの日を抜かすのが面倒で。 よろしくお願いします。

  • エクセル 関数 各人の6日毎にある当番日の表示方法

    エクセルで社員の名簿と当番表を作っていますが、今ひとつわかりません。 Aの列に各社員の名前を入力して、Bの列に各社員それぞれの次の当番日(日付)を表示させたいのです。 当番は各々6日に1回必ずあり、エクセルを開いたその日以降の当番日を表示させたいと思います。 today関数を使ってみても、よくわかりませんでした。 どなたか教えてください。 よろしくお願いします。

  • Excel 条件に従い自動的に文字入力するには

    よろしくお願いします。 A列に1年分の日付、 B列に休日(国民の祝日("元旦"や"成人の日"など)と"夏季休暇"と"年末年始休暇"が文字列で)が入力されています。 C列に自動的に"休日"と"休暇"が入るようにしたいのですが、 そのルールとして 木曜日と日曜日と国民の祝日を"休日"にし、 夏季休暇と年末年始休暇を"休暇"にしたいのです。 C列にはどのような数式を入れればいいでしょうか。

  • Excelでの集計表の作り方

    Excelで1ヶ月の集計表を作っていますがどうしてもわからない事があります。まず縦に1ヶ月分の日付を入れて横に純売上(B列)と消費税(C列)と総売上(D列)の表を作りました。日付は月を入力すると自動で変わる様にして月末も30日までの月は最後のセルも空白になる様に、土日祝は曜日の文字の色も変わります。その後が問題なんですが、曜日毎の集計を自動計算するだけならSUMIF関数ですぐに出来るんですが日祝の合計を1つのセルに集計させたいんです。月によって祝日の曜日も変わりますしどうしてもその方法がわかりません。説明が下手で申し訳ありませんがわかる方がいればお願いします。

  • エクセルで関数を使って予定表を作りたいのですが・・・

    エクセル2000で予定表を作成する課題があります。 C3に西暦、D3に月、A6~A36まで日にちを入力しています。 (1)B6~B36まで曜日、C列には祝日の何の日かを表示させるにはどうしたらいいですか? (2)土曜、日曜、祝日は日付、曜日の文字を赤色にするにはどうしたらいいですか? (3)常に2か月分のカレンダーを表示させるにはどうしたらいいですか? お願いします。

  • 底値表を作る際のエクセルの計算式について

    エクセルで買い物の底値表を作っています。それぞれの商品について、底値を出しているスーパーの名前を底値の横の列、その横に曜日を出したいと思っています。 1行目がスーパーの名前(6つ)です。 それぞれのスーパーの下(2行目)には、値段、日付、曜日、備考の4項目を入れています。 3行目以下に商品名(A列)と、それぞれのスーパーマーケットで売っている値段、日付などを入力します。 各商品の底値を、商品名と各スーパーの値段などの間のB列にMIN関数で返しました。 その底値の商品を売っているスーパー名を1行目から参照してC列に、曜日(それぞれの商品と同じ列にあります)をD列に反映させるには、どんな計算式を使えばよいでしょうか。

このQ&Aのポイント
  • TM-U295(レシートプリンタ)の印刷についての方法をご教授ください。
  • TM-U295を使用して測定結果の位置や文字間隔を調整して印刷する方法について教えてください。
  • お手数ですが、TM-U295(レシートプリンタ)の印刷方法についてご教授いただけますか?測定機器からのデータを印刷する際に、測定結果の位置や文字間隔を調整する方法を知りたいです。
回答を見る

専門家に質問してみよう