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

في Excel، يُعد استخدام مقبض التعبئة لإنشاء سلسلة أرقام يدويًا طريقة شائعة لتوليد أرقام تسلسلية أو فهارس للقوائم. لكن في كثير من الأحيان، قد تحتاج إلى ترقيم الصفوف فقط عندما تحتوي الخلية المجاورة على بيانات. على سبيل المثال، قد ترغب في ترقيم الصفوف تلقائيًا ضمن قائمة معينة، مع تخطي الترقيم تمامًا في الصفوف التي تكون خلاياها المجاورة فارغة. والأفضل من ذلك، أن تتوقع تحديث هذه الأرقام فورًا بمجرد إدخال بيانات جديدة أو حذفها—ليظل تسلسلك دومًا دقيقًا ومحدّثًا دون الحاجة لأي تدخل يدوي.
ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام صيغة
ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام كود VBA
ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة باستخدام صيغة
تُعدّ إحدى الطرق الفعّالة لتحقيق ترقيم ديناميكي للصفوف بناءً على قيم الخلايا المجاورة استخدام صيغة Excel. فباستخدام هذه الطريقة، يظهر رقم الصف فقط عندما تحتوي الخلية المجاورة على قيمة، ويتم تحديث الترقيم تلقائيًا كلما أُضيفت بيانات أو حُذفت من تلك الخلايا ليظل متوافقًا معها. إليك طريقة عملية يمكنك تطبيقها:
1. حدد الخلية التي تريد أن يبدأ فيها الترقيم (على سبيل المثال،)A2 إذا كانت بياناتك تبدأ منB2). أدخل الصيغة التالية:
=IF(B2<>"",COUNTA($B$2: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). وفي حال حدوث أخطاء غير متوقعة، راجع ما إذا كنت قد غيّرت هيكل ورقة العمل، مثل دمج الخلايا أو وجود بيانات في صفوف العناوين.
أفضل أدوات الإنتاجية لمكتبتك
عزِّز مهاراتك في 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 وPowerPoint بالإضافة إلى Office Tab Pro
- برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل