Skip to main content

Kutools for Office — مجموعة واحدة. خمسة أدوات. أنجز المزيد.

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

Author Xiaoyang Last modified
autonumber rows if adjacent cell not blank

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

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

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


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

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

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

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

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

autonumber if not blank with formula

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

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


arrow blue right bubble ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام كود 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 Aide: أحدث ثورة في تحليل البيانات اعتمادًا على: التنفيذ الذكي |  توليد الأكواد |  إنشاء الصيغ المخصصة |  تحليل البيانات وتوليد الرسوم البيانية |  استخدام Kutools Functions...
ميزات شائعة: البحث، تمييز أو وضع علامة على المكررات | حذف الصفوف الفارغة | دمج الأعمدة أو الخلايا بدون فقدان البيانات | تقريب بدون الصيغة...
بحث متقدم: بحث بمعايير متعددة VLookup | بحث بقيم متعددة VLookup | بحث في عدة ورقات VLookup | مطابقة غامضة...
قائمة منسدلة متقدمة: إنشاء قائمة منسدلة بسرعة | قائمة منسدلة معتمدة | قائمة منسدلة متعددة الاختيارات...
مدير الأعمدة: إضافة عدد محدد من الأعمدة | نقل الأعمدة | تبديل حالة إظهار الأعمدة المخفية | مقارنة النطاقات والأعمدة...
ميزات مميزة: التركيز على الشبكة | عرض التصميم | شريط الصيغ المحسن | مدير أدوات المصنف وورقة العمل | مكتبة النص التلقائي | منتقي التاريخ | دمج البيانات | تشفير/فك تشفير الخلايا | إرسال البريد الإلكتروني حسب الجدول | مرشح متقدم | تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...)...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ...) | أكثر من50 نوع رسم بياني (مخطط جانت، ...) | أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...) |19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ...) |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.

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