اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الدالة NZ و القيم الخالية


زائر

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

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

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

سؤالي باختصار شديد :

عندي قاعدة بيانات معلومات عن المدارس و عملت لها استعلام يحدد لي القيم التالية :

- اسم المدرسة

-الصفوف

- الفصول

-عدد الطلاب

ثم قمت بعمل استعلام جدولي بالطريقة التالية :

اسم المدرسة ( عنوان الصف )

الفصول (عنوان العمود )

الاجمالي (يحسب اجمالي عدد الفصول)

و عندما صصمت هذا الاستعلام في نموذج لاحظت مايلي :

ان هناك بعض الحقول للفصول تكون فارغة مثلا :

مدرسة 1 : لايوجد بها الصف الرابع و يوجد بها الاول و الثاني و الثالث و الخامس و السادس.

السؤال : عندما عملت مربع نص في هذا النموذج لكي يحسب لي عدد الفصول العليا ( الرابع - الخامس - السادس) لاحظت ان هذا المربع لايقوم بالجمع لان هذه المدرسة 1 لا تحتوي على فصل للرابع فما هي الطريقة جزاكم الله خير الجزاء ؟

تحياتي

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

تغلبت على هذه المشكلة كما يلي :

جعلت العمليات الحسابية في استعلام آخر غير الاستعلام الجدولي .

أنشأت حقل في الاستعلام القيمة الافتراضية فيه صفر وليكن اسمه ( a) .

لم استخدم الحقل مباشرة من الاستعلام الجدولي ولكن أدخلته في عملية حسابية فمثلا لحساب الصف الرابع أنشات حقل في الاستعلام باستخدام دالة nz وباستخدام حقل الصف والحقل ( a)

هكذا :

الصف الربع:nz([الرابع])+a

حيث [الرابع] هو الحقل في الاستعلام الجدولي

وبالتالي ينتج لك حقل جديد به إما رقم أو صفر حتى تتم العمليات الحسابية . ويمكن أن تستبدل الحقل a بالصفر مباشرة

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

الاخ ابو عبدالرحمن

شكرا على تجاوبك على سؤالي و جزاك الله خيرا ...

لكن هل من الممكن التوضيح اكثر حول تصميم استعلام جديد و كيف نجعل فيه a=0 ...

الاخ WinMaster

تحية و تقدير لك و هل من الممكن ان توضح كيف لي ان استخدم NZ في الاستعلام الجدولي ...

تحياتي و تقديري لكم اهل المنتدى !!

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

إذا كنت تريد إجراء العمليات الحسابية فقط . فيكفي استخدام دالة nz وتستخدم بهذا الشكل:

nz([الرابع])+nz([الخامس])+nz([السادس])

فإذا كانت هذه الحقول قيمة خالية فيعطيك الناتج صفر . ويكون هذا في استعلام جديد غي الاستعلام الجدولي

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

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

الأخ ابو عبدالرحمن :

اهداء

(((( اللهم اغفر له ذنوبه و ارحم والديه و ارزقه منك ياكريم رزقا حسنا ))))

الف شكر لك اخي الكريم بعد الله عز وجل على هذه المعلومة التي كادت ان تحول بيني و بين برنامجي الذي اود تصميمه ..

تحياتي ...

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

  • 1 year later...

ارجو المساعدة في حساب استعلام

لدي برنامج لمدرسين في مدرسة

يوجد به الحقول التالية :

1- لدرجة المدير

2- درجة موجه

3- متوسط درجة المدير والموجه

مثل لوكانت درجة المدير 80

ودرجة الموجه 70

المعادلة التي وضعتها هي جمع الرقمين وقسمتهما على 2

80 + 70 = 150 ÷ 2 = 75

ولكن المشكلة تكمن في أنه لو لم توضع درجة للمدير أو للموجه

يجمع الدرجة التي وضعت ( مثلا 80 ) مع صفر ( الدرجة التي لم توضع )

ويقسمها على 2 فيصبح الناتج 40

كيف اعالج هذه المشكلة ؟؟؟؟

ارجو المساعدة

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

شكرا لك أخي أمير عاطف

المشكلة لم تحل

لعلني لم أوصل المعلومة بشكل واضح

المشكلة هي أن متوسط درجات المدرس عند المدير والموجه كمثال :

المدرس أحمد حصل عند المدير على درجة 80

وعند الموجه على درجة 70

المجموع 150

عند القسمة على 2 يكون المتوسط 75

المدرس فيصل حصل عند المدير على درجة 80

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

المجموع 80

عند القسمة على 2 يكون المتوسط 40

وهذا غير صحيح

السؤال كيف يتعرف البرنامج أنه عندما لا يكون هناك درجة سواء عند المدير أو الموجه ... فينقل الدرجة المسجلة لدى أحدهما ( أي درجة المدير أو الموجه التي سجلت )

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

اذا كنت تعني انه اذا كانت درجة الموجه 70 مثلاً ولم يتم وضع درجة المدير فإن درجة المدير سوف تساوي درجة الموجه أي الرقم 70 والعكس صحيح ...

مثلاً لدينا ثلاث مربعات نص من نوع General Number رقم عام

درجة المدير [A] - درجة الموجه - المتوسط [C]

اذن نضع التعبير التالي داخل مربع النص C

=IIf(IsNull([a]) Or IsNull([b]);(nz([a])+nz([b]));(nz([a])+nz([b]))/2)

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

عزيزي أمير عاطف

أشكرك مرة أخرى على تواصلك

طبقت المعادلة

A مدير

B موجه

C المتوسط

المعادلة تأتي ممتازة وتأتي بالمتوسط إذا كان كانت درجات A و B مدخلة

ولكن إذا كانت درجة A غير مدخلة يأتي المتوسط ( قسمة B على 2 )

وكذلك إذا كانت درجة B غير مدخلة يأتي المتوسط ( قسمة A على 2 )

الذي أريده :

أنه إذا لم تكن درجة A غير مدخلة يعوض عنها بدرجة B المدخلة فيجمع ( B + B )

ويقسمها على 2

أي يكون المتوسط تقسيم ( B + B ) على 2

وهكذا إذا لم تكن درجة B غير مدخلة فيعوض عنها بدرجة A المدخلة فيجمع ( A+A )

ويقسمها على 2

لعلي أوصلت ما أريد

وشاكرا مرة أخرى لتواصلك

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

السلام عليكم

أخي woowoow :fff: ، بارك الله فيك

وبعد إذن أخي أمير عاطف :fff: ، أود المشاركة هنا

1. حيث أن المتغيرين a,b درجة المدير والموجه تسمحان بالقيمة الفارغة Null فهما متغيران Variant

2. ربما تستغربان الحل ، فإنه لا حل لحساب المتوسط لهذه المسألة التي تبدو غاية في البساطة إلا الحل المعقد التالي وهو :

الوسط الحسابي = (Nz(Nz(a, b), 0) + Nz(Nz(b, a), 0)) / 2

واسمحا لي أن أشرح لكما كيف تعمل المعادلة السابقة

إذا كانت a = null فإننا نجعل قيمة b =a وإذا كانت قيمة b = null فإننا نجعل النتيجة 0

وهكذا للجزء الثاني ولكن بعكس المتغيرات .

مع الاحترام والتقدير

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

  • 15 years later...

ممكن مساعدة 

=IIf(IsNull(nz([m1])+nz([m2])+nz([m3])+nz([m4])+nz([m5]))or=0

عندي حقول 6 اريد اجمعهن لكن المشكلة الا الحقول كلهن يالله يجمع فعلى سبيل المثال لو تركت حقل فارغ منهن لايجمع ممكن الحل 

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

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