الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]مساعدة في دالة الوسط الهندسي Geometric Mean

بدأه TheAccessBoy في 17 سبتمبر 2008 · 9 رد · 3,987 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام

السلام عليكم ورحمة الله وبركاتة

ارجو مساعدتي في دالة الوسط الهندسي (Geometric Mean) فكيف تتم صياغتها واذا توفر الكود على VBA فانة سيكون افضل

علما ان صيغة الدالة في الاكسل هي:

=GEOMEAN(A2:A10)

ولكم جزيل الشكر سواء تمت الاجابة ام لا

#2

وعليكم السلام أخي ولد الأكسيس

إن كنت تقصد دالة الوسط الحسابي فصيغتها في الأكسيس هكذا

X = DAvg ( " [Ord] ","tblOrders ","[bnk_Name]='Arabi '")

هذا المتغير يعطينا المتوسط الحسابي في الحقل Ord من الجدول tblOrders بشرط أن يكون اسم البنك Arabi

أما إن كان مقصدك غير ذلك فأرجو التوضيح .. موفق دوما أخي

#3

بارك الله بك أخي اكسير على المشاركه

اعتقد ان السائل يريد الوسط الهندسي Geometric Mean

وهذه الدالة موجوده في برنامج الأكسيل GEOMEAN(A1;A10)

وتعني ارجاع الوسط الهندسي لصفيف او لنطاق من بيانات رقميه موجبه .

post-15367-1221937025_thumb.gif

ويمكن تمثيلها بالدالة التالية في الأكسيس - مع ملاحظة عدم وجود بيانات رقميه حقولها لها القيمه ( صفر ) او Null

Public Function GMean(ParamArray intArgs() As Variant) As Double
Dim dblReturn As Double
Dim intN As Integer
Dim i As Integer

	dblReturn = 0
	intN = 0

	' ضرب القيم في بعضها البعض
	For i = LBound(intArgs) To UBound(intArgs)
	   If IsNumeric(intArgs(i)) Then
		  intN = intN + 1
		  If i = LBound(intArgs) Then
			 dblReturn = CDbl(intArgs(i))
		  Else
			 dblReturn = dblReturn * CDbl(intArgs(i))
		  End If
	   End If
	Next i

	'الحصول على الجدر النوني للأعداد
	If intN > 0 Then
	   dblReturn = dblReturn ^ (1 / intN)
	Else
	   dblReturn = 0
	End If

	GMean = dblReturn
End Function
#4

اساتذتي الكرام

اكسير

زهرة

السلام عليكم ورحمة الله وبركاتة

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

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

استاذتي زهرة اشكرك من صميم اعماقي على الرد الشافي....شكرا والف شكرا

ساجرب استخدام الكود ولو انني ضننت انه كود صغير ... ولكن كان الله في عوني على فهم هذا الكود

اشكركم جميعا واشكر هذا الصرح

#5

اساتذتي الكرام

اشكركم مرة اخرى ولكن للاسف لم استطع ان انفذ هذا الكود

وهذا المثال قمت بوضع الكود فية ارجو ان تقومو باجراء اللازم مع الشكر المسبق

ارجو ان يتسع صدركم لاستفساراتي

وجزاكم الله كل خير

Geomen.rar

#6

اخي الفاضل

لا اعلم هل فهمت من الشرح السابق معنى الوسط الهندسي ؟

دعني اقرب لك الموضوع بشكل بسيط

في برنامج الأكسيل نقوم بأخذ الخلايا A1 و A2 و A3 و A4 .... الخ

بمعنى انها تمثل حقول مختلفه في برنامج الأكسيس

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

ولكن عندما نأخذ صف كامل للحقول NUM و NUM2 و NUM3 و NUM4 فإن الداله تقوم بضرب قيم الحقول الأربعة ثم توجد الجذر النوني وهو هنا ( 4 ) لأنها اربعة حقول مختلفه ثم تظهر النتيجه بهذا الشكل

post-15367-1221954383_thumb.gif

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

لذا يفضل استخدام الجدول ووضع الدالة في الحقل الأصفر .

عموما لو رغبت في استخدام الإستعلام فقد وضعت ايضا لك الداله به

ولا تحتاج الى زر الأمر في النموذج إلا لعمل تحديث فقط .

za_Geomen_UP.rar

#7
اقتباس
بارك الله بك أخي اكسير على المشاركه

اعتقد ان السائل يريد الوسط الهندسي Geometric Mean

وهذه الدالة موجوده في برنامج الأكسيل GEOMEAN(A1;A10)

وتعني ارجاع الوسط الهندسي لصفيف او لنطاق من بيانات رقميه موجبه

الأخت أم عهود .. حاولت أتذكر هذه الدالة Geometric Mean فلم تسعفني كل الرامات فعرفت أنها زحلطن :D

#8
ekseer كتب:
الأخت أم عهود .. حاولت أتذكر هذه الدالة Geometric Mean فلم تسعفني كل الرامات فعرفت أنها زحلطن :D

بارك الله بك اخي ابو عبدالله

متاكده ان موضوع الوسط الهندسي اختلط عليك او تشابه مع المتوسط الحسابي

رمضان كريم .

#9

استاذتي الافاضل

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

استاذتي الفاضلة زهرة كلمات الشكر لا تعطيك شيئا على ما فعلتي ولكن اقول فقط " جزاكي الله خير جزاء "

#10

بسم الله الرحمن الرحيم

تمت الإجابة على الموضوع

إدارة الفريق العربي للبرمجة

مواضيع مشابهة