ویژگی تصویر

تابع CHAR در اکسل — معرفی، کاربردها و نکات پیشرفته

  /  اکسل   /  تابع char در اکسل
بنر تبلیغاتی الف

تابع CHAR یکی از توابع مفید اکسل است که از یک عدد (کد) برای برگرداندن کاراکتری متناظر در جدول ANSI یا کد صفحه سیستم استفاده می‌کند. این تابع در بسیاری از سناریوهای پردازش متن، ساخت قالب‌های خروجی و حذف یا درج کاراکترهای خاص کاربرد دارد. در این مقاله به صورت کاربردی و با مثال‌های واقعی توضیح می‌دهیم چگونه از CHAR استفاده کنید، تفاوت آن با UNICHAR، و راهکارهای عملی برای مشکلات متداول.

فرمول و قاعده پایه

ساختار تابع ساده است:

=CHAR(number)

پارامتر number باید عدد صحیح بین 1 تا 255 باشد. اگر عدد خارج از این بازه باشد، اکسل خطای #VALUE! برمی‌گرداند.

موارد کاربرد رایج

  • درج شکست خط (line break) داخل یک سلول
  • ایجاد کاراکترهای کنترلی مثل تب یا فاصله غیرقابل‌شکستن
  • ترکیب رشته‌ها با نمادهای خاص یا بولت‌ها
  • حذف یا جایگزینی کاراکترهای نامرئی (مثلاً از فایل‌های واردشده)

مثال‌های عملی

1) ایجاد متن چندخطی در یک سلول (Windows):

=A1 & CHAR(10) & A2

این فرمول مقدار سلول A1 و A2 را با یک شکست خط بینشان ترکیب می‌کند. توجه کنید که برای دیدن چندخطی شدن باید Wrap Text برای آن سلول فعال شود. در Windows معمولاً CHAR(10) (LF) برای شکست خط استفاده می‌شود؛ در مک ممکن است CHAR(13) (CR) کاربرد داشته باشد.

2) تبدیل جداکننده به خط جدید (مثال: داده‌هایی که با «;» جدا شده‌اند):

=SUBSTITUTE(A1, ";", CHAR(10))

این فرمول همه «;»ها را با شکست خط جایگزین می‌کند و پس از فعال‌سازی Wrap Text لیست هر آیتم در خط جدا نمایش داده می‌شود — بسیار مفید برای آماده‌سازی نمایش مخاطب یا گزارش.

3) حذف فاصله غیرقابل‌شکستن (non-breaking space) که معمولاً از صفحات وب یا PDF وارد می‌شود:

=TRIM(SUBSTITUTE(A1, CHAR(160), " "))

CHAR(160) اغلب نشان‌دهنده فاصله غیرقابل‌شکستن است. تابع بالا ابتدا همه CHAR(160) را به فاصله معمولی تبدیل می‌کند و سپس TRIM فضاهای اضافی را حذف می‌کند.

4) اضافه کردن بولت به لیست‌ها درون سلول:

=CHAR(149) & " " & B1 & CHAR(10) & CHAR(149) & " " & B2

CHAR(149) در بسیاری از صفحه‌کدهای ANSI کاراکتر بولت (•) را می‌دهد. با ترکیب و استفاده از CHAR(10) می‌توان لیستی با بولت داخل یک سلول ساخت. باز هم حتماً Wrap Text فعال باشد.

مثال ترکیبی و پیشرفته

فرض کنید ستون A شامل رشته‌هایی است که با «,» جدا شده‌اند و می‌خواهید هر مورد را در خط جدا قرار دهید و قبل از هر خط شماره نمایش دهید:

=TEXTJOIN(CHAR(10), TRUE, IFERROR(TRIM(MID(SUBSTITUTE(A1, ",", REPT(" ", 999)), (ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*999+1, 999)), ""))

این فرمول ترکیبی ابتدا با SUBSTITUTE و MID رشته را به بخش‌های جدا تقسیم می‌کند، سپس با TEXTJOIN و CHAR(10) آن‌ها را در خطوط جدا ترکیب می‌کند. این نوع تکنیک برای جداسازی آرایه‌ای از موارد درون یک سلول مفید است. (فرمول نیاز به وارد کردن به صورت رشته‌ای/مقادیر آرایه‌ای در نسخه‌های بدون Dynamic Array ممکن است نیاز به Ctrl+Shift+Enter داشته باشد.)

تفاوت CHAR و UNICHAR

  • CHAR محدود به کدهای 1–255 و بسته به کد صفحه (code page) سیستم است. مناسب برای کاراکترهای ANSI.
  • UNICHAR قادر به بازگرداندن هر کاراکتر یونی‌کد تا مقدار 1,114,111 است؛ برای نمادهای جهانی مثل €، ✔، emoji و بسیاری از کاراکترهای غیرلاتین از UNICHAR استفاده کنید.

مثال:

=UNICHAR(8364)  // returns "€"

بنابراین اگر در خروجی شما لازم است نمادهای یونی‌کد استفاده شوند، UNICHAR را به جای CHAR به کار ببرید.

جدول کوچک: برخی کدهای مفید CHAR

کدمعنی/نماد
10Line Feed (شکست خط در ویندوز)
13Carriage Return (ممکن است در مک کاربرد داشته باشد)
9Tab
32Space (فاصله)
34Double Quote (“)
39Apostrophe (‘)
160Non-breaking space (فاصله غیرقابل‌شکستن)
149Bullet (نماد • در بسیاری از کدپیج‌ها)

نکات و مشکلات متداول

  • نسخه و سیستم عامل: رفتار شکست خط ممکن است بین Windows و macOS متفاوت باشد (CHAR(10) در ویندوز رایج‌تر است؛ در برخی موارد macOS از CHAR(13) استفاده می‌کند).
  • کد صفحه سیستم: محتوای برگشتی CHAR وابسته به کد صفحه (ANSI) سیستم است؛ بنابراین یک عدد مشخص در سیستم‌های با زبان‌های مختلف ممکن است کاراکتر متفاوتی نشان دهد.
  • برای نمادهای یونی‌کد بزرگ‌تر (مثل emoji یا حروف غیرلاتین خاص) از UNICHAR استفاده کنید.
  • اگر با کاراکترهای نامرئی روبرو هستید، ابتدا با تابع CODE یا UNICODE و سپس SUBSTITUTE بررسی و پاک‌سازی کنید.

نکات تکمیلی و بهترین روش‌ها

  • همیشه بعد از درج CHAR(10) برای مشاهده محتوا گزینه Wrap Text را فعال کنید.
  • برای پاک‌سازی داده‌های واردشده از وب یا PDF، ترکیب SUBSTITUTE با CHAR(160) و سپس TRIM بسیار مفید است.
  • برای تولید نمادهای گرافیکی کوچک (مثل بولت) ابتدا در سیستم خود بررسی کنید که کد مربوطه در آن کدپیج کار می‌کند یا نه، سپس در فرمول به کار ببرید.

خلاصه

تابع CHAR در اکسل ابزار ساده اما قدرتمندی برای کنترل کاراکترهای خاص در پردازش متن است. با این حال محدودیت‌های آن (وابستگی به کد صفحه و بازه 1–255) را در نظر بگیرید و در صورت نیاز به کاراکترهای یونی‌کد از UNICHAR استفاده کنید. ترکیب CHAR با توابعی مانند SUBSTITUTE، TEXTJOIN، TRIM و REPT باعث ایجاد راهکارهای قدرتمند برای شکل‌دهی و پاک‌سازی متن می‌شود.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: