2018.09.27みなさん、こんにちは!フジタニ(@libartweb)です。スケジュールは場合によっては「営業日」の計算が必要で、土日祝日を考慮しなきゃいけないことが多々あるかと思います。場合は翌営業日に実施など・・・エクセル関数を使いこなすことができれば、土日の判定はもちろん、祝日まで判定することが可能です。毎月の定例作業などを表示するスケジュール表をエクセルを使って自動で作成することもできます。連載目次:エクセルVBAで営業日を考慮したスケジュール表を自動で作成するエクセルで祝日を判定するには工夫が必要エクセルは土日を判定することは可能なのですが、祝日の判定は標準の機能では不可能です。土日の場合のみであれば以下のWEEKDAY関数の戻り値でその日付が何曜日か?を判定することができます。WEEKDAY関数は日付が何曜日かを判定する関数です。WEEKDAY(シリアル値,[種類])引数として与えた日付が何曜日か?をデフォルトでは1(=日曜日)から7(=土曜日)の数値で返します。引数「種類」はデフォルトで1です。他には以下の戻り値の種類があります。基本、デフォルトでOKです。6:日しかし、祝日に関してはこういった関数を使用した「戻り値」で判定することは不可能です。祝日を判定する機能を実現するには、一工夫が必要となってきます。祝日はデフォルトでは判断できません、そこでWORKDAY関数を使用します。WORKDAY関数は引数として与えた日付から土日を除いた日数を計算することができます。そこから指定した日にち(祝日)を除いた日付を返します。WORKDAY関数の書式は以下の通りです。〇月〇日の5営業日後を求めたい〇月〇日の前営業日を求めたいなどといった土日祝日を考慮した営業日の計算を簡単に行えるのがこの関数の特徴です。これをエクセルVBAなどでコーディングすると非常にややこしいことになるので、この関数の一番の利点として使うことができます。前準備として祝日の一覧表を作成するWORKDAY関数は指定の日にちを除外することができます。そこで、祝日の一覧をWORKDAY関数の除外日として扱うようにしましょう。エクセル上に祝日一覧表を作成する必要があります。WEB上に祝日の一覧が配布されていますので、それをコピーするのが一番早いでしょう。教えて!HELPDESKExcelで利用できる2020年〜2022年までの祝日一覧をご用意しました。最新の天皇誕生日(2/23)、国民の休日、スポーツの日(旧体育の日)にも対応しています。office-qa.comこのように、とりあえずエクセル上のどこでもいいので祝日一覧表をコピーしましょう。WORKDAY関数で営業日を求める実際にWORKDAY関数を使用して営業日を計算してみましょう。基準となる「開始日」を設定し、その何営業日後(前)を求めたいかを「日数」に指定します。今回の例は「前営業日」なので開始日からマイナスとなります。「-1」を指定してください。最後に、「除外する日」として事前に作成しておいた祝日一覧を範囲指定します。その結果、土日祝日を考慮した「営業日」の算出が可能です。開始日を「-1」し、その翌営業日を求めることで、開始日が土日祝日の場合のみ翌営業日を求めることができます。上記例だと、9月20日の翌営業日を求めていることになります。開始日2018年9月21日は金曜日で平日なのでそのまま「開始日」が返されていますね!(2018年9月20日の翌営業日が返されています)では試しに、「開始日」を土日祝日にして求めてみましょう。「開始日」2018年9月22日は土曜日なので、その翌営業日である2018年9月25日が返されています。翌営業日の場合は12営業日後の場合は25営業日後の場合は5など、求めたい日付に従って任意の値を「日数」に指定してください。以上、エクセルで営業日判定を実現するWORKDAY関数の使い方についてお伝えしました。日付を扱う業務や資料は想像以上にたくさん存在します。WORKDAY関数を賢く使うことで、そういった業務の自動化も進みます。今回は関数単体での使用方法をお伝えしましたが次回はWORKDAY関数をVBAと組み合わせるにはどうすればいいか?をシリーズでお伝えしていきます。実際にVBAとWORKDAY関数を組み合わせたスケジュール表の自動作成の方法を紹介します。実用的に使いこなしていただけます。お楽しみに!連載目次:エクセルVBAで営業日を考慮したスケジュール表を自動で作成するWORKDAY関数とエクセルVBAを組み合わせ、営業日を考慮したスケジュール表を自動作成する方法をお伝えします。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。【エクセルの条件付き書式を活用しよう】その仕組みがわかる最初の一歩Excelの条件付き書式をマスターするシリーズ。方法を紹介しています。【エクセルVBA】シートの追加も削除も、名前さえ変えさせない!VBAでブックの保護を設定する方法エクセルVBAのProtect/Unprotectメソッドを使ったブックの保護設定と、解除の方法をご紹介しています。このメソッドをvbaでの処理のためシートの追加や削除をされたくないエクセルツールに仕込んでおけば、ユーザによる勝手なシートの追加や削除、名前の変更を防ぐことができるようになります。【脱エクセルVBA初心者】PDFでの出力とファイル名の指定保存そして閉じる脱エクセルVBA初心者向け、請求書を自動で作る際の様々なテクニックをお伝えしていますが、今回はエクセルVBAでワークブックを別名で保存しつつ、PDF出力して閉じる方法についてお伝えします。【エクセルVBA】リストボックスのRowSourceプロパティの値を変動させてみよう!エクセルのユーザーフォームを作って使うことを目標に、連載記事でコントロールのメソッドやプロパティ、イベントをご紹介しています。今回は、リストボックスのRowSourceプロパティをVBAで指定することで、他のコントロールの入力値によってリストボックスに表示する値を変動させる方法をご紹介しています。「初心者でもわかるエクセルVBAのクラスモジュール」というテーマでシリーズ連載をしております。今回は、エクセルVBAで自作コレクションの要素を取得するItemプロパティの作り方をお伝えします。「初心者でもわかるエクセルVBAのクラスモジュール」をテーマにシリーズでお送りしております。今回は、Itemメソッドを使ってエクセルVBAでコレクション化したインスタンスを取り出す方法についてお伝えします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Apps2PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Apps2PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。開発者プログラムとは、またどうして期限切れになったのか2020.02.222020.02.22ノンプロ研の福岡で初イベント「ノンプロ研無料体験@福岡」を開催しました!2020.02.14GASのV8ランタイムとRhinoランタイムのログと実行のUIの違いについて比較&解説2020.02.092020.02.09新構文をさっそく試そう!GASのプロジェクトをV8ランタイムに切り替える方法2020.02.082020.02.12Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。