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

كيف يمكنك دائمًا الحصول على القيمة من الخلية العلوية عند إدراج صف أو حذفه في Excel؟

المؤلفXiaoyangتاريخ التعديل

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

لقطة شاشة توضح كيف ينكسر المرجع إلى الخلية أعلاه بعد إدراج صف في Excel

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

جدول المحتويات:


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

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

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

=INDIRECT(ADDRESS(ROW()-1,COLUMN()))

بعد كتابة الصيغة، اضغط علىEnter. ستعرض الخلية الحالية فورًا قيمة الخلية التي تقع مباشرةً فوقها، كما هو موضح أدناه:

لقطة شاشة توضح الصيغة المستخدمة للإشارة إلى الخلية أعلاه في Excel باستخدام INDIRECT و ADDRESS

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

لقطة شاشة توضح الحفاظ على مرجع الخلية الصحيح بعد إدراج صف في Excel

شرح المعاملات ونصائح:

  • ستجلب هذه الصيغة القيمة من الخلية الواقعة مباشرةً فوق خلية الصيغة الحالية—لذا فإن استخدامها في الخلية B6 سيُظهر دائمًا قيمة الخلية B5، حتى لو تم إدراج صفوف أو حذفها فوقها.
  • إذا استخدمت هذه الصيغة في الصف الأول من بياناتك (مثل A1)، فقد تحاول جلب بيانات من صف غير موجود، مما يؤدي إلى خطأ من نوع#REF!. ولتجنب ذلك، يمكنك إضافة معالجة للخطأ—على سبيل المثال، باستخدام الدالة=IF(ROW()=1,"",INDIRECT(ADDRESS(ROW()-1,COLUMN()))) لعرض خلية فارغة في الصف الأول.
  • ضع في اعتبارك أن دالةINDIRECT دالة متقلبة، لذا قد يؤدي استخدامها المفرط في أوراق العمل الكبيرة جدًّا إلى إبطاء عمليات الحساب.
  • تعمل هذه الصيغة بشكل مثالي عندما تريد الحفاظ على علاقة صارمة بموقع الصف، بغض النظر عن التغييرات التي قد تطرأ على هيكل ورقة العمل.

استكشاف الأخطاء واقتراحات موجزة:
إذا لم تُحدَّث صيغتك كما هو متوقع بعد إدراج صفوف أو حذفها، فتأكد أولًا من أنها مُدخلة في الخلية الصحيحة. كما يجدر بك التحقق من أنك لا تستخدم مراجع خلايا مطلقة (مثل $A$1)، لأنها لا تتغير مع تعديل الصفوف. وإذا ظهرت أخطاء من نوع#REF! في الصف الأول، ففكّر في استخدام صيغة شرطية كما ذُكر سابقًا. أما إذا كنت تبحث عن أتمتة متقدمة أو كنت بحاجة إلى نسخ القيمة فعليًّا بدلًا من مجرد الرجوع إليها، فاطّلع على حل ماكرو VBA المعتمد على الأحداث أدناه، والذي يقدّم نهجًا ديناميكيًّا مدعومًا بالكود.


سهم أزرق فقاعة جهة اليمين قم بتحديث قيمة الخلية تلقائيًا من الخلية العلوية باستخدام ماكرو VBA يعتمد على الأحداث (ديناميكي دائمًا)

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

إليك كيفية إعداد ذلك باستخدام حدث Worksheet_Change:

1. انقر بزر الماوس الأيمن على لسان ورقة العمل التي تريد تفعيل هذه الوظيفة فيها، ثم اخترView Code. وسيفتح محرر Microsoft Visual Basic for Applications وحدة ورقة العمل الصحيحة.

2.انسخ والصق كود VBA التالي في نافذة وحدة ورقة العمل:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WatchRange As Range
    On Error Resume Next
    ' Set the range you want to monitor (for example, B2:B100)
    Set WatchRange = Intersect(Target, Me.Range("B2:B100"))
    
    If Not WatchRange Is Nothing Then
        Application.EnableEvents = False
        Dim cell As Range
        
        For Each cell In WatchRange
            ' Avoid the first row, or adjust as needed
            If cell.Row > 1 Then
                cell.Value = Me.Cells(cell.Row - 1, cell.Column).Value
            End If
        Next cell
        
        Application.EnableEvents = True
    End If
End Sub

ملاحظات حول المعاملات:استبدل"B2:B100" فيMe.Range("B2:B100")بالنطاق الفعلي الذي تريد تطبيق هذا السلوك عليه (يمكنك توسيعه ليشمل عمودًا كاملاً، مثل)"B:B"، لكن يُفضَّل تقليص النطاق لتحسين الأداء وتجنب الكتابة فوق خلايا غير مقصودة).

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

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

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


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

🤖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 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل