Note: The other languages of the website are Google-translated. Back to English

كيفية البحث عن قيمة الخلية الأولى المرئية والحصول عليها بعد التصفية في Excel؟

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

ابحث عن قيمة الخلية المرئية الأولى واحصل عليها بعد التصفية باستخدام صيغة الصفيف
ابحث عن قيمة الخلية الأولى المرئية واحصل عليها بعد التصفية باستخدام VBA


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

يمكنك تطبيق صيغة الصفيف التالية للحصول على قيمة أول خلية مرئية في قائمة تمت تصفيتها. الرجاء القيام بما يلي.

1. حدد خلية فارغة لوضع أول قيمة مرئية ، أدخل الصيغة أدناه فيها ، ثم اضغط على CTRL + تغير + أدخل مفاتيح في نفس الوقت.

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))

ملاحظة: في الصيغة ، C2: C19 هي القائمة المصفاة التي تريد إرجاع قيمة الخلية المرئية الأولى ، C2 هي الخلية الأولى في القائمة. يمكنك تغييرها كما تريد.

بعد ذلك ، يمكنك رؤية قيمة الخلية المرئية الأولى في القائمة المصفاة المملوءة في الخلية المحددة كما هو موضح أعلاه.


ابحث عن قيمة الخلية الأولى المرئية واحصل عليها بعد التصفية باستخدام VBA

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

1. حدد خلية فارغة مثل E8 لوضع قيمة الخلية المرئية الأولى لقائمة تمت تصفيتها.

2. صحافة قديم + F11 مفاتيح في نفس الوقت لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

3. في ال ميكروسوفت فيسوال باسيك للتطبيقات الإطار، انقر فوق إدراج > وحدة. ثم انسخ والصق رمز فبا أدناه في نافذة الوحدة النمطية.

كود فبا: ابحث عن قيمة الخلية الأولى المرئية واحصل عليها بعد التصفية في إكسيل

Sub FirstVisibleCell()
   With Worksheets("Sheet1").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
End Sub

ملاحظة: في الكود ، الورقة 1 هي اسم الورقة الذي يحتوي على القائمة المصفاة. "C" هو اسم العمود الذي تريد الحصول على أول قيمة مرئية منه. يمكنك تغييرها كما تريد.

3. اضغط على F5 مفتاح لتشغيل التعليمات البرمجية ، ثم سيتم ملء الخلية الأولى المرئية من القائمة المصفاة التي تقع في العمود C في الخلية E8 على الفور.


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

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (17)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف تجد وتحصل على قيمة عشر (10) الخلايا المرئية الأولى بعد تصفية المجموع الفرعي في Excel؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،


Como faço para sabre o número da célula toda vez que realizo o filtro automático no vba via loop؟
على سبيل المثال ، ao filtrar o valor 1 ، retornou as linhas 2، 3 e 4. لا توجد حلقة próximo filtro o valor 2 e retorna مثل linhas 19، 20، 22.
Como faço para que eu realizar esse filtro eu pegue exatamente o valor da linha atual da linha do filtro e não o valor da premira linha da planilha؟
شكرا لك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
وحدة ممتازة في VBA ، عملت بشكل مثالي أنا أقدر هذا! شكرًا جزيلاً على هذا المنشور !!!!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل يمكن لأي شخص أن يشرح كيف تعمل هذه الصيغة بالفعل؟

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أستمر في الحصول على خطأ وقت التشغيل '91' متغير كائن أو مع عدم تعيين متغير الكتلة. ورقة العمل الخاصة بي هي ورقة 1 بعنوان AllBrands. هذه هي صيغتي:

Sub FirstVisibleCell ()
مع أوراق العمل ("ALLBRANDS"). AutoFilter.Range
ActiveCell.Value2 = النطاق ("H" &. Offset (1، 0) .SpecialCells (xlCellTypeVisible) (1) .Row) .Value2
انتهت ب

نهاية الفرعية

سيكون موضع تقدير أي مساعدة!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا بوب ،
الكود يعمل بشكل جيد في حالتي. ما هو إصدار Excel الذي تستخدمه؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لسوء الحظ - لا الصيغة - التي تعطيني خطأ #VALUE ولا يعمل VBA من أجلي مما يعطيني خطأ وقت التشغيل "1004"
سيء جدًا لأن لدي Office 2019 وكنت أتوقع أن تعمل إحدى هذه الميزات عند تصفية خلايا معينة ... :-(
تم تصغير هذا التعليق بواسطة المشرف على الموقع
"رائع" شكرا مليون "
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مليون شكرا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إنها تعمل. شكرا جزيلا...
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تعمل هذه الصيغة ، ولكن اعلم أنه إذا كانت لديك خلايا فارغة ، فقد تتعطل الصيغة وتحدد القيمة الأولى في الجدول بأكمله ، وليس فقط في النتائج التي تمت تصفيتها. كان الحل البديل الذي وجدته هو استبدال الخلايا الفارغة بـ NULL أو مسافة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
في البداية كان لدي فراغات .... ثم تم ملء جميع الخلايا ولكن لا يزال لدي استجابة #VALUE. نأمل أن تعمل هذه الصيغة على النص أيضًا ...! شكرا على النصيحة على أي حال ؛-)
تم تصغير هذا التعليق بواسطة المشرف على الموقع
بالنسبة لي ، فإن الإجابة أعلاه ببساطة لا تعمل بشكل جيد. لدي كتاب عمل به أكثر من 23 ألف صف وهو شيء كنت أعمل على تحسينه على مر السنين. جاء الحل لي هذا الصباح في شرارة أخرى للإلهام.
بافتراض أنك تستخدم TABLE للحصول على البيانات التي تريدها ، فافعل ذلك: صف واحد (سميته "Rownmbr") مخصص لـ: = CELL ([@ [YOURFIRSTROW]])
خارج الجدول تقوم بعمل صيغة في مكان ما: = INDIRECT (CONCATENATE ("A"؛ SUBTOTAL (105؛ Table1 [Rownmbr])))
ما عليك سوى استبدال الحرف "A" في أي مكان تريد الحصول على البيانات منه. بالنسبة لي ، هذا يعمل بشكل رائع ، وليست صيغة ثقيلة لاستخدامها من شأنها أن تعيق المستند أكثر.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
نجح هذا الحل تمامًا بالنسبة لي ، حيث كنت أستخدم طاولة. كان من الصعب اتباع التعليمات ، لذلك نأمل أن يكون هذا الشرح أكثر وضوحًا.
لنفترض أن لديك جدول Excel باسم "Table_Name." أولاً ، قم بإنشاء عمود جديد في الجدول الخاص بك وقم بتسميته "RowNumber". 
في هذا العمود الجديد ، أدخل الصيغة "= ROW ([@ RowNumber])" سيؤدي ذلك بعد ذلك إلى ملء العمود الجديد بـ
في الخلية حيث تريد عرض أول قيمة مرئية ، أدخل الصيغة "= INDIRECT (" A "& SUBTOTAL (105، Table_Name [RowNumber]))" الحرف "A" هو حرف العمود الذي يحتوي على القيمة التي تريدها لكي ترجع.
ترجع الدالة SUBTOTAL (105 ، ...) الحد الأدنى لقيمة جميع الصفوف المرئية في نطاق معين ، والتي في الحالة أعلاه ستُرجع رقم الصف للصف الأول المرئي.
ترجع الدالة INDIRECT قيمة الخلية لعنوان خلية محدد. هذا هو السبب في أنك تحتاج إلى أن يحتوي الجزء الأول من الصيغة على حرف العمود الخاص بالعمود الذي تريد عرضه. الجزء الثاني من الصيغة سيرجع رقم الصف.


تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل يمكنك مساعدتي في كتابة هذه الصيغة في ورقة google باستخدام arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
تم تصغير هذا التعليق بواسطة المشرف على الموقع
في كود فبا التالي ، هل يمكنك من فضلك شرح ما يفعل SpecialCells (xlCellTypeVisible) (1) يقصد؟ ما هو 1 تستخدم بعد SpecialCells (xlCellTypeVisible)?
ActiveCell.Value2 = النطاق ("C" &. Offset (1، 0) .SpecialCells (xlCellTypeVisible) (1) .Row) .Value2
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا!
لا توجد تعليقات منشورة هنا حتى الآن

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL