ویژگی تصویر

تابع TEXTJOIN در اکسل — مرجع کامل و کاربردی

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

تابع TEXTJOIN یکی از توابع قدرتمند اکسل برای ادغام متن از چند سلول یا بازه با یک جداکننده مشخص است. این تابع در نسخه‌های جدید اکسل (Office 365 و Excel 2019 و بالاتر) در دسترس است و جایگزینی ساده‌تر و انعطاف‌پذیر برای CONCATENATE و CONCAT فراهم می‌کند. در این مقاله به نحوۀ کار، مثال‌های عملی، ترفندهای پیشرفته و راه‌حل‌های جایگزین برای نسخه‌های قدیمی می‌پردازیم.

ساختار و پارامترها

پارامترمعنی
delimiterرشته‌ای که بین هر عضو قرار می‌گیرد (مثلاً “, ” یا CHAR(10))
ignore_emptyTRUE برای نادیده گرفتن سلول‌های خالی، FALSE برای در نظر گرفتن آن‌ها
text1, text2, …سلول‌ها، بازه‌ها یا آرایه‌هایی که قرار است ادغام شوند

قالب کلی

=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)

مثال بالا ساختار تابع را نشان می‌دهد. در ادامه چند مثال کاربردی را می‌بینیم.

مثال‌های پایه

  • ادغام لیستی از نام‌ها با ویرگول:
=TEXTJOIN(", ", TRUE, A2:A10)

این فرمول تمام مقادیر غیرخالی در بازه A2:A10 را با ویرگول و فاصله جدا می‌کند.

  • جایگذاری خط جدید بین مقادیر (با فعال بودن Wrap Text):
=TEXTJOIN(CHAR(10), TRUE, A2:A10)

CHAR(10) باعث ایجاد line break می‌شود؛ حتماً سلول را Wrap Text کنید تا هر مقدار در خط جدید نمایش یابد.

ادغام شرطی (فیلتر قبل از join)

اغلب لازم است فقط مقادیر مشروط را ادغام کنیم، مثلاً کالاهایی که وضعیت «فروش رفته» دارند.

=TEXTJOIN(", ", TRUE, IF(B2:B100="Yes", A2:A100, ""))

در نسخه‌های قدیمی اکسل باید این فرمول را با Ctrl+Shift+Enter (فرمول آرایه‌ای) وارد کنید. در Office 365 و نسخه‌های جدیدتر نیازی به CSE نیست.

ترکیب با توابع دینامیک – FILTER و UNIQUE

=TEXTJOIN(", ", TRUE, UNIQUE(FILTER(A2:A100, A2:A100"")))

این ترکیب ابتدا مقادیر خالی را حذف می‌کند (FILTER)، سپس مقادیر تکراری را یکبار نگه می‌دارد (UNIQUE)، و در نهایت آنها را با ویرگول جدا می‌کند.

کاربردهای پیشرفته و نکات حرفه‌ای

  • ساخت CSV درون سلول: می‌توانید سطرها را با TEXTJOIN بسازید و سپس به عنوان خروجی یک CSV جمع کنید.
  • ترکیب ستون‌های نام و نام خانوادگی: =TEXTJOIN(” “, TRUE, A2, B2)
  • ترکیب چندین ستون به‌صورت شرطی: استفاده از CONCAT و TEXTJOIN به همراه INDEX یا BYROW برای ساختارهای پیچیده.
  • استفاده از LET برای خواناتر کردن فرمول‌های طولانی (Office 365): با LET می‌توانید مقادیر میانی را نام‌گذاری کنید و خوانایی را بالا ببرید.

مثال: لیست ایمیل از جدول مشتریان

فرض کنید ستون A ایمیل و ستون B وضعیت اشتراک دارد. می‌خواهیم تمام ایمیل‌های مشترک را با ; جدا کنیم.

=TEXTJOIN(";", TRUE, IF(B2:B500="Subscribed", A2:A500, ""))

در Office 365 این فرمول نتایج را مستقیم برمی‌گرداند؛ در نسخه‌های قدیمی‌تر باید به‌صورت آرایه‌ای وارد کنید. نتیجه یک رشته طولانی از ایمیل‌ها خواهد بود که با سمی‌کلون جدا شده‌اند.

محدودیت‌ها و نکات عملکردی

  • حداکثر طول متن در یک سلول در اکسل حدود 32,767 کاراکتر است؛ اگر TEXTJOIN خروجی طولانی‌تر تولید کند، اکسل آن را قطع خواهد کرد.
  • برای عملکرد بهتر از بازه‌های بزرگ (مثل ستون کامل A:A) اجتناب کنید؛ بازه‌های محدود انتخاب کنید تا سرعت محاسبه بیشتر شود.
  • TEXTJOIN در Excel 2019 و Office 365 و نسخه‌های جدید پشتیبانی می‌شود. کاربران Excel 2016 یا قدیمی‌تر نیاز به راه‌حل‌های جایگزین دارند.

راه‌حل‌های جایگزین برای نسخه‌های قدیمی

  • استفاده از CONCATENATE یا & با سلول‌های کم و یا helper columns برای جمع‌آوری متن.
  • استفاده از Power Query برای ادغام سطرها و ایجاد خروجی CSV یا لیست.
  • استفاده از ماکرو VBA با تابع Join برای بازه‌ها.

نمونه کد VBA برای جایگزینی TEXTJOIN

Function JoinRange(rng As Range, delimiter As String) As String
    Dim cell As Range
    Dim parts As Collection
    Set parts = New Collection
    On Error Resume Next
    For Each cell In rng
        If Trim(cell.Value)  "" Then parts.Add cell.Value
    Next cell
    Dim arr() As String
    ReDim arr(0 To parts.Count - 1)
    Dim i As Long
    For i = 1 To parts.Count
        arr(i - 1) = parts(i)
    Next i
    JoinRange = Join(arr, delimiter)
End Function

این تابع کاربر-تعریف‌شده (UDF) مقادیر غیرخالی یک بازه را جمع می‌کند و با delimiter مشخص جدا می‌کند. کافی است در ویرایشگر VBA یک ماژول جدید بسازید و این کد را قرار دهید؛ سپس در سلول بنویسید =JoinRange(A2:A100, “, “).

نکات SEO و کلیدواژه‌ها

برای جستجوی بهتر مقاله با عبارات رایج از قبیل “تابع TEXTJOIN در اکسل”، “ادغام سلول‌ها با TEXTJOIN”، “TEXTJOIN conditional” و “جایگزین TEXTJOIN” استفاده شده است. در نوشتار سعی شده اصطلاحات فارسی و معادل‌های انگلیسی به شکل طبیعی ترکیب شوند تا هم کاربران فارسی‌زبان و هم موتورهای جستجو محتوای مفید پیدا کنند.

خلاصۀ کاربردی

  • TEXTJOIN ساده‌ترین و انعطاف‌پذیرترین راه برای ادغام متن از بازه‌ها با جداکننده است.
  • پارامتر ignore_empty به مدیریت سلول‌های خالی کمک می‌کند.
  • با ترکیب TEXTJOIN و توابع دینامیک (FILTER, UNIQUE, LET) می‌توانید راهکارهای بسیار پیشرفته و خوانا بسازید.
  • در نسخه‌های قدیمی می‌توانید از Power Query یا VBA استفاده کنید.

با تمرین روی مثال‌های بالا می‌توانید به سرعت از TEXTJOIN در گزارش‌ها، تولید CSV، ایمیل‌مارکتینگ و داشبوردها استفاده کنید. توجه داشته باشید که انتخاب دامنه‌های مشخص و اجتناب از بازه‌های خیلی بزرگ به حفظ پایداری و سرعت محاسبات کمک می‌کند.

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

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