كيفية ترقيم الصفوف تلقائيًا إذا كانت الخلية المجاورة غير فارغة في 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.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!