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

دوال Round و RoundUp, و RoundDown في الأكسس


ابو عارف

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

 

 

 

 

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

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

اخواننا الكرام ، نظرا لكثرة المشاركات حول تقريب الكسور الارقام ، حبيت اشارككم الوحدة النمطية بـ 3 دوال (RoundUp) (RoundHalf) ( RoundDown)

دالة :  

RoundUp([Number],3)

للتقريب رقم 33.3333 الى 3.334  او 3.3331 الى 3.334 و هكذا

دالة:

RoundHalf([Number],3)

للتقريب رقم 33.3336 الى 3.334  او 3.3335 الى 3.333 و هكذا و السبب تسمية الدالة بهذالاسم ، وجود دالة باسم Round في الاكسس و انا سميتها RoundHalf

دالة:  

RoundDown([Number],3)

للتقريب رقم 33.3336 الى 3.333 او 3.2231 الى 3.223 و هكذا 

و المرفق يحوي ملفين الاول للعرض ارقام مقربة حسب تنسيق مثلا: عند اختيار اربع منازل أعشار 5.4400 ، 5.4444 ,5.2000

R1.jpg.120e358125adcb9cc8cbce1e27d85fdb.

و الثاني بدون تنسيق مثلا : 5.4444 ، 5.44 , 5.2

R2.jpg.d498657b4a5e41e7b8c89920149bfd80.

ابو عارف

Round-RowndUp-RowndDown.rar

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

حيا الله الاستاذ ابا عارف

اعجبني في الموضوع علاقته بالمواضيع التالية

وتحديدا دالتي val  و  format  ووجودهما في الرابط السابق!

ودالة fix ووجودها في الرابط

والذي لم يعجبني :

وافقتني استاذ ابو عارف ان الموضوع ينحل بدالة فورمات وفي الرابط السابق الاول ! 

ولكن يوحي بموضوعك هذا ان لك وجهة نظر اخرى حول جدوى الدالة فورمات في التقريب ! فهل هناك ايحاء فعلا ام هو فيض من علمكم اثابكم الله !

تحياتي

 

 

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

اهلاً و مرحبا الاستاذ/ اباجود

9 ساعات مضت, رمهان said:

افقتني استاذ ابو عارف ان الموضوع ينحل بدالة فورمات وفي الرابط السابق الاول ! 

فعلا دالة فورمات مناسبة للحل الموضوع بعبارة اسكيو ال و استخدامها للمنزلة عشرية محددة  ولكن استعمالها للمنازل عشرية مختلفة !! نحتاج تغير في الدالة عند كل تغير، و في هذالحالة من الافضل إنشاء وحدة النمطية واستعانة بأكواد vba و في نافذة vba يمكن عمل اكواد ما انا عاجز وصول اليه حتى الان.

9 ساعات مضت, رمهان said:

ولكن يوحي بموضوعك هذا ان لك وجهة نظر اخرى حول جدوى الدالة فورمات في التقريب ! فهل هناك ايحاء فعلا ام هو فيض من علمكم اثابكم الله !

صحيح وجهة نظري هذا اسبق من موضوع الحالي، مجرد تاريخ انشاء قاعدة قديمة و السبب !!حدوث مشكلة حين تحويل قاعدة من 2010 الى 2003 ثم بحثت في الجهاز و وجدت ملف mdb ولصق كائنات جديدة بعد مسح كائناتها القديمة..

وبالتأكيد ما قمت بالنشر من صنعي ولايمكن نشر منتوج غيري ابدا الا و ذكرت اسم المصدر.

تحياتي،،،

تم تعديل بواسطه ابو عارف
  • Like 1
رابط هذا التعليق
شارك

اعزائي

عزيزي واخي الاستاذ الخبير ابو عارف  وبعد اجمل واطيب تحية

اقول دائما ان التفكير منطقيا في المشكلة قبل الحل هو ذات اهمية كبيرة !

فكرت في هل طافت هذه على ميكروسوفت ! فبحثت قليلا في دوال الاكسس فوجدت الدالة التالية :   formatnumber واتوقع هي لما نحتاج في التقريب !

وهنا نفذت فكرة كانت تدور في ذهني وكاتالي :

Function ramhan_round(xnumber, xrounded)
ramhan_round = Format(xnumber, IIf(InStr(1, xnumber, ".") > 0 And xrounded <> 0, "0.", "0") & String(xrounded, "0"))
End Function

 

=ramhan_round(125.366, 2)

وباستخدام الدالة فورمات !

واخيرا يمكنكم تجربة الدوال : formatcurrency,formatdate,formatpercent   لفائدة اكثر !

تحياتي

تم تعديل بواسطه رمهان
  • Like 1
رابط هذا التعليق
شارك

بارك الله بك استاذ اباجود 

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

R.jpg.e3290f9cd3058bbd2b86daaf1d7ed3f2.j

والذي لم يعجبني:

تسمية دالة Ramhan_Round و هي تقترب الى الادنى :cool: و نحن نريد عكس (اقتراب رمهان الى الاعلى) :biggrin:.

في 11/26/2015, 5:18:36, رمهان said:

فبحثت قليلا في دوال الاكسس فوجدت الدالة التالية :   formatnumber واتوقع هي لما نحتاج في التقريب !

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

و بالاخص دالة نصفين ، لانها تحترم العدل بين طرفين 

و لك التحية.

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

الموضوع يحتاج القراءة وعلى روقان ! خصوصا به همز ولمز والاخص اكثر من استاذ كبير وخبير وغالي !

لي عودة !

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

عزيزي الاستاذ اباعارف

في ٢٧‏/١١‏/٢٠١٥ ٤:٤٢:٥٦, ابو عارف said:

بارك الله بك استاذ اباجود 

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

R.jpg.e3290f9cd3058bbd2b86daaf1d7ed3f2.j

ملاحظة في مكانها وتم التعديل :

Function ramhan_round(xnumber, xrounded)
xn = Format(xnumber, "0." & String(iif(xrounded < 0, 0, xrounded), "0"))
ramhan_round = Left(xn, Len(xn) + Int(Right(xn, 1) = "."))
End Function
=ramhan_round(55, 3))

ولم افهم المقصود هنا : اذا على الاسم سميها زي ماتحب ابو عارف !

في ٢٧‏/١١‏/٢٠١٥ ٤:٤٢:٥٦, ابو عارف said:

والذي لم يعجبني:

تسمية دالة Ramhan_Round و هي تقترب الى الادنى :cool: و نحن نريد عكس (اقتراب رمهان الى الاعلى) :biggrin:.

في ٢٧‏/١١‏/٢٠١٥ ٤:٤٢:٥٦, ابو عارف said:

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

و بالاخص دالة نصفين ، لانها تحترم العدل بين طرفين 

و لك التحية.

وهنا والله لم افهم المقصود كذلك ! فهلا ذكرت اسم الدالتين لافادتنا استاذنا !

تحياتي 

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

حياك الله استاذنا الغالي

6 ساعات مضت, رمهان said:

هنا والله لم افهم المقصود كذلك ! فهلا ذكرت اسم الدالتين لافادتنا استاذنا !

اساسا الفكرة مأخوذة من برنامج الاكسل اصلاً 

من المعلوم في الاكسل 3 نوع من دوال راوند، 

1- Round  هذا الدالةتهمل الكسور اقل او يساي 5 بعد مرتبة محددة  و اكثر من 5 تقرب الى الاعلى، مثلا 5.333 الى 5.33 و 5.336 الى 5.34

2- RoundUp هذا تقرب الى الاعلى من اول كسر اضافي  مثلا 5.333 الى 5.34

3-RoundDown  هذا تهمل جميع الكسور من اول رقم اضافي بعد مرتبة محددة كما تفضلت بإنشاء تلك الدالةفي ردك الاخير

6 ساعات مضت, رمهان said:

ولم افهم المقصود هنا : اذا على الاسم سميها زي ماتحب ابو عارف !

يعني بعد اختصار في اسطر دالة من النوع 3 ، تكرمنا بإختصار دالتي 1 و 2 

و لك تحية استاذي،،،

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

  • 1 month later...
  • 7 years later...

ارجوا من الزملاء توضيح بمثال على قاعده اكسيس اريد جبر كسر يعنى مثلا لو عندى 1.1 يجبر الى 1 و1.2 يجبر الى 1 و1.3 يجبر الى 1.5 و1.4 يجبر الى 1.5 و1.5 يجبر الى 1.5 و1.6 يجبر الى 1.5 و1.7 يجبر الى 2 و1.8 يجبر الى 2 و1.9 يجبر الى 2 وهكذا اريد ذلك للاهميه فى اكسيس معادلة ومثال على اكسيس واكون شاكر جدا لحضراتكم وربنا يجعله فى ميزان حسناتكم

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information