KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

كيف يمكن ترقيم الصفوف تلقائيًا في Excel إذا كانت الخلية المجاورة غير فارغة؟

المؤلفXiaoyangتاريخ التعديل
ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة

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

ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام صيغة

ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام كود VBA


سهم أزرق مع فقاعة يمينترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام صيغة

تُعدّ إحدى الطرق الفعّالة لتحقيق ترقيم ديناميكي للصفوف بناءً على قيم الخلايا المجاورة استخدام صيغة Excel. فباستخدام هذه الطريقة، يظهر رقم الصف فقط عندما تحتوي الخلية المجاورة على قيمة، ويتم تحديث الترقيم تلقائيًا كلما أُضيفت بيانات أو حُذفت من تلك الخلايا ليظل متوافقًا معها. إليك طريقة عملية يمكنك تطبيقها:

1. حدد الخلية التي تريد أن يبدأ فيها الترقيم (على سبيل المثال،)A2 إذا كانت بياناتك تبدأ منB2). أدخل الصيغة التالية:

=IF(B2<>"",COUNTA($B$2:B2),"")
تلميح: تتحقق هذه الصيغة مما إذا كانت الخليةB2غير فارغة. فإذا كانت هناك بيانات فيB2، فإنها تحسب جميع الخلايا غير الفارغة منB2حتى الصف الحالي، مما يُنشئ تسلسلاً مستمرًا للصفوف التي تحتوي على قيم. وإذا كانتB2فارغة، تُرجع الصيغة خلية فارغة، مما يترك خلية التسلسل فارغة.

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

ترقيم تلقائي إذا لم تكن فارغة باستخدام صيغة

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

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


سهم أزرق مع فقاعة يمينترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام كود VBA

للمستخدمين المتقدمين، أو في الحالات التي تفضل فيها عدم تطبيق الصيغ على ورقة العمل بأكملها—أو عندما تحتاج إلى تحديث الترقيم تلقائيًا حتى عند لصق البيانات أو حذف كتل منها أو إجراء تغييرات متكررة—يُعد ماكرو VBA بديلًا جذابًا. فباستخدام VBA، يمكنك تحديث عدد الصفوف المُرقَّمة تلقائيًا في عمود واحد كلما تم تعديل الخلية المجاورة، دون الاعتماد على الصيغ. وهي مثالية لنماذج إدخال البيانات، أو سجلات الاستيراد، أو قوائم المهام التي يتغير تخطيطها بشكل متكرر.

1.اضغط Alt + F11 لفتح نافذة محرر Visual Basic for Applications. في مستعرض المشروع، ابحث عن مصنفك، ثم انقر نقرًا مزدوجًا على ورقة العمل ذات الصلة (مثل “Sheet1”) ضمن “Microsoft Excel Objects”.

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

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim chk As Range
    Set chk = Intersect(Target, Me.Columns("B"))
    If chk Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
    Call RenumberNonBlank(Me, "B", "A", 2)
    Application.EnableEvents = True
End Sub
Sub RenumberNonBlank(ws As Worksheet, _
                    keyCol As String, _
                    numCol As String, _
                    firstDataRow As Long)
    Dim lastRow As Long
    Dim r As Long
    Dim seq As Long
    lastRow = ws.Cells(ws.Rows.Count, keyCol).End(xlUp).Row
    seq = 1
    For r = firstDataRow To lastRow
        With ws
            If Trim(.Cells(r, keyCol).Value) <> "" Then
                .Cells(r, numCol).Value = seq
                seq = seq + 1
            Else
                .Cells(r, numCol).ClearContents
            End If
        End With
    Next r
End Sub

3. احفظ وأغلق محرر VBA. الآن، في كل مرة تُضيف أو تُعدّل أو تحذف محتوى في العمود B، سيتم إعادة ترقيم العمود A تلقائيًا ليعكس وجود البيانات (أو غيابها)، وسينتظم التسلسل تصاعديًا أو تنازليًا حسب إضافة أو حذف الإدخالات في العمود B.

ملاحظات وتحذيرات:يجب وضع هذا الماكرو تحديدًا في نافذة كود ورقة العمل المرغوبة (وليس في وحدة نمطية أو ThisWorkbook) ليتمكن من الاستجابة لتعديلات الخلايا. كما يجب التأكد من تمكين الماكروات في إعدادات Excel لديك ليعمل الكود بشكل صحيح. وإذا انتقل عمود «نطاق البيانات» إلى أعمدة أخرى غير A وB، فقم بتحديثSet chk = Intersect(Target, Me.Columns("B")) وCall RenumberNonBlank(Me, "B", "A", 2) وفقًا لذلك.

استكشاف الأخطاء وإصلاحها: إذا لم يتم تحديث الترقيم، فتأكد من أنك تُجري التعديلات في ورقة العمل الصحيحة، وأن الكود موجود في نافذة كود ورقة العمل المناسبة. كما يجب أن تحفظ المصنف كملف يدعم الماكروات (.xlsm). وفي حال حدوث أخطاء غير متوقعة، راجع ما إذا كنت قد غيّرت هيكل ورقة العمل، مثل دمج الخلايا أو وجود بيانات في صفوف العناوين.


أفضل أدوات الإنتاجية لمكتبتك

🤖KUTOOLS AI مساعد: ثوّر تحليل البيانات استنادًا إلى:التنفيذ الذكي   |  إنشاء الكود|  إنشاء الصيغ المخصصة  |  تحليل البيانات وإنشاء المخططات البيانية|  استدعاء الوظائف المحسنة
الميزات الشائعة:البحث، التمييز أو وضع علامة على المكررات   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |  التقريب بدون استخدام الصيغة...
بحث متقدم:VLookup متعدد المعايير  |  VLookup متعدد القيم  |   VLookup عبر أوراق متعددة   |   مطابقة غامضة....
قائمة منسدلة متقدمة:إنشاء قائمة منسدلة بسرعة   |  قائمة منسدلة تابعة   |  قائمة منسدلة متعددة الاختيار....
مدير الأعمدة:إضافة عدد محدد من الأعمدة|نقل الأعمدة|تبديل حالة ظهور الأعمدة المخفية|مقارنة النطاقات والأعمدة...
ميزات مميزة:التركيز على الشبكة   |  عرض التصميم   |شريط الصيغ المحسن   | مدير الدفتر والورقة   |  مكتبة الموارد(نص تلقائي)|  أداة اختيار التاريخ   |  تجميع ورقات العمل  |  تشفير/فك تشفير الخلايا   | إرسال رسائل البريد الإلكتروني حسب القائمة   |  مرشح متقدم   |   تصفية خاصة(تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل 15 مجموعات الأدوات:12 أدواتالنصوص(إضافة نص،حذف الأحرف المحددة، ...)|   50+أنواعالمخططات البيانية(مخطط جانت، ...)|   40+ صيغعملية(حساب العمر بناءً على تاريخ الميلاد، ...)|   19 أدواتالإدراج(إدراج رمز QR،إدراج صورة من المسار، ...)|   12 أدواتالتحويل(تحويل إلى كلمات،تحويل العملة، ...)|   7 أدواتدمج وتقسيم(دمج متقدم للصفوف،تقسيم الخلايا، ...)|... وأكثر من ذلك
استخدم Kutools باللغة التي تفضلها – يدعم الإنجليزية والإسبانية والألمانية والفرنسية والصينية و40+ لغات أخرى!

عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...


يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير

  • تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
  • افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
  • يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!

جميع الإضافات من Kutools في برنامج تثبيت واحد!

Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.

ExcelWordOutlookTabsPowerPoint
  • حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
  • برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
  • يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
  • تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل