تعبئة النماذج ببيانات من الجدول

صياغة المشكلة

لدينا قاعدة بيانات (قائمة ، جدول - سمها ما تريد) بمعلومات عن المدفوعات على ورقة البيانات:

مهمة: اطبع إيصالًا نقديًا بسرعة (دفع ، فاتورة ...) لأي إدخال مطلوب محدد من هذه القائمة. يذهب!

الخطوة 1. قم بإنشاء نموذج

على ورقة أخرى من الكتاب (دعنا نسمي هذه الورقة شكل) إنشاء نموذج فارغ. يمكنك القيام بذلك بنفسك ، يمكنك استخدام النماذج الجاهزة المأخوذة ، على سبيل المثال ، من مواقع الويب الخاصة بمجلة Chief Accountant أو موقع Microsoft على الويب. لدي شيء مثل هذا:

تعبئة النماذج ببيانات من الجدول

في الخلايا الفارغة (الحساب ، المبلغ ، المستلم من إلخ) بيانات من جدول الدفع من ورقة أخرى - بعد ذلك بقليل سنتعامل مع هذا الأمر.

الخطوة الثانية: تجهيز جدول الدفع

قبل أخذ البيانات من الجدول الخاص بنموذجنا ، يحتاج الجدول إلى تحديث طفيف. وهي إدراج عمود فارغ على يسار الجدول. سنستخدم لإدخال تسمية (فليكن الحرف الإنجليزي "x") مقابل السطر الذي نريد إضافة البيانات منه إلى النموذج:

الخطوة الثالثة. ربط الجدول والنموذج

للتواصل ، نستخدم الوظيفة VPR(البحث) - يمكنك قراءة المزيد عنه هنا. في حالتنا ، لإدراج رقم الدفعة المميزة بعلامة "x" من ورقة البيانات في الخلية F9 في النموذج ، يجب إدخال الصيغة التالية في الخلية F9:

= VLOOKUP (“x”، Data! A2: G16)

= VLOOKUP (“x”؛ Data! B2: G16؛ 2؛ 0)

أولئك. ترجمتها إلى "مفهومة" ، يجب أن تجد الوظيفة في النطاق A2: G16 على ورقة البيانات سطرًا يبدأ بالحرف "x" ويعطينا محتويات العمود الثاني من هذا السطر ، أي رقم الدفع.

تتم تعبئة جميع الخلايا الأخرى في النموذج بنفس الطريقة - فقط رقم العمود يتغير في الصيغة.

لعرض المبلغ بالكلمات ، استخدمت الوظيفة الخاصة من الوظيفة الإضافية PLEX.

يجب أن تكون النتيجة كما يلي:

تعبئة النماذج ببيانات من الجدول

الخطوة 4. حتى لا يكون هناك حرفان "x" ...

إذا قام المستخدم بإدخال "x" مقابل عدة أسطر ، فستأخذ وظيفة VLOOKUP فقط القيمة الأولى التي يعثر عليها. لتجنب هذا الغموض ، انقر بزر الماوس الأيمن فوق علامة تبويب الورقة البيانات وثم النص المصدر (مصدر الرمز). في نافذة محرر Visual Basic التي تظهر ، انسخ الكود التالي:

Private Sub Worksheet_Change (ByVal Target As Range) خافت r على هيئة str طويلة خافتة كسلسلة If Target.Count> 1 ثم اخرج من Sub If Target.Column = 1 ثم str = Target.Value Application.EnableEvents = False r = Cells (Rows.Count) ، 2). End (xlUp) .Row Range ("A2: A" & r) .ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

يمنع هذا الماكرو المستخدم من إدخال أكثر من "x" في العمود الأول.

حسنا هذا كل شيء! يتمتع!

  • استخدام دالة VLOOKUP لاستبدال القيم
  • نسخة محسنة من وظيفة VLOOKUP
  • المبلغ بالكلمات (وظيفة Propis) من الوظيفة الإضافية PLEX

 

اترك تعليق