أبو العاصم قام بنشر مارس 18, 2015 قام بنشر مارس 18, 2015 فى الملف المرفق الرجاء المساعد للوصول الى المتوسط المرجح لكل عملية شراء أو بيع تعتمد على نوع الصنف وتحسب المتوسط المرجح لعمليات الشراء المخزون.rar
ياسر خليل أبو البراء قام بنشر مارس 18, 2015 قام بنشر مارس 18, 2015 ممكن تدرج النتائج المتوقعة ... حتى تتضح المسألة عموما جرب جرب المعادلة في F3 بهذا الشكل =IF(B3="","",SUMPRODUCT(($B$3:B3-$D$3:D3),--($A$3:A3=$A3)))
أبو العاصم قام بنشر مارس 18, 2015 الكاتب قام بنشر مارس 18, 2015 أخ ياسر خليل بارك الله فيك معادلة حضرتك =IF(A3="","",SUMPRODUCT(($B$3:B3-$D$3:D3),--($A$3:A3=$A3))) تعديلى هذا لعلاج المطلوب اللى هو لو لم يكن هناك صنف يعتمد على عمود الاصناف المطلوب الثانى أنا حاطيت معادلة فى أول 3 خلايا لتنفيذ المطلوب وكتبت جنب المعادلة الناتج اللى انا عاوزه وباقى الخلايا فى العمود كاتب فيها المطلوب بالارقام وجزيت خيرا على سرعة ردك على طلبى
محمد الريفى قام بنشر مارس 19, 2015 قام بنشر مارس 19, 2015 السلام عليكم بعد اذن الاستاذ الكبير ياسر خليل اليك اخى الكريم الملف المخزون.rar 1
أبو العاصم قام بنشر مارس 19, 2015 الكاتب قام بنشر مارس 19, 2015 جزاك الله خيرا أخ محمد الريفى لكن المعادلة لا تعطى الناتج السليم جرب شراء 5 وحدات بـ 10 ج م ثم بيعهم ثم شراء 3 وحدات بـ 11 تعطى متوسط مرجح تعطى 10.375 فى حين انه 11 المعادلة اللى وضعتها انت فى العمود G مرتبطة بالعمود A أصناف والعمود B كميات والعمود C أسعار شراء المطلوب الاعتماد على العمود F لانه عمود الرصيد الموجود فى المخزن وليس العمود B كميات الوارد
أبو العاصم قام بنشر مارس 21, 2015 الكاتب قام بنشر مارس 21, 2015 يا شباب الموضوع عن جد محير ومستهلك منى وقت شديد هل من الممكن الوصول للمطلوب ولو حتى بدون دالة SUMPRODUCT الرجاء الارشاد
ياسر خليل أبو البراء قام بنشر مارس 21, 2015 قام بنشر مارس 21, 2015 أخي الكريم أبو عاصم طلبت منك في مشاركة سابقة أن ممكن تدرج النتائج المتوقعة ... ولم تستجب لي .. النتائج المتوقعة ستزيل اللبس وسوء الفهم عند الأعضاء ووقتها ستجد المساعدة إن شاء الله ارفق آخر ملف يمكن العمل عليه ، لأن كثرة المرفقات بالموضوع بتعملي توهان
احمد عبد الناصر قام بنشر مارس 21, 2015 قام بنشر مارس 21, 2015 السلام عليكم اسعد الله صباحكم استاذ ابو العزم جرب المرفق , هي دي الطريقة الي انا شغال بيها يجب ان تكون البيانات مرتبة علي حسب .. الصنف ثم التاريخ ثم نوع الحركة (اضافة اولا ثم صرف) لتعطي نتائج صحيحة . اعتقد انها ستكون اسرع مع البيانات الكثيرة بهذه الطريقة . الاعمدة الملونة هي التي بها معادلات . تحياتي average +.rar
ياسر خليل أبو البراء قام بنشر مارس 21, 2015 قام بنشر مارس 21, 2015 بارك الله فيك أستاذي أحمد عبد الناصر .. السهل الممتنع وفي انتظار تواجدك معنا بشكل دائم .. تقبل تحيات تلميذكم أبو البراء
أبو العاصم قام بنشر مارس 21, 2015 الكاتب قام بنشر مارس 21, 2015 والله جزاك الله خيرا على سرعة ردك وانا أحاول منذ ردك أن اصل الى المطلوب الذى أريدة هو حساب المتوسط المرجح المتحرك لكل صنف لكل عملية شراء المعادلة المطلوبة لحساب تكلفة البضاعة المباعة فهى مرتبطة بعمود الرصيد المجاور للمعادلة المطلوبة بمعنى أنه كلما قمت بالشراء يتغير تكلفة الصنف كل مرة على حسب المتبقى من الوحدات وسعر شراءها واذا بعت الصنف من المخزن كله يحذف من حسابه تكلفة الشراء السابقه بمعنى = عدد الوحدات المشتراه * تكلفة شراءها / الرصيد >0 اللى هو ( الوارد - المنصرف ) وذلك لكل صنف والله لقد توهت فى المطلوب هذا وفتحت صفحات أجنبية للوصول للمطلوب واكتشفت انه من الممكن تركيب معادلات أخرى للوصول للحل لكنى لم أصل اليه معادلة المتوسط المرجح المتحرك.rar
أبو العاصم قام بنشر مارس 21, 2015 الكاتب قام بنشر مارس 21, 2015 الأخ أجمد عبد الناصر المرفق يؤدى عين المطلوب لكن المشكلة الكبيرة فيه هو شرط وضع الأصناف مرتبة فأنا أعمل مع 5000 صنف كل مرة بيع أو شراء المخزن يتحرك 20 صنف فالموضوع سيكون مضنى أن أتحرك فى 5000 صنف كل مرة لأسجل 20 صنف فهل من معادلة لتتغاضى عن كون الاصناف مرتبة تحت بعضها
أبو العاصم قام بنشر مارس 21, 2015 الكاتب قام بنشر مارس 21, 2015 جملة ما توصلت إليه من البحث هو الموقع التالى به أكواد لا أعلم هل تفيد فى المطلوب أم لا الصراحة حلوة :( 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 http://chandoo.org/wp/2011/05/26/advanced-sumproduct-queries/
محمد الريفى قام بنشر مارس 21, 2015 قام بنشر مارس 21, 2015 بعد اذن استاذتى الافاضل صاحب السؤال طلب معادلة المتوسط المرجح للمخزون ومعادلة المتوسط المرجح هى عباره عن تكلفة البضاعه / عدد الوحدات . وهذه الطريقه هى احدى الطرق المتعارف عليها فى تقييم المخزون وتعتبر من ادق واسهل الطرق فى تقييم مخزون اخر المده وتكلفة الوحدات المتاحه للبيع اما مافهمته بالظبط من السؤال والاجابة المطلوبه انه يريد استخدام طريقة المتوسط المتحرك فى تقييم المخزون وهى طريقه لها بعض العيوب المحاسبيه ربما اوفيسنا لايتناول مثل هذه الموضوعات لذا لن اتطرق اليها وهناك حلول لهذا الامر ولكن ستكون بعيده عن المعادلات نوعا من وعند بحثى وجدت انسب طريقه هى Analysis ToolPak add-in. واليك رابط ماتوصلت اليه عسى ان يفيدك http://www.excel-easy.com/examples/moving-average.html# توصيه ---------------------------------------------------------------------------------------------- اخى الكريم استخدم المتوسط المرجح فهو اكثر الطرق عمليا ودقة فى تقييم المخزون والوحدات المنصرفه .وهذا الراى من قبل خبرتى المتواضعه تقبل منى خالص التحيه والاحترام 1
أبو العاصم قام بنشر مارس 23, 2015 الكاتب قام بنشر مارس 23, 2015 الحمد لله توصلت إلى نتائج قريبة للمطلوب سأرفقها لكم بغية التطوير والوصول لما ننشد والشكر موصول للسيد ياسر خليل والسيد أحمد عبد الناصر والسيد محمد الريفى بارك الله فيكم جميعا
أبو العاصم قام بنشر مارس 23, 2015 الكاتب قام بنشر مارس 23, 2015 هل بالإمكان تطبيق الكود المرفق فى المشاركة قبل السابقة لينك الموقع مرفق فلو تكرم علينا المفضال ياسر خليل بتركيب الكود على ملف إكسيل للإستفادة منه لكان خيرا كثيرا
الردود الموصى بها