إزالة الخلايا الفارغة من نطاق

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

لدينا نطاق من الخلايا التي تحتوي على بيانات تحتوي على خلايا فارغة:

 

تتمثل المهمة في إزالة الخلايا الفارغة ، مع ترك الخلايا التي تحتوي على معلومات فقط.

الطريقة 1. خشن وسريع

  1. اختيار النطاق الأصلي
  2. اضغط على المفتاح F5، زر' التالي تسليط الضوء (مميز). في النافذة التي تفتح ، حدد خلايا فارغة(فراغات) ثم انقر OK.

    إزالة الخلايا الفارغة من نطاق

    تم تحديد جميع الخلايا الفارغة في النطاق.

  3. نعطي أمرًا في القائمة لحذف الخلايا المحددة: انقر بزر الماوس الأيمن- احذف الخلايا (حذف الخلايا) مع التحول التصاعدي.

الطريقة 2: صيغة الصفيف

للتبسيط ، دعنا نسمي نطاقات العمل باستخدام مدير الاسم (مدير الاسم) علامة التبويب معادلة (الصيغ) أو القائمة في Excel 2003 والإصدارات الأقدم إدراج - اسم - تعيين (أدخل - اسم - تعريف)

 

اسم النطاق B3: B10 فارغ، النطاق D3: D10 - لا شيء فارغ. يجب أن تكون النطاقات بنفس الحجم تمامًا ، ويمكن تحديد موقعها في أي مكان بالنسبة لبعضها البعض.

حدد الآن الخلية الأولى من النطاق الثاني (D3) وأدخل هذه الصيغة المخيفة فيها:

= IF (ROW () -ROW (NoEmpty) +1> NOTROWS (YesEmpty) -COUNTBLANK (YesEmpty)؛ "" + الصفوف (هناك فارغة))) ؛ LINE () - ROW (لا فارغ) +1) ؛ العمود (هناك فارغة) ؛ 4)))

في النسخة الإنجليزية سيكون:

= IF (ROW () - ROW (NoEmpty) +1> ROWS (Empty) -COUNTBLANK (Empty)، ""، INDIRECT (ADDRESS (SMALL (((IF (Empty <> ""، ROW (Empty)، ROW () + ROWS (HaveEmpty))) ، ROW () - ROW (NoEmpty) +1) ، COLUMN (HaveEmpty) ، 4)))

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

 

الطريقة الثالثة. وظيفة مخصصة في VBA

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

للقيام بذلك ، افتح محرر Visual Basic (ALT + F11) ، أدخل وحدة فارغة جديدة (القائمة إدراج - وحدة) وانسخ نص هذه الوظيفة هناك:

الدالة NoBlanks (DataRange as Range) كمتغير () Dim N مثل Dim N2 طويل مثل Dim Rng طويل مثل Range Max Application.Caller.Cells.Count ، DataRange.Cells.Count) نتيجة ReDim (1 إلى MaxCells ، 1 إلى 1) لكل Rng في DataRange.Cells If Rng.Value <> vbNullString ثم N = N + 1 نتيجة (N ، 1 ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result (N2، 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 ثم NoBlanks = Application.Transpose (النتيجة) الآخر NoBlanks = النتيجة وظيفة End If End  

لا تنس حفظ الملف والعودة من محرر Visual Basic إلى Excel. لاستخدام هذه الوظيفة في مثالنا:

  1. حدد نطاقًا كافيًا من الخلايا الفارغة ، على سبيل المثال F3: F10.
  2. الذهاب إلى القائمة إدراج - وظيفة (إدراج - وظيفة)أو انقر فوق الزر إدراج وظيفة (إدراج الوظيفة) علامة التبويب معادلة (الصيغ) في الإصدارات الأحدث من Excel. في الفئة تعريف المستخدم (تعريف المستخدم) اختر وظيفتنا لا بلانكس.
  3. حدد نطاق المصدر بالفراغات (B3: B10) كوسيطة للدالة واضغط كترل + شيفت + إنترلإدخال الدالة كصيغة صفيف.

:

  • حذف كل الصفوف الفارغة في الجدول مرة واحدة باستخدام ماكرو بسيط
  • إزالة جميع الصفوف الفارغة في ورقة العمل مرة واحدة باستخدام الوظيفة الإضافية PLEX
  • ملء سريع لجميع الخلايا الفارغة
  • ما هي وحدات الماكرو ، حيث يمكنك ادراج التعليمات البرمجية للماكرو في VBA

 

اترك تعليق