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

كيف يمكنني البحث عن أول قيمة غير صفرية في Excel وإرجاع رأس العمود المقابل لها؟

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

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

البحث عن أول قيمة غير صفرية وإرجاع رأس العمود المقابل


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

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

1. حدد خلية فارغة لعرض النتيجة؛ في هذا المثال، تم استخدام الخليةK2.

=INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0))

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

استخدام صيغة للبحث عن أول قيمة غير صفرية وإرجاع رأس العمود المقابل

ملاحظة: في الصيغة أعلاه، يشيرB1:I1 إلى نطاق رؤوس الأعمدة التي ترغب في إرجاعها، بينما يمثلB2:I2 بيانات الصف الذي تقوم بتحليله للعثور على أول قيمة غير صفرية.

إذا كانت بياناتك تبدأ في أعمدة أو صفوف مختلفة، فلا تنسَ تعديل نطاقات الصيغة وفقًا لذلك. تعمل هذه الصيغة بكفاءة طالما أن هناك قيمة واحدة على الأقل غير صفرية في كل صف يتم تحليله؛ أما إذا كانت جميع القيم صفرًا، فستُرجع الصيغة خطأً. وفي مثل هذه الحالات، يُفضّل تضمين الصيغة داخل دالةIFERROR على النحو التالي:=IFERROR(INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)),"No non-zero") لإرجاع رسالة مخصصة بدلًا من الخطأ.

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

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

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

1. انقر على تبويبالمطور > Visual Basic لفتح نافذةMicrosoft Visual Basic for Applications. (إذا لم يكن تبويب المطور ظاهرًا، يمكنك إضافته عبر)ملف > خيارات > تخصيص الشريط.) في محرر VBA، انقر علىإدراج > وحدة نمطية.

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

Sub LookupFirstNonZeroAndReturnHeader()
    Dim ws As Worksheet
    Dim dataRange As Range
    Dim headerRange As Range
    Dim outputCell As Range
    Dim r As Range
    Dim c As Range
    Dim firstNonZeroCol As Integer
    Dim i As Long
    Dim xTitleId As String
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set ws = Application.ActiveSheet
    Set dataRange = Application.InputBox("Select the data range (excluding headers):", xTitleId, Selection.Address, Type:=8)
    If dataRange Is Nothing Then Exit Sub
    Set headerRange = ws.Range(dataRange.Offset(-1, 0).Resize(1, dataRange.Columns.Count).Address)
    For i = 1 To dataRange.Rows.Count
        Set r = dataRange.Rows(i)
        firstNonZeroCol = 0
        
        For Each c In r.Columns
            If c.Value <> 0 And c.Value <> "" Then
                firstNonZeroCol = c.Column - dataRange.Columns(1).Column + 1
                Exit For
            End If
        Next c
        
        Set outputCell = r.Cells(1, r.Columns.Count + 1)
        
        If firstNonZeroCol > 0 Then
            outputCell.Value = headerRange.Cells(1, firstNonZeroCol).Value
        Else
            outputCell.Value = "No non-zero"
        End If
    Next i
    
    On Error GoTo 0
    MsgBox "Completed! Results are in the column to the right of your data.", vbInformation, "KutoolsforExcel"
End Sub

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

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

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

لقطة شاشة لـ kutools for excel ai

افتح سحر إكسل مع KUTOOLS AI

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

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

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