سؤال في Excel ، كيف أتحقق من وجود خلية في قائمة قيم (نطاق من الخلايا)


لديّ نطاق (A3: A10) يحتوي على أسماء ، وأرغب في التحقق مما إذا كانت محتويات خلية أخرى (D1) تطابق أحد الأسماء في قائمتي.

قمت بتسمية النطاق A3: A10 "some_names" ، وأرغب في صيغة excel التي ستعطيني True / False أو 1/0 حسب المحتوى.


85
2018-05-29 20:43


الأصل




الأجوبة:


= COUNTIF (some_names، D1)

يجب أن تعمل (1 إذا كان الاسم موجود - أكثر إذا كان أكثر من مثيل واحد).


89
2018-05-29 20:47



كيف يمكنني تعديل الصيغة بحيث يعمل في الحال حيث some_names يحتوي على 2 أعمدة ، وأيضا بدلا من D1 لدي D1: E1؟ - user1993


جوابي المفضل (المعدل من إيان) هو:

=COUNTIF(some_names,D1)>0

والتي تُرجع TRUE إذا تم العثور على D1 في النطاق بعض الأسماء مرة واحدة على الأقل ، أو FALSE بخلاف ذلك.

(يُرجع COUNTIF عددًا صحيحًا لعدد مرات العثور على المعيار في النطاق)


65
2018-06-06 20:40





أعرف أن البروتوكول الاختياري ينص تحديدًا على أن القائمة جاءت من مجموعة من الخلايا ، لكن البعض الآخر قد يعثر على ذلك أثناء البحث عن نطاق محدد من القيم.

يمكنك أيضًا البحث عن قيم محددة ، بدلاً من نطاق باستخدام MATCH وظيفة. سيعطيك هذا الرقم حيث تتطابق هذه (في هذه الحالة ، النقطة الثانية ، لذلك 2). سيعود # N / A إذا لم يكن هناك تطابق.

=MATCH(4,{2,4,6,8},0)

يمكنك أيضًا استبدال الأربعة الأولى بخلية. ضع 4 في الخلية A1 ثم اكتب هذا في أي خلية أخرى.

=MATCH(A1,{2,4,6,8},0)

26
2017-11-10 22:57



لطيف جدا. لا تنس أن تضيف "عروض الأسعار" إذا لم تكن القيمة الخاصة بك رقمًا (استغرق مني بضع خطوات لفرز ذلك). - dav
للأسف لا يمكنك استخدام هذا بالتنسيق الشرطي :( - StarWeaver
بالطبع تستطيع. باستخدام Excel 2007 والإصدارات الأحدث ، يمكنك استخدام الدالة IFERROR. = IFERROR (MATCH (A1 ، {2،4،6،8} ، 0) ، 0) بعد ذلك ، يمكنك القيام بالتنسيق الشرطي الخاص بك على ما إذا كانت تلك الخلية = 0 أو> 0 ، أيهما تفضل. - George Dooling
=OR(4={2,4,6,8}) - Slai
هذه الإجابة واضحة أن الحل إرجاع # N / A - هذا صحيح. ولكن يبدو غير مفيد: لا يمكنك استخدام # N / A في شرط if ، لذلك لا يمكنك قول IF (MATCH (4 {2،3} ، 0) ، "yay" ، "boo") ... الجواب هو # N / A لا "بو" - GreenAsJade


إذا كنت ترغب في تحويل countif إلى إخراج آخر (مثل منطقي) ، فيمكنك أيضًا القيام بما يلي:

= IF (COUNTIF (some_names، D1)> 0، TRUE، FALSE)

استمتع!


18
2018-05-29 21:09



IF (، TRUE ، FALSE) غير متكرر. - pnuts
تشير TRUE و FALSE إلى ما يجب استبداله - Darcys22


بالنسبة إلى مجموعة متنوعة ، يمكنك استخدام MATCH ، على سبيل المثال ،

=ISNUMBER(MATCH(D1,A3:A10,0))


7
2018-05-29 23:28





هناك خدعة صغيرة رائعة تعيد البولية في نطاق الحالة some_names يمكن تحديدها بوضوح في هذا "purple","red","blue","green","orange":

=OR("Red"={"purple","red","blue","green","orange"})

لاحظ هذه ليست صيغة صفيف


3
2017-07-11 22:06



في الواقع ، ذلك هو صيغة صفيف. ما هو ليس صفيف دخل معادلة ؛-) - robinCTS


يمكنك عش --([range]=[cell]) في IF، SUMIFSأو COUNTIFS جدال. فمثلا، IF(--($N$2:$N$23=D2),"in the list!","not in the list"). أعتقد أن هذا قد يستخدم الذاكرة بشكل أكثر كفاءة.

بدلا من ذلك ، يمكنك التفاف ISERROR حول VLOOKUPكل ملفوف حول IF بيان. مثل، IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).


2
2017-12-05 19:33





صيغة صفيف صيغة (أدخل مع Ctrl + Shift + Enter):

=OR(A3:A10=D1)

0
2017-12-08 12:38



هذا يعمل. أعتقد أنها حصلت على downvote لأن downvoter لم يعرف كيفية إدخال صيغة صفيف ... يجب أن تبدو مثل {= OR (R34: R36 = T34)} بعد إدخالها ، إذا قمت بإدخالها بشكل صارم - GreenAsJade


في مثل هذه المواقف ، أريد فقط أن يتم تنبيهك إلى الأخطاء المحتملة ، لذا سأحل الموقف بهذه الطريقة ...

=if(countif(some_names,D1)>0,"","MISSING")

ثم انسخ هذه الصيغة من E1 إلى E100. إذا كانت قيمة في D العمود ليس في القائمة ، سأحضر الرسالة مفقودًا ولكن إذا كانت القيمة موجودة ، فأنا أحصل على خلية فارغة. وهذا يجعل القيم المفقودة تبرز أكثر من ذلك بكثير.


-1
2017-08-24 11:59