احصل على استشارة

استشر فريق العمل لدينا الان
يمكنك متابعتنا على

طريقة المتوسط المرجح | شيت Excel احترافي مجانى

طريقة المتوسط المرجح شيت Excel احترافي مجانى
محتويات المقال عرض

مقدمة: لماذا طريقة المتوسط المرجح؟

إذا كنت محاسباً أو مديراً مالياً، فأنت تعرف جيداً أن تسعير المخزون ليس مجرد “إحصاء بضاعة” – بل هو قرار محاسبي يؤثر مباشرةً على تكلفة البضاعة المباعة (COGS)، وصافي الربح، والضريبة المستحقة.

طريقة المتوسط المرجح (Weighted Average Cost Method) هي إحدى الطريقتين المعتمدتين في معيار المحاسبة المصري رقم 2 – المخزون، إلى جانب طريقة FIFO. وتتميز المتوسط المرجح بأنها:

  • تُسوّي تقلبات الأسعار عبر الزمن بدلاً من التضخيم أو التقليل
  • أسهل للتطبيق الضريبي في ظروف الأسعار المتذبذبة كالسوق المصري
  • مقبولة دولياً وفق معيار المحاسبة الدولي IAS 2

في هذا المقال، سأشرح لك شيت Excel احترافي مبني على كود VBA كامل يقوم بحساب المتوسط المرجح تلقائياً، وتحديث المخزون لحظياً مع كل حركة دخول أو خروج.


شرح بالفيديو لطريقة المتوسط المرجح

ما هي طريقة المتوسط المرجح للمخزون؟

التعريف

طريقة المتوسط المرجح تعني أن تكلفة كل وحدة في المخزون تُحسب في كل لحظة كمتوسط مرجح لتكلفة الوحدات الموجودة + الوحدات الداخلة، وفق المعادلة التالية:

متوسط تكلفة الوحدة = إجمالي قيمة المخزون المتاح ÷ إجمالي كمية المخزون المتاح

مثال بسيط

الحركةالكميةسعر الوحدةالقيمة
رصيد أول المدة1,000 وحدة10 جنيه10,000 جنيه
مشتريات يناير1,000 وحدة150 جنيه150,000 جنيه
المتوسط المرجح2,000 وحدة80 جنيه160,000 جنيه

أي أن تكلفة أي وحدة تخرج من المخزون = 80 جنيه (لا 10 ولا 150، بل المتوسط المرجح).


هيكل الشيت – أربع أوراق عمل منظمة

الشيت مقسّم إلى 4 أوراق عمل (Sheets)، كل ورقة بدور محدد:

📋 ورقة 1: Stock (الأرصدة الافتتاحية)

العمودالمحتوى
Aكود الصنف
Bاسم الصنف
Cالتاريخ
Dالكمية
Eتكلفة الوحدة
Fإجمالي القيمة

هنا تُدخل رصيد أول المدة لكل صنف مع تكلفة الوحدة. هذا هو نقطة البداية التي ينطلق منها الكود.


📥📤 ورقة 2: Transactions (حركات المخزون)

العمودالمحتوى
Aتاريخ الحركة
Bكود الصنف
Cنوع الحركة (TRANSACTION IN / TRANSACTION OUT)
Dالكمية
Eتكلفة الوحدة (للمشتريات فقط)
FCOGS / القيمة (يملؤها الكود تلقائياً)

ملاحظة مهمة: العمود F لا تكتب فيه شيئاً – الكود يحسبه تلقائياً عند التشغيل.


📊 ورقة 3: CurrentStock (المخزون الحالي)

تُظهر بعد تشغيل الكود:

  • الكمية الحالية لكل صنف
  • متوسط تكلفة الوحدة (محسوب بالمتوسط المرجح)
  • إجمالي قيمة المخزون
  • تاريخ آخر تحديث

📈 ورقة 4: Inventory_Summary (ملخص المخزون)

جدول موجز يُستخدم للمراجعة السريعة والتقارير الإدارية، يحتوي على نفس بيانات CurrentStock لكن بتنسيق مُبسّط جاهز للطباعة.


كيف يعمل كود VBA خطوة بخطوة

المرحلة الأولى: قراءة الأرصدة الافتتاحية

vba

' 1. Read Initial Stock into Dictionaries
lastStock = wsStock.Cells(wsStock.Rows.Count, 1).End(xlUp).Row
For i = 2 To lastStock
    code = Trim(CStr(wsStock.Cells(i, 1).Value))
    If code <> "" Then
        dictDesc(code) = wsStock.Cells(i, 2).Value
        dictQty(code) = Val(wsStock.Cells(i, 4).Value)
        dictVal(code) = Val(wsStock.Cells(i, 4).Value) * Val(wsStock.Cells(i, 5).Value)
    End If
Next i

ماذا يفعل هذا الجزء؟ يقرأ كل أصناف المخزون من ورقة Stock ويخزّنها في Dictionaries (قواميس في الذاكرة)، واحد للكمية وآخر للقيمة. هذا يجعل الحسابات اللاحقة فائقة السرعة.


المرحلة الثانية: معالجة الحركات

vba

If InStr(transType, "IN") > 0 Then
    ' إضافة مشتريات: الكمية والقيمة تتراكمان
    dictQty(code) = dictQty(code) + qty
    dictVal(code) = dictVal(code) + (qty * unitCost)

ElseIf InStr(transType, "OUT") > 0 Then
    ' حساب المتوسط المرجح لحظة الصرف
    currentAvgCost = dictVal(code) / dictQty(code)
    cogs = qty * currentAvgCost
    
    ' خصم الكمية والقيمة من المخزون
    dictQty(code) = dictQty(code) - qty
    dictVal(code) = dictVal(code) - cogs
End If

منطق المتوسط المرجح هنا:

  • عند كل TRANSACTION IN: تُجمع الكمية والقيمة
  • عند كل TRANSACTION OUT: يُحسب المتوسط في تلك اللحظة ويُضرب في الكمية المباعة → هذا هو COGS

المرحلة الثالثة: الحماية من أخطاء الفاصلة العائمة

vba

' Avoid small floating point errors near zero
If dictQty(code) <= 0 Then
    dictQty(code) = 0
    dictVal(code) = 0
End If

تفصيلة دقيقة: بدون هذا السطر، قد ينتج عن الحسابات المتتالية قيمة مثل 0.000000001 بدلاً من صفر، مما يسبب أخطاء في حساب المتوسط التالي.


المرحلة الرابعة: كتابة النتائج وتنسيقها

الكود يُصدّر النتائج تلقائياً إلى ورقتي CurrentStock و Inventory_Summary مع:

  • ترويسة بخلفية زرقاء داكنة ونص أبيض
  • حدود للجدول
  • تعديل عرض الأعمدة تلقائياً (AutoFit)

طريقة الاستخدام – خطوات عملية

الخطوة الأولى: إدخال الأرصدة الافتتاحية

افتح ورقة Stock وأدخل لكل صنف:

  • كود الصنف (مثلاً: 10100)
  • اسم الصنف
  • تاريخ الرصيد الافتتاحي
  • الكمية
  • تكلفة الوحدة

الخطوة الثانية: إدخال حركات المخزون

في ورقة Transactions أدخل كل حركة على سطر مستقل:

  • أكتب TRANSACTION IN لأي مشتريات أو إضافات
  • أكتب TRANSACTION OUT لأي مبيعات أو صرفيات
  • لا تترك فراغات في كود الصنف

الخطوة الثالثة: تشغيل الكود

  1. اضغط Alt + F8
  2. اختر UpdateWeightedAverage_Final_English
  3. اضغط Run

ستظهر رسالة تأكيد بعدد الصفوف التي تمت معالجتها، وستجد النتائج جاهزة في أوراق CurrentStock و Inventory_Summary.


مقارنة: المتوسط المرجح FIFO vs

المعيارالمتوسط المرجحFIFO
أسلوب التقييممتوسط تكلفة كل الوحداتتكلفة أقدم وحدة تخرج أولاً
تأثير ارتفاع الأسعارCOGS متوسطة، ربح معتدلCOGS منخفضة، ربح أعلى
تأثير انخفاض الأسعارCOGS متوسطةCOGS مرتفعة، ربح أقل
التعقيد الحسابيأبسطأعقد قليلاً
القبول وفق IAS 2✅ معتمد✅ معتمد
القبول وفق معيار مصري 2✅ معتمد✅ معتمد
الملاءمة للأسعار المتذبذبة✅ أفضلقد يعطي تشويهاً

📌 نصيحة عملية: إذا كانت أسعار مشترياتك تتغير كثيراً بسبب تقلبات الدولار أو سعر الصرف، فطريقة المتوسط المرجح تعطيك صورة أكثر واقعية للتكلفة الفعلية.


الأساس المحاسبي والمعياري

معيار المحاسبة المصري رقم 2 – المخزون

يُجيز المعيار استخدام إحدى طريقتين لتحديد تكلفة المخزون:

  1. طريقة الوارد أولاً صادر أولاً (FIFO)
  2. طريقة المتوسط المرجح (Weighted Average)

وينص المعيار صراحةً على أن تكلفة المخزون تشمل:

  • تكلفة الشراء
  • تكاليف التحويل
  • التكاليف الأخرى المتكبَّدة للوصول بالمخزون إلى موقعه وحالته الحالية

القيد المحاسبي عند صرف المخزون

من حـ/ تكلفة البضاعة المباعة (COGS)
    إلى حـ/ المخزون

حيث المبلغ = الكمية المباعة × متوسط تكلفة الوحدة وقت الصرف.


أسئلة شائعة

س: هل يعمل الشيت مع أكثر من صنف في نفس الوقت؟ 

ج: نعم، الكود يستخدم Dictionaries تتتبع كل صنف بكوده بشكل مستقل، ويمكن إضافة مئات الأصناف.

س: ماذا لو خرجت كمية أكبر من الرصيد المتاح؟

 ج: الكود يحمي من هذا الخطأ – إذا وصل الرصيد لصفر أو أقل يُصفّره تلقائياً، لكن يُنصح بالتحقق من البيانات قبل التشغيل.

س: هل يمكن تعديل الشيت للغة العربية؟

 ج: نعم، يمكن ترجمة أسماء الأوراق والأعمدة، مع تعديل كود VBA ليتعرف على الأسماء الجديدة.

س: هل الشيت يحتسب ضريبة القيمة المضافة؟

 ج: لا – الشيت يُسجّل تكلفة المخزون قبل الضريبة. يمكن إضافة عمود منفصل لضريبة القيمة المضافة إذا احتجت.

س: هل يمكن استخدامه مع QuickBooks كمرجع تدقيق؟

 ج: نعم، يصلح كأداة تحقق ومراجعة يدوية بجانب QuickBooks، خاصةً في الشركات التي تعمل بالمخزون المجمّع أو تكاليف الإنتاج.


رأيي المهني

أ. أحمد فتحي – محاسب قانوني معتمد (CPA)

طريقة المتوسط المرجح هي الأنسب للبيئة المصرية في ظل التضخم وتغير أسعار العملات. لاحظت في عملي مع منشآت التصنيع والتجارة أن الشركات التي تستخدم FIFO في ظروف التضخم تحقق أرباحاً ورقية مرتفعة قد تستوجب توزيعات أو ضرائب مرتفعة دون أن تعكس الواقع الفعلي للقدرة التشغيلية.

هذا الشيت ليس مجرد أداة حسابية – هو نظام تقييم مخزون كامل يمكن تكييفه مع أي حجم عمل، من المنشأة الصغيرة حتى الشركة المتوسطة. سأشرح في الفيديو القادم على يوتيوب تطبيقاً عملياً كاملاً خطوة بخطوة.

تنزيل الشيت

📥

تحميل الملف

الشيت متوافق مع Microsoft Excel 2016 وما بعده، ويتطلب تفعيل Macros عند الفتح.


ابحث عن موضوعات اخري
تواصل معنا

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

هذا الموقع يستخدم خدمة أكيسميت للتقليل من البريد المزعجة. اعرف المزيد عن كيفية التعامل مع بيانات التعليقات الخاصة بك processed.

error: Content is protected !!