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

موضوع مميز_عمل جمع تلقائى بواسطة Dynamic table Range مع الداله OFFSET


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

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


حتى لا ننسى هذه المشاركة    المدى والجدول الديناميكى الابعاد (Dynamic table)

 

تم ارفاق كود الحل من الفاضل _ أ /  عمر الحسينى _أبو تامر

 

جمع تلقائى لمدى معين باستخدام  Dynamic table Range مع الداله  OFFSET

فيمكن استخدام المدى المتحرك بمعنى المدى الديناميكى (Dynamic Range)

فى عمل جدول ذو مدى ديناميكى (Dynamic table)

ولعمل Dynamic Range يجب اجادة استخدام دالة (OFFSET) مع احد دوال العد مثل (COUNTA)

الجدول الديناميكى يمكن عملة بطريقتين حسب احتياجك

النوع الاول هو الجدول ذو المدى المتحرك بعدد الصفوف حسب احتوائها للبيانات وهو ما فهمت من طلبك

شاهد المرفق

ستجد فى المرفق ورقتين

الورقة الاولى بها مثال لما تطلب اللون الاخضر هو مدى الجدول ويتم انشاء المدى (MyRange1)

من قائمة ( ادراج / اسم / تعريف )

وكتابة اسم المدى فى خانة (الاسماء فى المصنف)

ومعادلة المدى فى ( يشير الى )

والمعادلة المستخدمة هى :

=OFFSET(Test1!$B$8;0;0;COUNTA(Test1!$B$8:$B$141);13)

والخلية الصفراء تقوم بعملية جمع الجدول وصيغتها :

=SUM(MyRange1)

والورقة الثانية :

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

Dynamic_table.rar

 

و الان مع شرح الداله

Offset

استخدام دالة ( Offset ) لتصنع مدى او نطاق ديناميكى

هي دالة حيوية لها كثير من الاستخدامات

دالة (Offset) من الدوال الهامة جدا التى تتعامل مع مراجع الخلية

وهى من الدوال التى تزيد امكانيات الدوال الاخرى التى تقترن بها

ودالة (Offset) تعيد قيمة من اي خلية يشار اليها بعدد من الصفوف والاعمدة التى تبتعد عنها .

وصيغة الدالة هى :

=OFFSET(reference,rows,cols,height,width)

- العامل الاول : الخلية المرجع او الخلية الاساس او الام 2 - العامل الثانى : عدد الصفوف 3 - العامل الثالث : عدد الاعمدة 4 - العامل الرابع : الارتفاع محدد بعدد من الصفوف 5- العامل الخامس : العرض محدد بعدد من الاعمدة وقد تم استخدام دالة () فى المثال الذى اشرت اليه اخى لعمل مدى متحرك او ديناميكى ولنعمل معا مثال بسيط : نحن نريد إنشاء مدى لجدوال من البيانات يحتوى على 10 صف و 5 أعمدة الوضع العادى لهذا الاجراء هو ان نقوم بتعليم هذا المدى بدأ من الخلية (A1) الى الخلية (E10) من قائمة (ادراج / اسم / تعريف) ونكتب اسم هذا المدى وليكن ( Rng) سنجد ان الصيغة الموجود اثناء انشاء الجدول فى الصندوق الحوارى (تعريف اسم) والتى تشير الى احداثيات المدى ( Rng) هى : A1:E10 وهى عبارة عن 10 صف و 5 أعمدة وتظل هكذا دائما هذا المدى دائما ثابت كما نعرف سواء احتوى الجدوال على بيانات او لم يحتوى على بيانات هنا تأتى فائدة انشاء المدى الديناميكى الذى تزاد عدد صفوفة او تنكمش تبعا لأحتواء المدى على بيانات وخاصة فى العمود الاول او حسب اى عمود تريدة ليكون هو الحاكم بأمر المدى حسب احتوائة على بيانات . سنقوم معا بإنشاء نفس المدى ولكن بأسم ( MyRange ) وبنفس الابعاد التى اشرنا اليها وهى عبارة عن 10 صف و 5 أعمدة . ولكن هذه المرة سيكون كمدى دينامكى يتمدد وينكمش حسب احتواء العمود الاول (A) على بيانات اى اذا كانت الخلايا من (1A) الى (3A) بها بيانات كان المدى عبارة عن 3 صف و 5 أعمدة . اما اذا كانت الخلايا من (1A) الى (7A) بها بيانات كان المدى عبارة عن 7 صف و 5 أعمدة . شئ جميل جدا طبعا لمن يتعامل مع الاكواد وخاصتا من يعمل مع اسماء النطاقات بدل من الاشارة الى المدى بالخلايا المرجعية له 0 اخى قم فتح ملف جديد فارغ لنعمل هذا المثال : قم بتسمية الورقة الاولى Test1 فى الورقة الاولى قم بتحدد المدى (A1:E10) وقم بتلوين خلاياه باللون الاخضر الفاتح ليكون فقط واضح لنا . قف فى اى خلية واضغط مفتاحى (كنترول + اف3) لفتح صندوق الحوار (تعريف اسم) فى خانة (الاسماء فى المصنف) اكتب اسم المدى او النطاق فى هذا المثال وليكن (MyRange) وفى خانة (يشير الى) اكتب الصيغة التالية : سنقوم بشرحا بعد إنشاء المدى والتعرف عليه

=OFFSET(Test1!$A$1;0;0;COUNTA(Test1!$A$1:$A$10);5)

ثم اضغط موافق وقم بحفظ الملف املئ الخلايا الخضراء بأى بيانات اضغط مفتاح (اذهب الى) اى مفتاح (اف5) و اكتب (MyRange) طبعا بدون الاقواس سنجد ان المنطقة الخضراء تم تعليمها بالكامل (A1:E10) الان قم بمسح بيانات الصف العاشر والتاسع اضغط مفتاح مفتاح (اف5) و اكتب (MyRange) سنجد هنا ان المنطقة المعلمة عبارة عن ثمانية صفوف من الجدول والان امسح محتويات الخلية (8A) اضغط مفتاح مفتاح (اف5) و اكتب (MyRange) سنجد هنا ان المنطقة المعلمة عبارة عن سبعة صفوف من الجدول لماذا اخى سنفهم ذلك من شرج صيغة المدى :

=OFFSET(Test1!$A$1;0;0;COUNTA(Test1!$A$1:$A$10);5)

لاحظ ان

Test1!

هذا هو اسم اورقة الاولى ملحق به علامة التعجب ليشر الى اسم الورقة (هذه طريقة الاشارة الى اسماء الاوراق فى صيغ المعادلات) 1 - العامل الاول :

 Test1!$A$1

وهو يشير الى الخلية (1A) فى الورقة ( Test1 ) اى الخلية الاساسية او نقطة بداية المدى او خلية الارتكاز او الخلية الام 2 - العامل الثانى : صفر 3 - العامل الثالث : صفر العامل الثانى والثالث صفر لأننا لن نبتعد عن الخلية الام بأى عدد من الخلايا لا رأسيا او افقيا 4 - العامل الرابع :

COUNTA(Test1!$A$1:$A$10)

هذا العامل هو قلب المدى المتحرك او الديناميكى او المفصلى فهو يقوم بعد الخلايا فى العمود الاول من (A1) الى (A10) .

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

وايضا عندما قمنا بمسح محتويات الخلية (A8) كان ناتج هذا العامل هو 7 أى 7 صفوف وهنا بيت القصيد .

لان ارتفاع الجدول او المدى (MyRange) يتحدد حسب احتواء المدى (A1: A10) على بيانات .

5- العامل الخامس : 5

وهنا نقوم بتحديد عرض الجدول او المدى (MyRange) بعدد من الاعمدة وهو 5 أعمدة وهو ثابت دائما .

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

ليكون جدول متحرك او ديناميكى كامل الاحساس بالنسبة لعدد صفوف واعمدة الجدول

ولكن فى مثالنا هذا هو يتحسس فقط عدد الصفوف بالتحكم فى العامل الرابع

ولو اردنا ان يكون كامل الاحساس يجب ان يكون العامل الخامس مفصلى ايضا كالرابع

مع تغير عناوين الخلايا الى العناوين المناظرة .

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

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

فى حجم المدى المحتوى على بيانات .

مع تحيات عمر الحسينى _أبو تامر

Dynamic_table.rar

 

 و لا تنسونا من صالح الدعاء

 

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

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.

×
×
  • اضف...

Important Information