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

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

قام بنشر

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

معادلة حضرتك

 =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