حسابداری و امور مالی بیمارستانبخشنامه، تعرفه و محاسبات حقوق
جست‌وجوخبرنامه
آموزش اکسل

جداسازی متن سلول به چند ستون با جداکننده دلخواه با تابع TEXTSPLIT در اکسل

زمان مطالعه: ۴ دقیقه۵۲ بازدید

لیست پرسنل که از سامانه کارگزینی به‌صورت یک متن خام و فشرده با جداکننده نقطه‌ویرگول بیرون می‌آید، یا یک لاگ اضافه‌کار که تاریخ و ساعت هر رکورد در یک سلول تکی چسبیده، همیشه باید دستی به چند ستون تبدیل شود. تابع TEXTSPLIT این متن را با یک فرمول ساده به چند ستون یا حتی چند ردیف واقعی می‌شکند.

ساختار تابع TEXTSPLIT

ساختار کلی تابع به این شکل است:

=TEXTSPLIT(متن, جداکننده_ستون, [جداکننده_ردیف], [ignore_empty], [match_mode], [pad_with])

برای مثال، وقتی سامانه کارگزینی نام، کد پرسنلی، بخش و سمت هر پرسنل را در یک سلول با نقطه‌ویرگول جدا تحویل می‌دهد، کافی است فقط یک فرمول در سلول کناری نوشته شود:

=TEXTSPLIT(A2,";")

جداسازی متن خام کارگزینی به چند ستون با تابع TEXTSPLIT در اکسل
فرمول فقط در ستون B تایپ شده؛ اکسل خودش نتیجه را در ستون های نام، کد پرسنلی، بخش و سمت سرریز می کند

به‌محض زدن Enter، اکسل چهار قطعه متن را در چهار ستون کنار هم «سرریز» (Spill) می‌کند؛ نیازی به کپی کردن فرمول در ستون‌های بعدی نیست، چون خود TEXTSPLIT یک آرایه پویا برمی‌گرداند.

جداسازی دوبعدی؛ هم ستون هم ردیف با دو جداکننده

گاهی یک سلول تکی، چند رکورد کامل را با هم نگه می‌دارد؛ مثلا لاگ اضافه‌کار یک پرسنل که هر رکورد به‌صورت «تاریخ:ساعت» و رکوردها با علامت | از هم جدا شده‌اند. با دادن هر دو جداکننده به TEXTSPLIT، می‌شود این متن فشرده را مستقیم به یک جدول واقعی چندردیفی تبدیل کرد:

=TEXTSPLIT(B2,":","|")

اسپیل دو بعدی لاگ فشرده اضافه کار با تابع TEXTSPLIT در اکسل
آرگومان دوم بین ستون ها (:) و آرگومان سوم بین ردیف ها (|) جدا می کند؛ نتیجه یک جدول چهارردیفی است

آرگومان دوم (جداکننده_ستون) این‌جا «:» است و بین تاریخ و ساعت هر رکورد را جدا می‌کند؛ آرگومان سوم (جداکننده_ردیف) «|» است و هر رکورد را در یک ردیف جدید می‌گذارد.

نکته مهم؛ ignore_empty با فیلدهای جا افتاده

وقتی یکی از فیلدهای متن خام (مثلا کد پرسنلی) در سامانه مبدا خالی مانده باشد، دو جداکننده پشت سرهم می‌افتد. آرگومان چهارم TEXTSPLIT یعنی ignore_empty تعیین می‌کند اکسل با این فیلد خالی چه کند.

مقایسه ignore_empty TRUE و FALSE در تابع TEXTSPLIT اکسل
FALSE ستون خالی کد پرسنلی را نگه می دارد اما TRUE آن را کامل حذف و بقیه ستون ها را جابجا می کند

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

=TEXTSPLIT(A2,";") در برابر =TEXTSPLIT(A2,";",,TRUE)

نکات کاربردی

  • TEXTSPLIT فقط در Excel 365 در دسترس است؛ نتیجه یک آرایه پویا (Spill) است و فرمول فقط در یک سلول نوشته می شود.
  • اگر جلوی مسیر سرریز، سلول دیگری پر باشد، اکسل به‌جای نتیجه، خطای #SPILL! نشان می دهد؛ قبل از نوشتن فرمول باید ستون های کناری خالی باشند.
  • match_mode با مقدار ۱ جستوجوی جداکننده را نسبت به حروف بزرگ و کوچک انگلیسی بی تفاوت می کند؛ برای متن های کاملا فارسی معمولا لازم نیست.
  • pad_with مقداری است که جای خانه های خالی ناشی از طول متفاوت ردیف ها (مثلا وقتی TEXTSPLIT روی چند سلول با تعداد فیلد متفاوت اجرا شود) به‌جای خطای N/A می نشیند؛ می توان آن را صفر یا خط تیره گذاشت.
  • برعکس TEXTSPLIT، برای چسباندن چند ستون به یک سلول از TEXTJOIN استفاده می شود.

📄 دانلود فایل اکسل نمونه «جداسازی متن خام با TEXTSPLIT» — شامل جداسازی متن خام کارگزینی به چند ستون، اسپیل دوبعدی لاگ فشرده اضافه کار، و مقایسه ignore_empty TRUE و FALSE.

منبع : سایت حسابداری بیمارستان
کانال تلگرام @hospitalaccounting

نظر شما

نظر شما پس از بررسی منتشر می‌شود. ایمیل‌تان هرگز روی سایت نمایش داده نمی‌شود.