اذهب الي المحتوي
أوفيسنا

مساعدة فى دالة SUMPRODUCT لحساب المتوسط المرجح للمخزون


الردود الموصى بها

ممكن تدرج النتائج المتوقعة ...

حتى تتضح المسألة

عموما جرب جرب المعادلة في F3 بهذا الشكل

=IF(B3="","",SUMPRODUCT(($B$3:B3-$D$3:D3),--($A$3:A3=$A3)))
رابط هذا التعليق
شارك

أخ ياسر خليل بارك الله فيك

معادلة حضرتك

 =IF(A3="","",SUMPRODUCT(($B$3:B3-$D$3:D3),--($A$3:A3=$A3)))

تعديلى هذا لعلاج المطلوب اللى هو لو لم يكن هناك صنف يعتمد على عمود الاصناف

المطلوب الثانى أنا حاطيت معادلة فى أول 3 خلايا لتنفيذ المطلوب وكتبت جنب المعادلة الناتج اللى انا عاوزه

وباقى الخلايا فى العمود كاتب فيها المطلوب بالارقام 

وجزيت خيرا على سرعة ردك على طلبى

رابط هذا التعليق
شارك

جزاك الله خيرا أخ محمد الريفى

لكن المعادلة لا تعطى الناتج السليم

جرب شراء 5 وحدات بـ 10 ج م 

ثم بيعهم

ثم شراء 3 وحدات بـ 11

تعطى متوسط مرجح تعطى 10.375 فى حين انه 11

المعادلة اللى وضعتها انت فى العمود G مرتبطة بالعمود A أصناف

والعمود B كميات والعمود C أسعار شراء

المطلوب الاعتماد على العمود F لانه عمود الرصيد الموجود فى المخزن وليس العمود B كميات الوارد

رابط هذا التعليق
شارك

أخي الكريم أبو عاصم طلبت منك في مشاركة سابقة أن

 

ممكن تدرج النتائج المتوقعة ...

ولم تستجب لي ..

النتائج المتوقعة ستزيل اللبس وسوء الفهم عند الأعضاء ووقتها ستجد المساعدة إن شاء الله

ارفق آخر ملف يمكن العمل عليه ، لأن كثرة المرفقات بالموضوع بتعملي توهان

رابط هذا التعليق
شارك

السلام عليكم

 

اسعد الله صباحكم

 

استاذ ابو العزم جرب المرفق , هي دي الطريقة الي انا شغال بيها

 

يجب ان تكون البيانات مرتبة علي حسب .. الصنف ثم التاريخ ثم نوع الحركة (اضافة اولا ثم صرف) لتعطي نتائج صحيحة .

 

اعتقد انها ستكون اسرع مع البيانات الكثيرة بهذه الطريقة .

 

الاعمدة الملونة هي التي بها معادلات .

 

تحياتي

average +.rar

رابط هذا التعليق
شارك

بارك الله فيك أستاذي أحمد عبد الناصر .. السهل الممتنع

وفي انتظار تواجدك معنا بشكل دائم ..

تقبل تحيات تلميذكم أبو البراء

رابط هذا التعليق
شارك

والله جزاك الله خيرا على سرعة ردك

وانا أحاول منذ ردك أن اصل الى المطلوب

الذى أريدة هو حساب المتوسط المرجح المتحرك  لكل صنف لكل عملية شراء

المعادلة المطلوبة لحساب تكلفة البضاعة المباعة فهى مرتبطة بعمود الرصيد المجاور للمعادلة المطلوبة

بمعنى أنه كلما قمت بالشراء يتغير تكلفة الصنف كل مرة على حسب المتبقى من الوحدات وسعر شراءها

واذا بعت الصنف من المخزن كله يحذف من حسابه تكلفة الشراء السابقه

بمعنى = عدد الوحدات المشتراه * تكلفة شراءها / الرصيد >0 اللى هو ( الوارد - المنصرف ) وذلك لكل صنف 

والله لقد توهت فى المطلوب هذا وفتحت صفحات أجنبية للوصول للمطلوب 

واكتشفت انه من الممكن تركيب معادلات أخرى للوصول للحل لكنى لم أصل اليه 

معادلة المتوسط المرجح المتحرك.rar

رابط هذا التعليق
شارك

الأخ أجمد عبد الناصر 

المرفق يؤدى عين المطلوب لكن المشكلة الكبيرة فيه هو شرط وضع الأصناف مرتبة

فأنا أعمل مع 5000 صنف كل مرة  بيع أو شراء المخزن يتحرك 20 صنف 

فالموضوع سيكون مضنى أن أتحرك فى 5000 صنف كل مرة لأسجل 20 صنف 

فهل من معادلة لتتغاضى عن كون الاصناف مرتبة تحت بعضها 

رابط هذا التعليق
شارك

جملة ما توصلت إليه من البحث هو الموقع التالى

به أكواد لا أعلم هل تفيد فى المطلوب أم لا 

الصراحة حلوة   :(

http://www.mrexcel.com/forum/excel-questions/167756-inventory-fifo-lifo-average-cost.html

===========================================

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If Not IsNumeric(.Value) Then Exit Sub
If Not Intersect(.Cells(1, 1), Range("e:g")) Is Nothing And _
.Row > 6 Then FIFO
End With
End Sub

==============================================

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If Not IsNumeric(.Value) Then Exit Sub
If Not Intersect(.Cells(1, 1), Range("e:g")) Is Nothing And _
.Row > 6 Then LIFO
End With
End Sub

================================================

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If Not IsNumeric(.Value) Then Exit Sub
If Not Intersect(.Cells(1, 1), Range("e:g")) Is Nothing And _
.Row > 6 Then AVR_COST
End With
End Sub

==========================================

Sub FIFO()
Dim a As Variant, Cost As Double, sumIn As Double, sumOut As Double, _
i As Long, ii As Long, n As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
With Sheets("FIFO")
.Range("i7", .Cells(Rows.Count, "i").End(xlUp)).ClearContents
a = .Range("e7", .Cells(Rows.Count, "g").End(xlUp)).Resize(, 5).Value
n = 1
For i = LBound(a, 1) To UBound(a, 1)
If Not IsEmpty(a(i, 3)) Then
sumOut = a(i, 3)
For ii = n To i - 1
If Not IsEmpty(a(ii, 2)) Then
sumIn = sumIn + a(ii, 2)
If sumIn > sumOut Then
Exit For
Else
Cost = Cost + a(ii, 1) * a(ii, 2)
a(ii, 2) = Empty
End If
End If
Next
If sumIn - sumOut > 0 Then
Cost = (Cost + (a(ii, 1) * (a(ii, 2) - (sumIn - sumOut)))) / sumOut
a(ii, 2) = sumIn - sumOut
Else
Cost = Cost / sumOut
End If
a(i, 5) = Cost
sumIn = 0: sumOut = 0: Cost = 0: n = ii
End If
Next
.Range("i7").Resize(UBound(a, 1)) = Application.Index(a, 0, 5)
Erase a
End With
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub

============================================================
Sub LIFO()
Dim a As Variant, Cost As Double, sumIn As Double, sumOut As Double, _
i As Long, ii As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
With Sheets("LIFO")
.Range("i7", .Cells(Rows.Count, "i").End(xlUp)).ClearContents
a = .Range("e7", .Cells(Rows.Count, "g").End(xlUp)).Resize(, 5).Value
For i = LBound(a, 1) To UBound(a, 1)
If Not IsEmpty(a(i, 3)) Then
sumOut = a(i, 3)
For ii = i - 1 To 1 Step -1
If Not IsEmpty(a(ii, 2)) Then
sumIn = sumIn + a(ii, 2)
If sumIn > sumOut Then
Exit For
Else
Cost = Cost + a(ii, 1) * a(ii, 2)
a(ii, 2) = Empty
End If
End If
Next
If sumIn - sumOut > 0 Then
Cost = (Cost + (a(ii, 1) * (a(ii, 2) - (sumIn - sumOut)))) / sumOut
a(ii, 2) = sumIn - sumOut
Else
Cost = Cost / sumOut
End If
a(i, 5) = Cost
sumIn = 0: sumOut = 0: Cost = 0: n = ii
End If
Next
.Range("i7").Resize(UBound(a, 1)) = Application.Index(a, , 5)
Erase a
End With
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
Erase a
End Sub
==============================================
Sub AVR_COST()
Dim a, i As Long, Bal As Double, Debit As Double
Dim AVcost As Double
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
End With
With Sheets("AVR COST")
a = .Range("e7", .Cells(.Rows.Count, "g").End(xlUp)).Resize(, 3).Value
.Range("i7", .Cells(.Rows.Count, "i").End(xlUp)).ClearContents
ReDim Preserve a(1 To UBound(a, 1), 1 To 4)
For i = LBound(a, 1) To UBound(a, 1)
If a(i, 2) > 0 Then
Bal = Bal + a(i, 2)
Debit = Debit + a(i, 1) * a(i, 2)
AVcost = Debit / Bal
ElseIf a(i, 3) > 0 Then
a(i, 4) = AVcost
Debit = Debit - a(i, 3) * AVcost
Bal = Bal - a(i, 3)
End If
Next
.Range("i7").Resize(UBound(a, 1)) = Application.Index(a, 0, 4)
Erase a
End With
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub

==================================

وهناك 

Advanced Sumproduct Queries
 
رابط هذا التعليق
شارك

بعد اذن استاذتى الافاضل

صاحب السؤال طلب معادلة المتوسط المرجح للمخزون

ومعادلة المتوسط المرجح هى عباره عن تكلفة البضاعه / عدد الوحدات . وهذه  الطريقه هى احدى الطرق المتعارف عليها فى تقييم المخزون  وتعتبر من ادق واسهل الطرق فى تقييم مخزون اخر المده وتكلفة الوحدات المتاحه للبيع

اما مافهمته بالظبط من السؤال والاجابة المطلوبه

انه يريد استخدام طريقة المتوسط المتحرك فى تقييم المخزون وهى طريقه لها بعض العيوب المحاسبيه  ربما اوفيسنا لايتناول مثل هذه الموضوعات لذا لن اتطرق اليها

وهناك حلول لهذا الامر ولكن ستكون بعيده عن المعادلات نوعا من وعند بحثى وجدت انسب طريقه هى Analysis ToolPak add-in.

واليك رابط ماتوصلت اليه عسى ان يفيدك http://www.excel-easy.com/examples/moving-average.html#

توصيه

 

----------------------------------------------------------------------------------------------

اخى الكريم استخدم المتوسط المرجح فهو اكثر الطرق عمليا ودقة فى تقييم المخزون والوحدات المنصرفه .وهذا الراى من قبل خبرتى المتواضعه

تقبل منى خالص التحيه والاحترام

  • Like 1
رابط هذا التعليق
شارك

الحمد لله توصلت إلى نتائج قريبة للمطلوب سأرفقها لكم بغية التطوير والوصول لما ننشد 

والشكر موصول للسيد ياسر خليل والسيد أحمد عبد الناصر والسيد محمد الريفى 

بارك الله فيكم جميعا

رابط هذا التعليق
شارك

هل بالإمكان تطبيق الكود المرفق فى المشاركة قبل السابقة 

لينك الموقع مرفق

فلو تكرم علينا المفضال ياسر خليل 

بتركيب الكود على ملف إكسيل للإستفادة منه لكان خيرا كثيرا 

رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information