في الاكسل ثلاثة أحرف بدل للشروط وعمليات البحث: * تطابق أي عدد من الأحرف (بما في ذلك لا شيء)، و? تطابق حرفًا واحدًا بالضبط، و~ تعيد علامة * أو ? التالية إلى حرف عادي. تعدّ =COUNTIF(A2:A7,"*apple*") الخلايا التي تحتوي على apple في أي موضع.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Pattern | Count | |
| 2 | Apple juice | *apple* | 4 | |
| 3 | Green apple | apple* | 2 | |
| 4 | Pineapple | *juice | 2 | |
| 5 | Orange juice | ????? | 0 | |
| 6 | Pear | *e | 4 | |
| 7 | Apples |
*apple*يحتوي علىapple: أربعة تطابقات، لأنPineappleتُعدّ أيضًا.apple*يبدأ بـapple: فقطApple juiceوApples. تتجاهل COUNTIF حالة الأحرف.*juiceينتهي بـjuice.?????طوله خمسة أحرف بالضبط. لا يتكون أي من هذه المنتجات من خمسة أحرف، فالنتيجة 0؛ اكتبPeachفي A6 فتعدّ 1.*eينتهي بالحرفe.
اكتب نمطك الخاص في العمود C، مثل *an* أو P*، فيتحدث العدد.
المطابقة الجزئية في VLOOKUP وXLOOKUP
تقبل VLOOKUP أحرف البدل في وضع المطابقة التامة (FALSE كوسيط أخير). ادمج حرف البدل مع القيمة داخل الصيغة، فلا يُكتب في D2 إلا الأحرف الأولى:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Product | Price | Starts with | Price | |
| 2 | Apple juice | 3.5 | Pin | 4 | |
| 3 | Green apple | 1.2 | 4 | ||
| 4 | Pineapple | 4 | |||
| 5 | Orange juice | 3.2 | |||
| 6 | Pear | 0.9 |
تجد الصيغتان Pineapple. غيّر D2 إلى juice: يحتاج نمط VLOOKUP، أي juice*، أن يبدأ النص بالكلمة juice فيعيد #N/A، بينما يجد نمط XLOOKUP، أي *juice*، أول منتج يحتوي عليها، Apple juice. ومثل كل مطابقة تامة، يعيد البحث بحرف بدل أول صف يناسب النمط، فاجعل النمط محددًا بما يكفي.
لا تعامل XLOOKUP علامتي * و? كحرفي بدل إلا عندما يكون وسيطها الخامس، match_mode، مساويًا 2. وبدونه تبحث عن علامة النجمة حرفيًا. وتقبل MATCH أحرف البدل مع match_type بالقيمة 0، وXMATCH مع match_mode بالقيمة 2، تمامًا مثل XLOOKUP. راجع VLOOKUP لبقية وسائطها.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Phone products | ||
| 2 | Smartphone | |||
| 3 | Headphones | |||
| 4 | Phone stand | |||
| 5 | Laptop bag | |||
| 6 | Charger |
دورك: في D2، عدّ المنتجات التي يحتوي اسمها على phone في أي موضع.
الجمع والمتوسط بحرف بدل
كل دالة تأخذ شروطًا تقرؤها بالطريقة نفسها، لذا تعمل الأنماط نفسها في SUMIF وSUMIFS وAVERAGEIF وAVERAGEIFS وMAXIFS وMINIFS:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Region | Sales | Pattern | Total | |
| 2 | North-East | 120 | North* | 285 | |
| 3 | North-West | 95 | *West | 155 | |
| 4 | South | 80 | ????? | 150 | |
| 5 | South-West | 60 | |||
| 6 | East | 110 | |||
| 7 | North | 70 |
يجمع North* كل منطقة تبدأ بالكلمة North، بما فيها North نفسها، لأن * تطابق اللاشيء أيضًا. ويجمع ????? المناطق المكونة من خمسة أحرف بالضبط: South وNorth.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Region | Sales | West total | ||
| 2 | North-East | 120 | |||
| 3 | North-West | 95 | |||
| 4 | South | 80 | |||
| 5 | South-West | 60 | |||
| 6 | East | 110 | |||
| 7 | North | 70 |
دورك: في E2، اجمع مبيعات كل منطقة ينتهي اسمها بالكلمة West.
إيجاد علامة نجمة أو استفهام حقيقية بالرمز ~
لعدّ نص يحتوي على * أو ? فعلية، ضع قبلها علامة التلدة. وتُكتب التلدة نفسها ~~.
| A | B | C | |
|---|---|---|---|
| 1 | Note | Count | |
| 2 | Rated 5* | 1 | |
| 3 | Why? | 1 | |
| 4 | Done | 4 | |
| 5 | 5 stars |
تعدّ C2 الخلايا التي تحتوي على علامة نجمة حرفية (A2 فقط)، وتعدّ C3 التي تحتوي على علامة استفهام. وتوضح C4 الجانب الآخر: "*" وحدها تطابق أي نص، فتعدّ كل خلية نصية، 4 هنا. وتتخطى الأرقام والخلايا الفارغة، ولهذا تكون COUNTIF(range,"*") الطريقة المعتادة لعدّ الخلايا النصية.
ما الدوال التي تقبل أحرف البدل
تقبل * و? و~ | لا تقبل |
|---|---|
| COUNTIF وCOUNTIFS وSUMIF وSUMIFS وAVERAGEIF وAVERAGEIFS وMAXIFS وMINIFS | = و<> والمقارنات الأخرى |
| VLOOKUP وHLOOKUP مع FALSE | IF وحدها |
| MATCH مع 0 | FIND |
| XLOOKUP وXMATCH مع match_mode بالقيمة 2 | FILTER وUNIQUE وSORT |
| SEARCH | SUBSTITUTE وTEXTBEFORE وTEXTAFTER |
| بحث واستبدال (Ctrl+H)، ومربعات التصفية |
تأخذ SEARCH أحرف البدل داخل الصيغة: تعيد =SEARCH("b?d","a bad day") القيمة 3 في الاكسل (التفاصيل في FIND وSEARCH). ومع FILTER، استخدم ISNUMBER(SEARCH(...)) كشرط بدلًا من نمط.
خطأ شائع: حرف بدل بعد =
لا يقرأ العامل = أحرف البدل أبدًا: تسأل =A2="*apple*" هل تحتوي A2 على الأحرف السبعة *apple*. في الاكسل، مع Green apple في A2:
=A2="*apple*" FALSE
=IF(A2="*apple*","yes","no") no
ضع الاختبار في COUNTIF بدلًا من ذلك، التي تعيد 1 أو 0 لخلية واحدة، أو استخدم SEARCH:
| A | B | C | |
|---|---|---|---|
| 1 | Product | COUNTIF test | SEARCH test |
| 2 | Green apple | contains apple | contains apple |
| 3 | Pear | no | no |
تعامل IF القيمة 1 من COUNTIF على أنها TRUE والقيمة 0 على أنها FALSE. ولا تحتاج صيغة SEARCH إلى أحرف بدل أصلًا، لأن SEARCH تبحث عن النص في أي موضع من الخلية.
الأسئلة الشائعة
ما أحرف البدل في الاكسل؟
تطابق * أي عدد من الأحرف، بما في ذلك لا شيء؛ وتطابق ? حرفًا واحدًا بالضبط؛ وتجعل ~ قبل * أو ? أو ~ الحرف التالي حرفًا عاديًا. يعني "*apple*" يحتوي على apple، و"A*" يبدأ بالحرف A، و"???" ثلاثة أحرف بالضبط.
كيف أستخدم حرف بدل في VLOOKUP؟
ادمج حرف البدل مع قيمة البحث واستخدم المطابقة التامة: تجد =VLOOKUP(E2&"*",A2:B6,2,FALSE) أول إدخال يبدأ بقيمة E2. وفي XLOOKUP، اضبط match_mode على 2: =XLOOKUP("*"&E2&"*",A2:A6,B2:B6,"none",2).
لماذا لا يعمل حرف البدل في صيغة IF؟
لأن المقارنة = لا تفهم أحرف البدل، فلا تطابق =IF(A2="*apple*",...) إلا النص الحرفي *apple*. استخدم =IF(COUNTIF(A2,"*apple*"),"Yes","No") أو =IF(ISNUMBER(SEARCH("apple",A2)),"Yes","No").
كيف أعدّ الخلايا التي تحتوي على علامة نجمة؟
ضع قبلها علامة التلدة: =COUNTIF(A2:A10,"*~**"). علامتا * الأولى والأخيرة حرفا بدل، و~* علامة نجمة حرفية.