プロジェクト管理VBAなどのテクニック-その4

元に戻る

設計進捗データーと進捗度入力の計算例の基礎編

ここでは、各入力日付を月の1日の日付に変換することで、より単純に進捗率を計算する例を紹介します。 計算手法を判りやすくするために、
一回だけの実行(ひとつのマイルストーン)で各設計図書の進捗が100%になる例題にしています。
 
予定・実行進捗データ入力表

PMG41


月の1日に変換する表の説明(B列からK列まで)

B列からG列が進捗データと各タスクの完了予定日と完了実行日の入力欄です。

H列:F列の日付データをその月の1日の日付に変換しています。(9行目の関数:=IF(F9="","",DATE(YEAR(F9),MONTH(F9),1)))
I列:G列の日付データをその月の1日の日付に変換しています。(9行目の関数:=IF(F9="","",DATE(YEAR(F9),MONTH(F9),1)))  

注)月締めの日が月末ではない場合、例えば、翌月10日の場合、F又はG列の日付から10日を減じることで締め切り日の調整をします。

J列:カテゴリー毎の予定進捗値(率)をSUMIFで集計するための条件で、C列のコードとH列の日付を文字結合させたデータです。
K列:カテゴリー毎の実行進捗値(率)をSUMIFで集計するための条件で、C列のコードとI列の日付を文字結合させたデータです。  

注)SUMIF関数はひとつの条件しか扱えません。そのため、上記の文字結合は複数の条件をひとつの条件に変換しています。
SUMPRODUCT関数は複数条件を扱えて便利ですが、このような配列関数を多用すると極端に重たくなり、データを1つ変えただけで
計算完了まで数分待たされることになります。
プロジェクト管理進捗計算では数百から数千の関数を使うことになり、SUMPRODUCTは使わないことを推奨します。
 
コード・各月毎に集計するSUMIF関数用の条件表

pmg42

コード・各月毎に集計するSUMIF関数用の条件表の説明(M列からY列まで)
M列からY列:
各カテゴリーと各月毎に、条件に合う部分の進捗値だけを集計するためのSUMIF関数用の条件設定です。
AA列からAM列の「実行進捗度の計算出力表」と同じレイアウトです。(SUMIF式をコピー・貼り付け出来るようにするためです。) 
文字結合関数でデータを作りますが、作成後に値に変換することを推奨します。(少しでも軽くするためです。)
 
実行進捗度(%)の計算出力表

pmg43


実行進捗度の計算出力表の「予定」欄の説明(AA列からAO列まで)

AB9の関数「=SUMIF($J$9:$J$23,N9,$E$9:$E$23)/$E$5」を以下説明します。

$J$9:$J$23:検索列範囲(N8セルの条件に合う行を検索する範囲)
N9:"C2009/07/01"の検索条件です。コードが”C" で日付が"2009/07/01"の条件を結合しています。
$E$9:$E$23:集計する費用の値がある列範囲
以上纏めますと、$J$9:$J$23の列範囲に”C2009/07/01”がある行のE列の値を合計します。
/$E$5:費用総計で割ることで、各カテゴリー毎・月毎の進捗率(%)が計算されます。

実行進捗度の計算出力表の「実行」欄の説明(AA列からAO列まで)


AC9の関数「=SUMIF($K$9:$K$23,O9,$E$9:$E$23)/$E$5」
$K$9:$K$23:検索列範囲(N9セルの条件に合う行を検索する範囲)
他は上記の「予定欄の説明」と同じです。
 
以上の例では、カテゴリー毎の進捗が判りません。各カテゴリー毎の費用小計値を求めて、その総計値で割れば、カテゴリー毎の進捗を計算できます。
 

元に戻る  メインに戻る