参考になる書籍などありましたら勉強したいので差し支えなけれが教えていただけますか? 6 025 上田   C       B     X      A 6 桜井    休     早2    遅2   … =IF(A4="","",INDEX(Sheet1!$D$4:$AH$100,MATCH($A$1,Sheet1!$C$4:$C$100,0),MATCH(A4,Sheet1!$D$2:$AH$2,0))&"") 2 関本    遅1    早1    早1   … 日付はaaaの表示形式になっており上記の内容から関数での定休日の方の「休」を右の表に自動で入力出来ますでしょうか? COUNTIFの関数にこんな使い方があったのに驚きです!  した後、シート1のC1をクリックする。   A  B    C      D      E      F 【拡大図】 最後のご質問とさせていただきますのでよろしくお願い致します。, 「書籍 FX」に関するQ&A: FXの損失を確定申告する場合、パソコン購入費用とか書籍購入費は関係ないのですか?, 回答ありがとうございます! 6 025 上田 CBXABBXBAAABBXBCXCCXAAAAAXXXAA お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。, Excel関数を使って作業効率を考えてます。調べてはいますが、関数などいまいちなところがあり質問させ, Excelで作成した文章を印刷する際、漢字変換でなく文字作成した漢字が印刷の際に文字化けしてしまいま, セル入力からにユーザー定義関数を使う際、関数内でのwookbooks.openメソッドの挙動について. Set sh1 = Worksheets("Sheet1"): Set sh2 = Worksheets("Sheet2") 理想としても添付画像のような感じです。(赤枠部分にシフトを表示) 藤川 早3     狩野 早3    鳥谷  早3  4  123 山田 2009/4/13    A  B   C いろいろとムシのいい話を書いて申し訳ありませんが、当方vbaの初心者で、このような場合、何から手を付けて良いのか分からず、困っております。どうか、なにとぞ、ご教授下さい。, Sheet 1 勤務表(4月) 氏名ー日ーデータ(Xの行あり) と、入れて下にコピーしています。, いつも大変お世話になっています。 A4セル(セルの表示形式はユーザー定義から d としておく)に 関本 遅1     新井 遅1  新井  早2 月別シフト表をメインに曜日別固定シフト表へ月変更してもそれに合わせて反映させることできないでしょうか?, 画像が小さくてよくわかりませんが、根本的な質問です 1 No 氏名  2009/4/1 2009/4/2  2009/4/3 2009/4/4    Sheet1 前者から後者の形式に関数で表を構築替えも難しい。 一例です。 8  123 山田 2009/4/27 そのまま(2行が選択されている状態)で下へ2行ずつフィル&コピー! =DATE(Sheet1!C1,Sheet1!E1,1) 125田中2009/4/1 今回は、いよいよシフトを組んでいく作業に、出来るだけ余計な頭を使わないよう、自動で計算できる部分を増やしていきましょう。, 本記事では、シフトを組む上で必要な勤務日数や休みの数を自動で数えられる方法を紹介します。, まずはシフト表に勤務予定を入力する際、選択項目から簡単に選んで入力できる仕組みを作りましょう。, 皆さんの職場で決まった表記の仕方があると思いますので、今回ご紹介する例をヒントに、職場にあった表記に直して活用してみて下さい。, はじめに、勤務表にどんな入力をするのかを、それぞれの職場に合わせて作成しておきます。, これは私が実際に見たことのあるシフト表を参考に、例として作成したものです。上図のように、空白が日勤という意味で示している職場もたくさんありそうなので、今回あえてこの例にしてみました。, 特に3つ目は本記事を説明する上で重要となります。手入力だと、マークによって全角・半角の間違いなど、わずかなヒューマンエラーが起きやすくなります。, 続いて、シフト表に戻り、実際に今作った勤務表マーク一覧から選べるように設定していきます。, まずは勤務予定を入力するセルを全て選択します。「データ」タブにある「データの入力規則」を選択します。, 「元の値」と書いてある欄の右側に、上矢印のようなボタンがあるので、それを選択します。, 用意した勤務表マーク一覧から、シフト表に使うマークの部分を全てドラッグして囲みます。すると、データの入力規則にそのセル範囲が自動で入力されます。, 最後に、OKを選択します。これでシフト表はマウスでクリックして選択するだけで入力可能になりました。, ここまで準備ができたら、いよいよ本題です。今回は1つの数式だけ使って計算できる内容のものを紹介していきます。, ただし、今回紹介するやり方は「色々あるやり方のひとつである」ということだけ予め断っておきます。, なお、計算するセルの場所は、皆さんの任意の場所で構いません。今回は上図のようなシフト表の横ですぐ確認できる場所を考えて作ってみました。, 土曜日の数を計算したい場合は、曜日欄に「土」と書いてある数を数えるやり方で計算します。, まず、皆さんが作ったシフト表の曜日欄を確認します。1日の曜日がC1、31日の曜日がAG1となっています。, 土曜日だけを数える=COUNTIF(1日の曜日のセル:31日の曜日のセル,”土”), つまり、=COUNTIF($C$1:$AG$1,”土”)※必ず$マークが2個ついた状態(絶対参照)にして下さい。, 同様に、日曜日の数、つまり曜日欄に「日」と書いてある数を数える計算式は、以下のようになります。, 日曜日だけを数える =COUNTIF(1日の曜日のセル:31日の曜日のセル,”日”), つまり、 =COUNTIF($C$1:$AG$1,”日”) ※必ず$マークが2個ついた状態(絶対参照)にして下さい。, 以上の計算から、土日の両方を数えたい場合は、これらの計算式を足し算すれば良いわけですね!, 土日の数を数える=COUNTIF($C$1:$AG$1,”土”)+COUNTIF($C$1:$AG$1,”日”), 続いて、営業日(平日、稼働日など色々な呼び方はあります)の計算です。土日祝が関係ない職場でも、この計算によって仕事へ行く日数が計算されることが殆どではないかと思います。, ただし、この時点で前回の記事で紹介した祝日リスト( 祝日がいつなのかを別シートで用意する )を作っていない方は、そちらの準備を先に終えてからやってみて下さい。, はじめに、その月の1日が入力されているセルの場所を確認します。今回の場合は、C3です。, 営業日を数える=NETWORKDAYS(1日の日付のセル,EOMONTH( 1日の日付のセル ,0),祝日), つまり、=NETWORKDAYS($C$3,EOMONTH($C$3,0),祝日), この計算式は、開始日(1日)と終了日(EOMONTHはその月の最終日を計算してくれる)、そして祭日(除外して欲しい日にち)を指定するだけで、営業日が計算できちゃう便利な関数です。, 今回の例では、2019年10月を元に計算しています。営業日は21日と自動で計算されました。, 先ほど土日だけの数を数えましたが、祝日の数も入れないと意味がないケースが殆どかと思います。, 復習ですが、1日の日付はC3に入力されていましたね。そして、営業日の計算は今回AH7に入力しています。, 土日祝を数える=DAY(EOMONTH(1日の日付のセル,0))-営業日を計算したセル, なので、「31-21」で答えは10ですね!このように、他の計算との合わせ技で土日祝を簡単に計算することが出来ました。, 今回の例では、出勤日はシフト表では空白(何も書かない)で表すということにしましたね。もし、出勤日を何らかのマークで表している方は、次項の「休みの数を自動計算する」を参考にしていただければと思います。, 単純にスタッフ1人に対する空白の数を数えるだけなら簡単です。しかし、月によって日数は異なり、存在しない日付は空白になります。, 例えば11月ですと、31日は存在しませんよね?この場合、31日の列は空白になりますが、勤務であると言う意味ではなくなります。このように、同じ空白でも数えたい空白と数えたくない空白が出てきてしまいます。, そこで、先ほど計算した「土日祝の数」と「営業日の数」を使って、うまくその問題を解決することが出来ます。, 勤務日数(空白)を数える =COUNTBLANK(1日の勤務予定のセル:31日の勤務予定のセル)-(31-(営業日+土日祝の数)), つまり、今回はC4~AG4のシフトについて調べ、営業日はAH7、土日祝の数はAH9に計算してあるので、以下の式になります。 =COUNTBLANK(C4:AG4)-(31-($AH$7+$AH$9)), やっていることは、=「指定した31日分の中の空白の数」ー「31から営業日と土日祝の数を足した数を引いた数」, そろそろ混乱してきましたか?よくわからない方は、何も考えず真似して入力してみて下さい。, 次は休みの数を数えてみましょう。前項で「勤務の日は空白じゃなく何か書いてある」という方も、こちらのやり方を参考にしていただけたらと思います。, 例えば、とある人の「年」と書かれた個数を数えれば、年間休日の日数が計算出来るという場合、以下のような式で計算できます。, 年間休日を数える=COUNTIF(1日の勤務予定のセル:31日の勤務予定のセル,勤務表マークの書かれたセル), 上の式の緑の部分に直接「”年”」と書いても計算できますが、せっかく上図の勤務表マーク一覧を作成したので、これを参照するようにしましょう。, 本連載記事の3回目まで終えた時点での勤務表サンプルです。皆さんの職場に合わせて自由に改変していただいて構いません。, 今回は色々組み合わせて計算していったので、難しく感じる方もいらっしゃったのではないかと思います。, 当ブログのコンセプトは、完全に理解しなくても真似すればとりあえず出来ることを目標にしていますので、まずはそれぞれの職場に合わせたシフト表作りに少しでも導入して頂ければ幸いです。, 本シリーズでは、見やすいシフト表を時間をかけず少しでも簡単に作れるよう記載しています。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 作業療法士として医療・介護分野にそれぞれ携わる。 Excelのバージョンは2010になります。 関数の回答が出る...続きを読む, Sheet 1 勤務表(4月) 純粋に別のシートに自動的に表示したいのであれば、 ーー 色々と勉強して見ます。 3124佐藤ABBx 1 赤星     早1    夜勤入り  夜勤明け … ごめんなさい。肝心の式の表示が抜けておりました。 2 関本    遅1    早1    早1   … 併せて日付がない所は文字が表示されない様に出来ればと・・・。  1月7日 sh2.Cells(k, "A") = sh1.Cells(cl.Row, "B") 5 128 清水   C       B     X      A リンクしたいA1セルをクリックしてEnterすると、 数式をいれるのが苦手なら、 世のあらゆる仕事の無駄を排除するため、 の3元になっている表を且つ(氏名・行単位で)重複が有る休日(データではX)を抜き出すのはむつかしい。   をクリックします。 図の様に曜日が日付に対し=で関連付けられている場合は上記の関数では空欄になり求める事が出来ません。 という数式を入れ、D2・D3セルを範囲指定 → D3セルのフィルハンドルで月末(31日)までの 2 123 山田 ABBBAXXAAAAAXXBBBBBXXAAAAAXXAA   A  B    C      D      E      F で実行。 シフト表や勤怠管理表の作り方やエクセルテンプレートを紹介しました。 手書きでシフト表を作成している店舗なども多いと思いますが、エクセルでテンプレートを作ってしまえば自動的に日付や曜日が作成できるので、毎月シフト表を印刷するのが楽になります。 11 124 佐藤 2009/4/5 結果 コラム 「なぜ勤務表マーク一覧を作るのか、そのメリットは?」 マークが変更になっても、ここを変えるだけで全てに反映される; マークが増減しても、ここを変えるだけで他の設定を変えなくて済む; マークの入力ミスがなくなり、結果勤務日数や休みを数える際に計算漏れがなくなる ーーーー Sheet 2   Sheet 3    Sheet 4 の形式なら、例えば「imogasi方式」(Googleで照会のこと)のようなやり方で何とかできる。 1  NO 氏名 日日日日日日日日日・・・・・・ Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、 =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), 条件付き設定で土、日、祝日に色を付けたカレンダーを作っています。 1 赤星     早1    夜勤入り  夜勤明け … よろしくお願いします。, clam_chowderさん、こんにちは。 そこで質問ですが、祝日の場合には「=」の後の数字をいくつで設定するのでしょうか? 6  123 山田 2009/4/20 >日付がそれぞれ自動で変更するのですが上手くいきません。 =IF(MONTH($C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A2)/2-1))=Sheet1!$E$1,$C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A2)/2-1),"") 逆に振替休日などはちゃんと入れておく必要があります。, エクセル 月別シフト表を曜日別固定シフト表へ反映させたいのですが。 現状、A1に月、C1に年を入力し、それをもとにA4から縦に日付を、B4から縦に曜日を表示させています。 赤星 早1     関本 早1  関本  早1  表示されるようになります。 1 No 氏名  2009/4/1 2009/4/2  2009/4/3 2009/4/4    A15セルには次の式を入力し、下方にオートフィルドラッグします。 End Sub ※No(=社員No)、氏名、休みの日を別シートに表示したいのです。 という数式 7  123 山田 2009/4/21 土曜日・・・=WEEKDAY($A1)=7 曜日によって出勤するかしないかがほぼ決まっているので、曜日に応じて休日か出勤かを自動で入力したいのですができますか? 5 ブラぜル  夜勤明け 休     遅1   … 私の説明不足でした。申し訳ございません。   http://www.geocities.jp/office_inoue/excel/eq21.htm, こんばんは。 ただ、毎月日付のセルの位置も変わってしまう為、連動して変わるようにするにはどうすればいいのか困っています。 9 藤川    早3    休     夜勤入り …   シート1にあるコピー元のセルを範囲選択して、 D2セル(セルの表示形式はユーザー定義から d としておく)に 3  123 山田 2009/4/7 =IF(MONTH(DATE($C1,$E1,COLUMN(A1)))=$E1,DATE($C1,$E1,COLUMN(A1)),"") まずSheet1の日付をシリアル値で操作します。         4/1      4/2    4/3 … 曜日の色の付け方はいろいろあるようですが、今回は 名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?, データは入力されているセルの範囲を「A1:C4」とすれば、 例)シート1のC1に5を打ち込んだら、   ・ 7 鳥谷...続きを読む, 回答No3です。 出勤日の記号は英数字で、最大5桁まであります。 4 125 田中 BXXAAAAAXXBBBBBXXAAAAAXXAABBAA 2  123 山田 2009/4/6  表示されるようになります。 D3セルに 日付はシリアル値でしょうか?単純な数値でしょうか? A  B   C DEFGHIHIJKLMNOPORSTU  西 山田 梅田 1No氏名2009/4/12009/4/22009/4/32009/4/4 添付の画像見えますか? 10 124 佐藤 2009/4/4 End If Excelでシフト作成をする際にもっと効率よく出来たらなと試行錯誤しているのですが定休日の方の「休]を関数を使い自動で入力出来たらなと思っています。 この度はありがとうございました。, エクセルのセルでシフト表を作っているのですが、それを別のシートに反映させたいのですが、どのようにすれ, エクセル 当番表の作り方 エクセルで土日祝日を除いた、平日のみの当番表を作りたいです。 カレンダーま, (Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?, エクセルでシフトを作成しています。 文字での定休日の求め方は出来たのですが曜日がセルの日付に=で結ばれている場合の求め方はどうやればよろしいのでしょうか? としておきます。(このC1セルは今後手を加えません) という数式を入れ、セルの表示形式はユーザー定義から   シート2のD2~D7にシート1で打ち込んだものが自動で表示される 4 125 田中   X       X     A      A という数式 1ヶ月のシフト表から休みの日を抽出したいのです。     A     B     C      D… また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。, こんばんは。 出勤日の記号は英数字で、最大5桁まであります。 2.1列全てコピーしたい場合。 8 狩野    遅2    早3    休    … Sheet2のA1に、これと同じ数値を表示するには、 名前は本名ではないが、仕事など必要に応じて個別に公表します。, 職場の見やすいシフト表作りを時短で作るためのシリーズ第2弾。年月を入れるだけで土日祝に合わせて色も完全自動で変わる仕組みを解説しています。, 本記事では、Excelを使用して簡単に自動で計算ドリルが作れるテクニックをご紹介しています。, リハビリなどで使用されるカレンダーぬり絵の作成をほぼ自動化して、準備時間を劇的に短縮する技をご紹介しています。【無料ダウンロード付き】, エクセルで患者情報管理表を作る練習のシリーズ第2弾です。   念のためにリンク貼り付けを図解しているURLを載せておきます。 例)例)シート1のC1~C5に何かを入力したら、 の3元になっている表を且つ(氏名・行単位で)重複が有る休日(データではX)を抜き出すのはむつかしい。 ↓の画像で上側がSheet1で各日のシフトを入力し、下側のSheet2に表示させるとします。   シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」  した後、シート1のC1をクリックする。 =IF(MONTH(DATE($C1,$E1,COLUMN(A1)))=$E1,DATE($C1,$E1,COLUMN(A1)),"") また、どのような方法で変更させているのでしょうか? Dim sh1, sh2 As Worksheet 佐藤 山田 梅田 sh2.Cells(k, "C") = sh1.Cells(1, cl.Column) 【縮小図】 それであれば、人と曜日毎の表を作ってそこからシフト表に表示をさせた方が良さそうです。 質問者には現在は無縁だろうが、読者のこともありVBAで上げておく。 ※ Sheet1のC1・E1を変えるだけでSheet2のカレンダーは連動するようにしています。 2123山田ABBB 3 124 佐藤 ABBXXAAAAAXXBBBBBXXAAAAAXXAABB  1月11日 度々申し訳ございませんが再度お聞きしたい事がございます。  1月5日 2.1列全てコピーしたい場合。 のような感じにしたいです。 申し訳ありません。どなたかお力をお貸しください。 12 124 佐藤 2009/4/11 関数は第2番目、第3番目・・の該当列を見つける関数が無いからだ。 ※ このままではセルの左上にエラーチェックオプションのマークが表示され 5128清水CBxA     A     B     C      D…  そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に 625上田CBxA D2セル(セルの表示形式はユーザー定義から d としておく)に =ROW(A3) (4月1日)    (4月2日)    (4月3日) 5分でできるエクセル給食当番表を紹介します。 作り方 たとえば、14人学級で給食当番は7人で2チームにするとします。 【回転盤の作り方】 1.エクセルを開き、縦にa~g、その隣の列に1,1,1,1,1,1,1と入力します。 2.その2列を選択状態にし、「挿入」… (会社の創立記念日や夏季・冬季休暇など) エクセルでシフト表を管理すると、日付を変更したり、土日欄に色をつけたりしなくてはならず、手間がかかります。 こうした場合に、関数や各種エクセルの機能を使うと、多くの作業を自動化することができます。 例えば、以下のような作業です。   シート2のD2にシート1で打ち込んだ5が自動で表示される D3セルに Sub test01() A5セルに 原因が数式にあるのか、データにあるのか、入力さえできなかったのか、失敗からある程度質問の意図も読み取れる可能性があります。, エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。  1月6日 関数の回答が出るかどうか? sh2.Cells(k, "B") = sh1.Cells(cl.Row, "C") 休みの日の記号は常に【X】です。(=Xを抽出したいのです) For Each cl In sh1.Range("d2:G" & d) 'D2:Gx範囲の全セル検査 ・祝日の色を変更します。  どちらが「月別シフト表」で、どちらが「曜日別固定シフト表」でしょうか? B4が水の時、N4に1800-2100を入力したいです。, 人によっては曜日毎に勤務時間が異なるって事ですね?