アプリ開発ときどきアウトドア

主にJavaを使ったアプリ開発やトラブルシューティング等のノウハウ、キャンプや登山の紹介や体験談など。

1. システムエンジニアリング Excel/Word

Excelで月初日、第1週日、第2週日を算出する

投稿日:

grid

プロジェクト管理で毎年、毎月のタスクを管理するために、この辺の操作を行うためのExcel関数を調べたので記載しておきます。

Excelの関数式

ここでは、基本的に5営業日単位で管理したいことと、最初の営業日となる月曜日基準で考えます。
つまり、その月の最初の月曜日(第1月曜日)がある週を第1週とします。

  • 月初日(当日1日):
    =EOMONTH(A1,-1)+1

    EOMONTH関数で指定日付の月末日を取得できます。これを使って前月の末日を算出した後に、+1日して当月の1日を算出します。

  • 第1週(第1月曜日): ※A1に上記のように月初日が入力されている前提
    =IF(WEEKDAY(A1,3)>0, A1 + (7-WEEKDAY(A1,3)), A1)

    当月1日が月曜日の場合は、その日を第1週の開始日とします。
    当月1日が火曜日~日曜日の場合は、翌週の月曜日になるように1週間ずらします。この際、単純に+7日すると翌週の火曜日~日曜日になってしまうので、差分の日数を加算するようにしています。(例えば、1日が火曜日だった場合は+6日、1日が日曜日だった場合は+1日等)
    WEEKDAY関数の第2引数「種類」は、何曜日基準とするかの種類を指定できます。引数省略時、日曜日基準(日:1, 月:2, …, 土: 6)になっていますが、今回の用途では扱いづらいので、月曜日基準である3(月: 0, 火: 1, …, 日: 6)を指定しています。

  • 第2週以降:
    上記で求めた第1週の日付に対して、+7, +14, +21, +28することで、第2週以降を算出できます。
    例えば第2週(の月曜日)を算出する場合は次の通りです。

    =A1+7

上記の関数を使って算出したカレンダーの例です。



(adsbygoogle = window.adsbygoogle || []).push({});


(adsbygoogle = window.adsbygoogle || []).push({});

-1. システムエンジニアリング, Excel/Word

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

jQueryによるデフォルトボタンの実装

デフォルトボタンについて Webページ上でエンターキーを押した場合、そのページ上であらかじめ決められたボタンをクリックしたかのように処理を実行する仕組みがある。何らかのデータの検索を行うようなページは …

OfficeアプリのコントロールはPowerShellかVBAか?

Windowsサーバの監視のお仕事での話です。 月次で各サーバのパフォーマンスモニタのログファイル(.blg)が送られてきます。このデータ群から、各種のグラフや表を作成して、PowerPointでそれ …

開発環境のJBoss EAP7にリモートアクセス

開発中のものを他者に見せたり、問題が発生している開発者の開発物を参照するために、eclipse上で起動しているEAP7のWebアプリに別のPCからアクセスしたい場合があります。 このための手順を記載し …

CentOS7のマルチホーム化

サイトの存在を隠しつつも、sftpサーバを公開し、後輩と1G以上のファイルのやりとりしたい。 パブリック側のIPアドレスを教えてしまうと、どこのサーバだろうかとブラウザで開いたりするとサイトの存在がわ …

DB操作フレームワーク はJPA or mybatis?

開発に向けた準備で、開発標準を準備するフレームワーク(FW)チーム、それらを使って実装を行う業務チームが集まって、「DB操作を行うためのFWは何を使うか?」という協議になった。 FWチームは、FW・J …

プロフィール ゆっきーです。
都内でシステムエンジニアをやっています。
もっと詳細を見る