ویژگی تصویر

تابع UNICODE در اکسل — معرفی و کاربردهای عملی

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

تابع UNICODE در اکسل برای بازگرداندن شمارهٔ یونیکد (Unicode code point) اولین کاراکتر یک متن استفاده می‌شود. این تابع زمانی بسیار مفید است که بخواهید مشخص کنید یک سلول شامل کدام نماد یا کاراکتر است — از حروف لاتین و فارسی تا علامت‌های ریالی، اموجی‌ها و کاراکترهای کنترل.

سینتکس و رفتار پایه

سینتکس ساده است:

=UNICODE(text)

پارامتر text می‌تواند یک رشته یا مرجع به سلول باشد. نتیجه یک عدد صحیح است که نمایندهٔ نقطهٔ یونیکد کاراکتر اول متن است. اگر متن خالی باشد، اکسل خطای مناسب (مانند #VALUE!) را برمی‌گرداند.

تفاوت UNICODE با CODE و ارتباط با UNICHAR

  • UNICODE شمارهٔ یونیکد را برمی‌گرداند (نمایش جهانی، تا U+10FFFF).
  • CODE شمارهٔ کاراکتر بر اساس کدگذاری محلی/ANSI برمی‌گرداند و برای کاراکترهای غیرلاتین نتایج متفاوتی می‌دهد.
  • UNICHAR برعکس UNICODE است: با دادن یک عدد یونیکد، کاراکتر متناظر را برمی‌گرداند.

مثال‌های ساده

فرمولنتیجه (توضیح)
=UNICODE("A")65 — حرف بزرگ A
=UNICODE("a")97 — حرف کوچک a
=UNICODE(" ")32 — فاصله معمولی (Space)
=UNICODE(CHAR(160))160 — فاصلهٔ غیرقابل‌شکستن (NBSP)
=UNICODE("€")8364 — علامت یورو
=UNICODE("😊")128522 — اموجی (صورت خندان)
=UNICODE("ب")1576 — حرف «ب» فارسی/عربی

مثال‌های کاربردی و سناریوهای واقعی

چند کاربرد عملی که در پاک‌سازی داده‌ها و تحلیل متن مفیدند:

  • تشخیص وجود کاراکترهای غیر ASCII یا ویژه در داده‌های ورودی.
  • تعیین اینکه آیا فاصله‌ها عادی هستند یا فاصله‌های غیرقابل‌شکستن (NBSP) که باعث خطا در تطبیق رشته‌ها می‌شوند.
  • بررسی و نمایش کد اموجی‌ها یا کاراکترهای غیرمتداول برای سازگاری با سیستم‌های دیگر.

تشخیص وجود کاراکتر غیر-ASCII (نسخه Office 365)

=SUM(--(UNICODE(MID(A2,SEQUENCE(LEN(A2)),1))>127))>0

این فرمول در Office 365 با آرایه‌های پویا کار می‌کند. توضیح: ابتدا SEQUENCE تعداد کاراکترهای متن را می‌سازد، سپس با MID هر کاراکتر جدا می‌شود، UNICODE کد آن را می‌گیرد و شرط >127 بررسی می‌کند. SUM جمع تعداد کاراکترهایی را که بیش از 127 هستند محاسبه می‌کند و در نهایت >0 بررسی می‌کند آیا حداقل یک کاراکتر غیر-ASCII وجود دارد یا نه.

تشخیص وجود کاراکتر غیر-ASCII (نسخه‌های قدیمی بدون SEQUENCE)

=SUMPRODUCT(--(UNICODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>127))>0

این نسخه با استفاده از ROW و INDIRECT آرایهٔ ایندکس‌ها را می‌سازد و در اکسل‌های قدیمی‌تر که آرایهٔ پویا ندارند، با SUMPRODUCT کار می‌کند. این فرمول ممکن است با سلول‌های بزرگ کند شود، اما اصولاً همان کار را انجام می‌دهد.

پیدا کردن موقعیت اولین کاراکتر ویژه

برای یافتن اولین جایگاهی که کاراکتر غیرمعمول یا خاصی قرار گرفته، می‌توانید از ترکیب MATCH یا AGGREGATE با فرمول‌های آرایه‌ای استفاده کنید. نمونه ساده با AGGREGATE (بدون نیاز به Ctrl+Shift+Enter):

=AGGREGATE(15,6,ROW(INDIRECT("1:"&LEN(A2)))/(UNICODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>127),1)

این فرمول کوچک‌ترین (اولین) شماره ردیفی را که شرط >127 برقرار است برمی‌گرداند — یعنی موقعیت اولین کاراکتر غیر-ASCII در متن.

نکات مهم و جزییات فنی

  • اکسل متن را به صورت UTF-16 ذخیره می‌کند؛ UNICODE و UNICHAR برای کاراکترهای بیرون از محدودهٔ BMP (مانند برخی اموجی‌ها) نیز پشتیبانی می‌کنند و مقادیر کد واقعی یونیکد را خواهند داد.
  • برای رشته‌هایی که شامل ترکیب کاراکترها (combining marks) هستند، UNICODE همیشه کد واحد اول را برمی‌گرداند؛ در صورت نیاز به تجزیهٔ کامل باید ترکیب‌ها را مدیریت کنید (که در اکسل نسبتاً پیچیده است).
  • برای حذف یا جایگزینی کاراکترهای خاص می‌توان از ترکیب SUBSTITUTE و UNICHAR استفاده کرد؛ برای مثال برای تبدیل NBSP به فاصلهٔ معمولی:
=SUBSTITUTE(A2,UNICHAR(160)," ")

این فرمول تمام فاصله‌های غیرقابل‌شکستن را با فاصلهٔ معمولی جایگزین می‌کند — مفید هنگام کار با داده‌هایی که از وب کپی شده‌اند.

مثال پیشرفته: نشان دادن کد تمام کاراکترها

اگر بخواهید کد تمام کاراکترهای یک رشته را در ستون‌های متوالی ببینید (Office 365):

=UNICODE(MID(A2,SEQUENCE(LEN(A2)),1))

این فرمول آرایه‌ای از کدهای یونیکد برای هر کاراکتر تولید می‌کند و به‌صورت خودکار در سلول‌های زیر/بعدی پر می‌شود. برای نسخه‌های قدیمی باید از فرمول‌های آرایه‌ای پیچیده‌تر یا ستون کمکی استفاده کنید.

جمع‌بندی و توصیه‌های کاربردی

تابع UNICODE ابزاری قدرتمند برای تحلیل و پاک‌سازی رشته‌ها در اکسل است، به‌ویژه زمانی که با داده‌های چندزبانه، اموجی‌ها یا کاراکترهای کنترلی سروکار دارید. ترکیب آن با MID، SEQUENCE، SUBSTITUTE، UNICHAR و توابع آرایه‌ای باعث می‌شود بتوانید مشکلات رایج مانند فاصله‌های نامرئی، کاراکترهای نامطلوب و ناسازگاری کدینگ را شناسایی و اصلاح کنید.

در پروژه‌های بزرگ داده‌ای که نیاز به پردازش پیشرفته متن دارند، ممکن است لازم باشد از Power Query یا اسکریپت‌های VBA/پایتون برای نرمال‌سازی یونیکد استفاده کنید؛ اما برای بسیاری از بررسی‌ها و اصلاحات سریع، UNICODE در اکسل کفایت می‌کند.

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

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