【マクロ不要】エクセルでシフト表を自動作成する方法

Sdílet
Vložit
  • čas přidán 25. 09. 2020
  • 労働基準法や、社員ごとのNG日程など、様々な条件を満たすスケジュールをExcelに組んでもらいましょう。
    ソルバー機能を使えば一発です。

Komentáře • 14

  • @KK-uh9vb
    @KK-uh9vb Před 3 lety +3

    高橋さん鬼連勤すぎて草

  • @user-cp3zc8cz9k
    @user-cp3zc8cz9k Před 3 lety +2

    高橋さん!何者なんだ!!

  • @user-vj5md6if5m
    @user-vj5md6if5m Před rokem

    こんにちわ
    ちょうど今、同じような表を作っており、大変参考になりました。
    質問ですが、例えばシフトの希望表が3段階(入れない、入ろうと思えば入れる、ここに優先的に入れて欲しい)になった場合はどのようにすれば良いでしょうか?
    もしそのような方法があれば教えていただけると助かります。

    • @nishimaki
      @nishimaki  Před rokem

      ご視聴ありがとうございます。
      方法は何通りかありそうです。例えばこの動画で言うと、4/4の佐藤さんの出勤が決まっているならば「E3=1」のような条件を追加する、
      または確実に入ることが決まっている日程はそもそもソルバー「変数セル」に含めない、といった処理になるかなと思います。
      (もっとエレガントな方法があるかもしれませんが。。。)

    • @user-vj5md6if5m
      @user-vj5md6if5m Před rokem

      @@nishimaki 返信ありがとうございます。
      確かにそれでしたら解決できますね。
      そこで追加の質問になります。
      確実に入るところについては、直接そのセルを1とするかわりに、if文で絞り込むことは出来ますか?
      つまり、ソルバーでの制限を加えるところでif文などが使えるか?ということです。例えば、「もし希望番号が2であれば、そこは必ず1となる」などです。
      ※コンピュータが入力するセル範囲に条件文を直接入れてみましたが、ソルバー実行後はその式自体がセル範囲から消えておりまきた。

    • @nishimaki
      @nishimaki  Před rokem

      ソルバーで絞り込むセルに関数は使用できません。そのため、本動画における「NG日程をシフト表に反映する処理」のような書き方が必要かと思われるのですが、「必ず0」「0 or 1」「必ず1」の3パターンで場合分けする上手い方法がすぐに思い付かず。。。

    • @user-vj5md6if5m
      @user-vj5md6if5m Před rokem

      返信ありがとうございます。
      やはりソルバーの中には条件式は埋め込めないのですね。

    • @user-vj5md6if5m
      @user-vj5md6if5m Před rokem +1

      代わりに現在、vbaでソルバーを操作してみたいと思い、試行錯誤しています。
      これが成功したら、また報告いたします。
      今回、ソルバーを使うことによって、最適化問題の理解を深めたいと思いました。
      先生の動画はとても参考になります。
      今後もよろしくお願いいたします。

  • @HT-sz7xh
    @HT-sz7xh Před 3 lety

    作成してみましたが、残念な事に変換セルが多すますと表示され、自動作成出来ませんでした。

    • @nishimaki
      @nishimaki  Před 3 lety

      セルの数が多すぎると計算処理に時間がかかり、エラーとなる事がございます。
      シフト表のサイズの大きさにもよりますが、お使いのコンピュータの性能によっても変わってきます。
      この場合、申し訳ありませんがスケジュールの期間を短くするなどしてご対応頂ければと思います。

  • @user-kt5gl3nk5c
    @user-kt5gl3nk5c Před 3 lety

    シフトが3交代制の場合はどう作成すれば良いですか?

    • @nishimaki
      @nishimaki  Před 3 lety +1

      方法は色々考えられますが、例えば、日付ごとに「朝・昼・夜」というセルを横に並べて作り、その3セルの合計値を計算するセルをどこかに設けておきます。
      それらのセルがすべて「必ず0か1」という条件をソルバーに追加すれば「1人1日1回まで」という処理が含められるかと思います。

    • @user-kt5gl3nk5c
      @user-kt5gl3nk5c Před 3 lety +1

      ありがとうございます。