وقتی دادههای متنی را در یک کاربرگ اکسل کپی یا وارد میکنید، صفحهگسترده گهگاه فضاهای اضافی را علاوه بر محتوایی که درج کردهاید حفظ میکند. به طور معمول، تابع TRIM() به تنهایی می تواند این فضاهای ناخواسته را بین کلمات یا در ابتدا یا انتهای یک رشته متنی حذف کند. با این حال، در شرایط خاص، TRIM() نمی تواند این کار را انجام دهد.
در رایانه، فاصله بین کلمات یک ناحیه خالی نیست بلکه یک کاراکتر است - و بیش از یک نوع کاراکتر فاصله وجود دارد. یکی از نویسههای فاصله که معمولاً در صفحات وب استفاده میشود و TRIM() آن را حذف نمیکند، فضای بدون شکست است.
اگر دادهها را از صفحات وب وارد کرده یا کپی کردهاید، ممکن است نتوانید فضاهای اضافی را با تابع TRIM() حذف کنید.
فضاهای بدون شکست و منظم
فضاها کاراکترهایی هستند و هر کاراکتر با مقدار کد اسکی خود ارجاع داده می شود. ASCII مخفف American Standard Code for Information Interchange - استانداردی بینالمللی برای کاراکترهای متنی در محیطهای عملیاتی کامپیوتر است که یک مجموعه از کدها را برای 255 کاراکتر و نماد مختلف مورد استفاده در برنامههای کامپیوتری ایجاد میکند.
کد ASCII برای فضای بدون شکست 160 است. کد اسکی برای یک فضای معمولی 32 است.
عملکرد TRIM() فقط می تواند فضاهایی را حذف کند که کد ASCII 32 دارند.
سبک های مختلف از محدوده های مختلفی از کدهای اسکی پشتیبانی می کنند. جدول استاندارد 127 مقدار ممکن را ارائه می دهد. تایپفیسها باید حداقل از یک نقشه ASCII 127 کاراکتری پشتیبانی کنند تا معتبر در نظر گرفته شوند. اما کاراکترهای ASCII "بسط یافته" که با کدهای اضافی نامیده می شوند، اغلب کاراکترهای اضافی را به فونت های مورد علاقه شما اضافه می کنند.در واقع، فضای بدون شکست، خود یک کاراکتر ASCII توسعه یافته است، در حالی که یک فضای استاندارد… خوب، استاندارد است.
حذف فضاهای بدون شکست
فاصله های بدون شکست را از یک خط متن با استفاده از توابع TRIM()، SUBSTITUTE() و CHAR() حذف کنید.
از آنجایی که توابع SUBSTITUTE() و CHAR() در داخل تابع TRIM() تودرتو هستند، فرمول باید به جای استفاده از کادر محاوره ای توابع برای وارد کردن آرگومان ها در صفحه کار تایپ شود.
فرمول، با فرض اینکه دادهها با فاصلههای بدون شکست در سلول A1 هستند، این است:
چگونه فرمول کار می کند
هر تابع تو در تو کار خاصی را انجام می دهد:
- تابع CHAR کدهای ASCII مربوطه را برای دو فضای مختلف در فرمول - 160 و 32تعیین می کند.
- تابع SUBSTITUTE جایگزین یا جایگزین تمام فاصله های بدون شکست بین کلمات با فاصله های منظم می شود
- عملکرد TRIM فواصل منظم اضافی بین کلمات را حذف می کند تا عبارت به طور معمول در کاربرگ ظاهر شود
با توجه به منطق ترتیب عملیات فرمولهای اکسل، فرمول تابع SUBSTITUTE() را فراخوانی میکند و به آن میگوید هر رخداد CHAR(160) - فضای بدون شکستن - را با یک فضای استاندارد، CHAR جایگزین کند. (32)، موجود در سلول A1. سپس، تابع TRIM() فضاهای استاندارد را از رشته جایگزین حذف می کند.
ملاحظات
اگر TRIM() نتواند کار را انجام دهد، ممکن است مشکلاتی به جز فضاهای بدون شکستگی داشته باشید، به خصوص اگر با منبع اصلی ارائه شده در HTML کار می کنید. وقتی مطلب را در اکسل جایگذاری میکنید، آن را بهعنوان متن ساده بچسبانید تا قالببندی پسزمینه را از رشته حذف کنید و قالببندیهای خاص مانند کاراکترهایی را که به صورت سفید روی سفید ارائه میشوند حذف کنید - که به نظر یک فاصله است، اما اینطور نیست. همچنین برگه های جاسازی شده را بررسی کنید، که ممکن است با استفاده از همان فرمول بالا جایگزین شوند، اما کد اسکی 160 را با 9 جایگزین کنید.
SUBSTITUTE() برای جایگزینی هر کد ASCII با کد دیگری مفید است.