محاسبه ضریب وزن (W.F) و پیشرفت وزنی فقط با هزینه، وزن و ارزش — در اکسل و MSP

در بسیاری از پروژه‌های صنعتی، برنامه‌ریز وزن (W) هر بسته کاری را می‌داند، بودجه یا ارزش (V) آن را در دست دارد و هزینه واقعی (C) را هم از سیستم مالی می‌گیرد — اما درصد پیشرفت فیزیکی (P) تک‌تک فعالیت‌ها را ندارد. سؤال کلاسیک کنترل‌کننده پروژه دقیقاً همین‌جاست: با همین سه عدد (C، W، V) چطور ضریب وزن (W.F) و در نهایت درصد پیشرفت وزنی کل پروژه را حساب کنیم؟ این یادداشت یک پاسخ عملی می‌دهد — هم در اکسل و هم در Microsoft Project.

تعریف مختصر متغیرها

فرمول پایه

۱) محاسبه ضریب وزن (W.F)

اگر وزن‌دهی بر مبنای اهمیت فعالیت‌هاست:

W.F_i = W_i / ΣW

اگر ترجیح می‌دهید وزن را بر مبنای پول (ارزش) توزیع کنید — که در پروژه‌های نفت، گاز و پتروشیمی رایج‌تر است:

W.F_i = V_i / ΣV

در هر دو حالت، مجموع تمام W.Fها باید دقیقاً ۱ (یا ۱۰۰٪) باشد؛ این خودش یک چک اعتبارسنجی ساده است.

۲) پیشرفت وزنی وقتی P (پیشرفت فیزیکی) داریم

Weighted Progress = Σ ( W.F_i × P_i ) × 100

۳) وقتی فقط C داریم (سناریوی این پست)

وقتی درصد فیزیکی نداریم، از نسبت هزینه به عنوان برآورد پیشرفت استفاده می‌کنیم:

Cost Ratio_i = C_i / V_i

Weighted Progress ≈ Σ ( W.F_i × (C_i / V_i) ) × 100

یعنی هر فعالیت را به اندازهٔ «سهم هزینه‌ای‌اش از بودجه» پیش رفته فرض می‌کنیم، سپس با ضریب وزنش وزنی‌اش می‌کنیم.

هشدار مهم: نسبت هزینه لزوماً برابر پیشرفت فیزیکی نیست. خرید تجهیزات (لاشهٔ پول پیش از کار فیزیکی)، تورم، و فعالیت‌هایی با رفتار غیرخطی (مثل راه‌اندازی) باعث انحراف می‌شوند. نسبت هزینه را «برآورد محافظه‌کارانه» بگیرید و با حداقل یک چک فیزیکی یا مایل‌استون ترکیب کنید.

مثال عددی

فرض کنید پروژه ۵ بسته کاری دارد:

فعالیتWV (میلیون ریال)C (هزینه تاکنون)W.F = W/ΣWنسبت هزینه C/Vسهم وزنی‌شده
A20200800.200.400.080
B303001200.300.400.120
C15150600.150.400.060
D25250500.250.200.050
E101001000.101.000.100
جمع10010004101.000.410

پیشرفت وزنی تخمینی پروژه: 0.410 × 100 = ۴۱٪. نکتهٔ آموزنده در فعالیت D پیداست: فقط ۲۰٪ بودجه‌اش خرج شده (عقب‌تر از بقیه) و فعالیت E کاملاً تمام شده — دقیقاً همان چیزی که یک عدد واحد «میانگین هزینه کل» (۴۱٪) پنهان می‌کرد ولی وزن‌دهی آن را شفاف نشان داد.

روش سلسله‌مراتبی: وزن نسبت به سطح بالادستی (WBS)

در پروژه‌های واقعی، وزن‌دهی تخت (همه فعالیت‌ها نسبت به کل پروژه) خوانایی کمی دارد و با ساختار WBS همخوانی ندارد. روش حرفه‌ای این است که وزن هر گره را نسبت به سطح بالادستی خودش (والد) تعریف کنیم — یعنی مجموع وزن فرزندان هر گره دقیقاً ۱۰۰٪ از آن والد باشد.

این دقیقاً همان چیزی است که مد نظر شماست: اگر وزن نسبت‌به‌کل‌پروژه (همان «ارزش وزنی پروژه») و قیمت/ارزش (V) را داشته باشیم، وزن نسبت‌به‌والد را از این دو به‌دست می‌آوریم:

W.F↑_i  =  V_i / V_parent

' یا معادلش — اگر وزن پروژهٔ خودِ گره و والد را داشته باشید:
W.F↑_i  =  W.F_proj(i) / W.F_proj(parent)

' و وزن پروژهٔ نهاییِ گره = حاصل‌ضرب وزن‌های نسبت‌به‌والد در مسیر تا ریشه:
W.F_proj(node)  =  W.F↑_node × W.F↑_parent × … × W.F↑_root

مثلاً اگر وزن پروژهٔ بسته الف را دارید (۰٫۱۸) و وزن پروژهٔ والدش — مثلاً «اجرا» (۰٫۶۰) — را هم دارید، وزن نسبت‌به‌والد = ۰٫۱۸ ⁄ ۰٫۶۰ = ۰٫۳۰ خواهد بود؛ بدون اینکه نیازی به جمع‌کردن کل پروژه باشد. اگر به‌جای وزن پروژه، فقط قیمت (V) را دارید، همان رابطهٔ اول کافی است: ۰٫۳۰ = ۳۰۰ ⁄ ۱۰۰۰.

مثال دوسطحی

فرض کنید پروژه دو WBS بالا دارد: «مهندسی» (وزن پروژه ۰٫۴۰) و «اجرا» (وزن پروژه ۰٫۶۰). زیر «اجرا» سه بسته با قیمت‌های زیر قرار دارد:

بستهوالدV (میلیون)W.F↑ (نسبت به والد)وزن پروژه
الفاجرا300300/1000 = 0.300.60 × 0.30 = 0.18
باجرا200200/1000 = 0.200.60 × 0.20 = 0.12
جاجرا500500/1000 = 0.500.60 × 0.50 = 0.30
جمع زیر اجرااجرا10001.000.60

توجه کنید: زیر «اجرا» جمع W.F↑ها دقیقاً ۱ است (یعنی ۱۰۰٪ والد)، و جمع وزن پروژهٔ فرزندان (۰٫۱۸ + ۰٫۱۲ + ۰٫۳۰ = ۰٫۶۰) دقیقاً برابر وزن پروژهٔ خودِ «اجرا» می‌شود. این خاصیت در هر سطح تکرار می‌شود و چک‌کردن را ساده می‌کند — کافی است در هر گره مجموع فرزندانش ۱ باشد.

پیاده‌سازی در اکسل

جدول را به این شکل بچینید (سرستون‌ها در سطر ۱، داده‌ها در سطرهای ۲ تا ۶):

ستونمحتوا
Aنام فعالیت
BW (وزن)
CV (ارزش/بودجه)
DC (هزینه واقعی)
EW.F (ضریب وزن)
Fنسبت هزینه
Gسهم وزنی‌شده

فرمول‌ها (برای سطر ۲، سپس کشیدن به پایین):

E2: = B2 / SUM($B$2:$B$6)
F2: = D2 / C2
G2: = E2 * F2

' درصد پیشرفت وزنی کل (مثلاً در G7):
G7: = SUM(G2:G6) * 100

' نسخه مبتنی بر ارزش (اگر وزن‌دهی بر مبنای پول باشد):
E2: = C2 / SUM($C$2:$C$6)

نکته: علامت $ دور محدودهٔ SUM ضروری است تا وقتی فرمول را به پایین می‌کشید، مخرج همیشه کل ستون باقی بماند. ستون G را روی «درصد» فرمت کنید تا عدد نهایی خواناتر شود.

نسخه والد‌نسبت (در اکسل)

یک ستون «والد» (متن) اضافه کنید. وزن نسبت‌به‌والد را با SUMIF می‌گیریم — یعنی قیمت گره تقسیم‌بر مجموع قیمت همه فرزندان همان والد:

H2 (والد): متن، مثلاً "اجرا"
I2 (W.F نسبت‌به‌والد): = C2 / SUMIF($H$2:$H$6, H2, $C$2:$C$6)
J2 (وزن پروژه):        = I2 * (وزن پروژهٔ والد از جدول سطح بالا)

' چک: جمع I برای هر والد باید ۱ باشد
= SUMIF($H$2:$H$6, "اجرا", $I$2:$I$6)

اگر وزن پروژهٔ والد را از قبل دارید (همان «ارزش وزنی پروژه»)، نیازی به جمع کل پروژه نیست؛ فقط در امتداد مسیر WBS ضرب کنید.

پیاده‌سازی در Microsoft Project (MSP)

MSP به‌تنهایی عددی به نام «W.F» ندارد، اما با فیلدهای سفارشی (Custom Fields) و Rollup می‌توانید دقیقاً همین محاسبه را درون خود برنامه داشته باشید و در گزارش‌ها بیاورید.

گام ۱ — فیلدهای پایه

گام ۲ — جمع‌کردن وزن در سطح پروژه (Rollup)

روی فیلد Number1 کلیک راست → Custom Fields → بخش Calculation for summary rows را روی Sum بگذارید. حالا Task خلاصهٔ پروژه (Project Summary) مقدار ΣW را نشان می‌دهد.

گام ۳ — فرمول ضریب وزن (W.F)

یک فیلد فرمولی جدید (مثلاً Number3) با این فرمول تعریف کنید:

Number3 (W.F) =
[Number1] / [Rollup of Number1 at project summary]

عملی‌ترین راه: چون MSP در فرمول به‌سختی «مجموع کل» را مستقیم می‌دهد، مقدار Number1 را در Task خلاصهٔ پروژه (که حاصل Rollup است) به عنوان مخرج به کار ببرید. نتیجه برای هر فعالیت همان W.F_i می‌شود.

گام ۴ — نسبت هزینه و سهم وزنی‌شده

دو فیلد فرمولی دیگر اضافه کنید:

Number4 (Progress Proxy) =
[ACWP] / [Baseline Cost]

Number5 (Weighted) =
[Number1] * [Number4] / 100

فیلد Number5 را هم روی Sum (Rollup) تنظیم کنید تا در سطح خلاصه جمع شود.

گام ۵ — درصد پیشرفت وزنی کل

در Task خلاصهٔ پروژه:

Weighted Progress % =
(Sum of Number5) / (Sum of Number1) * 100

این عدد را می‌توانید مستقیماً در نوار وضعیت، نمودارها یا گزارش‌های MSP نمایش دهید — بدون نیاز به خروجی به اکسل.

والد‌نسبت در MSP

چون MSP ساختار WBS را می‌شناسد، والد هر فعالیت همان Task خلاصهٔ بالادستی است. کافی است فیلد ارزش (Number2) را روی Sum (Rollup) تنظیم کنید تا در سطح خلاصهٔ والد جمع شود، سپس فرمول والد‌نسبت را بنویسید:

Number6 (W.F relative to parent) =
[Number2] / [Rollup of Number2 at parent summary]

وزن پروژهٔ هر گره را با ضرب در امتداد مسیر WBS (همان‌طور که در فرمول بالا آمد) به‌دست آورید. مزیت این روش: وقتی ساختار WBS تغییر می‌کند یا بسته‌ای جابجا می‌شود، وزن نسبت‌به‌والد ثابت می‌ماند و فقط جمع‌های سطح بالاتر تصحیح می‌شوند.

نکات حرفه‌ای

جمع‌بندی

وقتی فقط هزینه (C)، وزن (W) و ارزش (V) دارید، ضریب وزن (W.F) پل میان «پولی که خرج شده» و «کار واقعی» است. فرمول ساده است: ابتدا W.F را با تقسیم بر مجموع وزن‌ها نرمال کنید، سپس با نسبت هزینه (C/V) ضرب کنید و در نهایت جمع بگیرید. در اکسل این سه فرمول در چند ثانیه حاضر است و در MS Project با فیلدهای سفارشی و Rollup، همین عدد به‌صورت زنده و یکپارچه با برنامه به‌روز می‌ماند. نتیجه یک پیشرفت وزنیِ دفاع‌پذیر است که هم برای گزارش به مدیریت کافی است و هم خطاهای پنهان در میانگین سادهٔ هزینه را آشکار می‌کند.

← همه‌ی نوشته‌ها RSS