تحذف =TRIM(A2) كل مسافة قبل النص في A2 وبعده، وتختصر كل سلسلة من المسافات بين الكلمات إلى مسافة واحدة. فتصبح " Ana Silva " بالشكل Ana Silva.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Name | TRIM | Length before | Length after |
| 2 | Ana Silva | Ana Silva | 14 | 9 |
| 3 | Ben Okafor | Ben Okafor | 13 | 10 |
| 4 | Chen Wu | Chen Wu | 10 | 7 |
المسافات غير مرئية في العمود A، ولهذا يوجد عمودا الطول: تعدّها LEN. تصل المسافات الزائدة عادة مع البيانات المستوردة أو الملصوقة، وتعطّل عمليات البحث والمقارنات دون أي علامة ظاهرة.
لماذا تعطّل المسافات الزائدة الصيغ
بالنسبة إلى الاكسل، Ana مع مسافة في آخرها وAna نصان مختلفان. فتعيد المقارنة FALSE، ولا تعدّ COUNTIF الخلية، ويعيد البحث #N/A:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Name | Score | Is it Ana? | Ana's score |
| 2 | Ana | 90 | FALSE | not found |
| 3 | Ben | 85 | TRUE | 90 |
| 4 | Chen | 78 |
قيمة C2 هي FALSE ولا تجد D2 شيئًا (وبدون وسيطها الرابع كانت XLOOKUP ستعرض #N/A) لأن A2 تحتوي على Ana مع مسافة. أما D3 فتحذف المسافات من عمود البحث كله داخل الصيغة وتجد 90. يعمل ذلك في Microsoft 365 وExcel 2021؛ وفي الإصدارات الأقدم، نظّف العمود أولًا. والمسافات من أكثر أسباب الخطأ #N/A في البحث شيوعًا.
حذف كل المسافات
تُبقي TRIM دائمًا مسافة واحدة بين الكلمات. ولحذف كل مسافة، مثلًا من رقم هاتف أو رمز منتج، استبدل المسافة بلا شيء:
| A | B | C | |
|---|---|---|---|
| 1 | Code | TRIM | No spaces |
| 2 | AB 12 34 | AB 12 34 | AB1234 |
| 3 | 555 201 3344 | 555 201 3344 | 5552013344 |
| A | B | |
|---|---|---|
| 1 | Customer | Clean name |
| 2 | Eli Novak | |
| 3 | Fay Ruiz | |
| 4 | Gus Lee |
دورك: في الأسماء في العمود A مسافات زائدة. في B2، أعد الاسم الموجود في A2 دون مسافات حوله ومع مسافة واحدة بين الكلمات. تُنسخ الصيغة إلى الأسفل حتى B4.
TRIM لا تعمل: المسافات غير المنقسمة
يحتوي النص المنسوخ من صفحة ويب أو ملف PDF غالبًا على مسافات غير منقسمة، الحرف 160، بدلًا من المسافات العادية، الحرف 32. تبدوان متطابقتين، لكن TRIM لا تحذف إلا الحرف 32، فلا يتغير شيء في الاكسل:
A2: Ana Silva (a non-breaking space between the names and one at the end)
=LEN(A2) 10
=LEN(TRIM(A2)) 10, TRIM removed nothing
الحل أن تحوّل كل حرف 160 إلى مسافة عادية بالدالة SUBSTITUTE أولًا، ثم تترك الباقي لـ TRIM. النص في A2 أدناه مبني بالدالة CHAR(160) لترى الحرف الذي تلصقه صفحة الويب:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Pasted text | Length | Code of 4th character | Fixed | Fixed length |
| 2 | Ana Silva | 10 | 160 | Ana Silva | 9 |
توضح C2 كيف تتعرف على حرف غريب: تعيد CODE(MID(A2,4,1)) رمز الحرف الرابع، وهو 160 هنا. وفي D2 تسعة أحرف، أي الأحرف العشرة في A2 ناقص المسافة الأخيرة.
دالة CLEAN: حذف فواصل الأسطر والأحرف المخفية الأخرى
تحذف CLEAN الأحرف غير القابلة للطباعة ذات الرموز من 0 إلى 31: فواصل الأسطر (10)، وأحرف الرجوع (13)، وعلامات الجدولة (9). ولا تمس المسافات، لذا يكون الثنائي المعتاد =TRIM(CLEAN(A2)):
| A | B | C | |
|---|---|---|---|
| 1 | Imported | CLEAN | TRIM(CLEAN) |
| 2 | Ana Silva | AnaSilva | AnaSilva |
تحذف CLEAN فاصل السطر تمامًا، فيلتصق الاسمان بالشكل AnaSilva . وعندما يفصل فاصل السطر بين كلمات، استبدله بمسافة بدلًا من ذلك، =TRIM(SUBSTITUTE(A2,CHAR(10)," "))؛ وتعرض صفحة فاصل السطر هذه الحالة.
استبدال العمود الأصلي بالنص المنظّف
تكتب TRIM نتيجتها في خلية أخرى. لإصلاح البيانات نفسها:
- ضع
=TRIM(A2)في عمود فارغ بجانب البيانات وانسخها إلى الأسفل. - انسخ ذلك العمود (Ctrl+C، أو Cmd+C على Mac).
- حدد العمود الأصلي واختر الصفحة الرئيسية > لصق > لصق القيم، فتحصل الخلايا على نص لا على صيغ.
- احذف العمود المساعد.
يستطيع بحث واستبدال حذف المسافات دون صيغة، لكنه لا يميّز المسافات البادئة من التي بين الكلمات: استبدال المسافة بلا شيء يلصق Ana Silva لتصبح AnaSilva. واستبدال مسافتين بمسافة واحدة، مع التكرار حتى لا يجد الاكسل شيئًا يستبدله، هو النسخة اليدوية لقاعدة TRIM في المسافات الداخلية. وتبقى المسافة المفردة في البداية أو النهاية.
الأسئلة الشائعة
كيف أحذف المسافات في الاكسل؟
تحذف =TRIM(A2) المسافات البادئة واللاحقة وتترك مسافة واحدة بين الكلمات. ولحذف كل مسافة، بما في ذلك التي بين الكلمات، استخدم =SUBSTITUTE(A2," ","").
لماذا لا تحذف TRIM المسافات؟
الأرجح أن المسافات غير منقسمة (الحرف 160)، وهي شائعة في النص المنسوخ من صفحات الويب. لا تحذف TRIM إلا المسافة العادية، الحرف 32. حوّلها أولًا: =TRIM(SUBSTITUTE(A2,CHAR(160)," ")).
ما الفرق بين TRIM وCLEAN؟
تحذف TRIM المسافات الزائدة. وتحذف CLEAN الأحرف غير القابلة للطباعة ذات الرموز من 0 إلى 31، مثل فواصل الأسطر وعلامات الجدولة. وتفعل =TRIM(CLEAN(A2)) الأمرين.
كيف أستبدل العمود الأصلي بالنص بعد حذف المسافات؟
اكتب =TRIM(A2) في عمود احتياطي وانسخها إلى الأسفل، ثم انسخ ذلك العمود، وحدد العمود الأصلي، واختر الصفحة الرئيسية > لصق > لصق القيم. ثم احذف العمود المساعد.