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

ترکیب و چسباندن داده چند سلول با تابع TEXTJOIN در اکسل

زمان مطالعه: ۴ دقیقه۳۸ بازدید

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

ساختار تابع TEXTJOIN

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

=TEXTJOIN(جداکننده, نادیده‌گرفتن‌خالی, محدوده۱, محدوده۲, ...)

برای مثال، برای ترکیب چهار ستون گواهی تخصصی هر پرستار با کاما و فاصله بین آن‌ها:

=TEXTJOIN("، ",TRUE,C2:F2)

آرگومان های فرمول TEXTJOIN شامل جداکننده ignore_empty و محدوده سلول در اکسل
آرگومان اول جداکننده، آرگومان دوم ignore_empty و آرگومان سوم به بعد محدوده سلول ها است

چرا بهتر از علامت & است؛ نادیده گرفتن خودکار سلول خالی

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

ترکیب ستون های مدارک و گواهی تخصصی پرستاران با تابع TEXTJOIN در اکسل
سلول های واقعا خالی گواهی ۲ و ۳ کامل نادیده گرفته می شوند و لیست مدارک بدون کاما اضافه ساخته می شود

ساخت یادداشت چندخطی فیش حقوق با CHAR(10)

جداکننده TEXTJOIN لازم نیست فقط یک کاما یا خط تیره باشد؛ با CHAR(10) به عنوان جداکننده، می‌شود اجزای حقوق پایه، حق مسکن، حق اولاد، اضافه‌کار و کسورات بیمه هر پرسنل را در یک سلول، هر کدام در یک خط جدا، کنار هم گذاشت. برای اینکه این خط‌ها واقعا داخل سلول نمایش داده شوند، حتما باید گزینه Wrap Text آن سلول از تب Home فعال باشد.

نکته پیشرفته؛ ignore_empty با IF همیشه کار نمی‌کند

وقتی داخل TEXTJOIN بخواهید یک بخش صفر یا نامربوط را با IF حذف کنید (مثلا IF(اضافه‌کار>0,"...",""))، آرگومان ignore_empty=TRUE فقط سلول‌های واقعا خالی را نادیده می‌گیرد؛ رشته خالی "" که از یک فرمول IF برمی‌گردد را نادیده نمی‌گیرد. نتیجه این است که اگر اضافه‌کار پرسنلی صفر باشد، به جای حذف کامل آن خط، یک خط خالی اضافه در وسط یادداشت باقی می‌ماند.

یادداشت چندخطی فیش حقوق با TEXTJOIN و CHAR(10) و اصلاح خط خالی اضافه با SUBSTITUTE
نسخه خام یک خط خالی اضافه دارد؛ SUBSTITUTE دو CHAR(10) پشت سر هم را به یکی تبدیل و این خط خالی را حذف می کند

راه حل ساده؛ کل فرمول TEXTJOIN را داخل یک SUBSTITUTE بگذارید تا هر جای که دو جداکننده پشت سر هم افتاده (همان خط خالی اضافه) به یک جداکننده تبدیل شود:

=SUBSTITUTE(TEXTJOIN(CHAR(10),TRUE,...),CHAR(10)&CHAR(10),CHAR(10))

نکات کاربردی

  • به جای تک تک نوشتن سلول ها (مثل C2,D2,E2,F2)، می شود یک محدوده کامل مثل C2:F2 را مستقیم به TEXTJOIN داد؛ اگر ستون جدیدی به محدوده اضافه شود، فرمول بدون تغییر همان محدوده وسیع تر را می خواند.
  • برای جداکننده های خاص مثل خط جدید، حتما از CHAR(10) استفاده کنید، نه تایپ مستقیم Enter داخل فرمول.
  • قبل از اعتماد کامل به ignore_empty، وقتی داخل آرگومان‌ها از IF یا فرمول دیگری استفاده می کنید، نتیجه را با دقت چک کنید؛ خط یا کاما اضافه ممکن است باقی بماند.
  • TEXTJOIN از نسخه Excel 2019 و Microsoft 365 به بعد در دسترس است؛ در نسخه های قدیمی تر باید با ترکیب IF و & همان نتیجه را دستی ساخت.

📄 دانلود فایل اکسل نمونه «ترکیب داده چندسلول با TEXTJOIN» — شامل ترکیب مدارک و گواهی تخصصی پرستاران، ساخت یادداشت چندخطی فیش حقوق با CHAR(10)، و نسخه اصلاح شده با SUBSTITUTE برای رفع خط خالی اضافه.

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

نظر شما

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