فهرست مطالب
این آموزش نحوه استفاده از تابع جدید TEXTSPLIT را برای تقسیم رشتهها در Excel 365 توسط هر جداکنندهای که شما تعیین میکنید، نشان میدهد.
ممکن است شرایط مختلفی وجود داشته باشد که شما نیاز به تقسیم کردن داشته باشید. سلول ها در اکسل در نسخههای قبلی، ما قبلاً به تعدادی ابزار برای انجام این کار مانند Text to Columns و Fill Flash مجهز بودیم. اکنون، ما همچنین یک تابع ویژه برای این کار داریم، TEXTSPLIT، که میتواند یک رشته را به چندین سلول در ستونها یا/و ردیفها بر اساس پارامترهایی که شما مشخص میکنید، جدا کند.
عملکرد Excel TEXTSPLIT
عملکرد TEXTSPLIT در اکسل رشته های متن را با یک جداکننده معین در ستون ها یا/و ردیف ها تقسیم می کند. نتیجه یک آرایه پویا است که به طور خودکار در چندین سلول ریخته می شود.
این تابع 6 آرگومان می گیرد که فقط دو مورد اول مورد نیاز است.
TEXTSPLIT(text, col_delimiter, [row_delimiter], [نادیده_خالی]، [مطابق_حالت]، [pad_with])متن (الزامی) - متن برای تقسیم. می تواند به عنوان یک رشته یا مرجع سلول ارائه شود.
col_delimiter (الزامی) - کاراکتر(هایی) که محل تقسیم متن را در ستون ها نشان می دهد. در صورت حذف، row_delimiter باید تعریف شود.
row_delimiter (اختیاری) - یک کاراکتر که محل تقسیم متن را در ردیف ها نشان می دهد.
ignore_empty (اختیاری) - مشخص می کند که آیا مقادیر خالی نادیده گرفته شود یا خیر:
- FALSE (پیش فرض) -سلولهای خالی را برای جداکنندههای متوالی بدون مقداری در بین ایجاد کنید.
- درست - مقادیر خالی را نادیده بگیرید، یعنی سلولهای خالی را برای دو یا چند جداکننده متوالی ایجاد نکنید.
match_mode (اختیاری) - حساسیت به حروف کوچک و بزرگ را برای جداکننده تعیین می کند. به طور پیشفرض فعال است.
- 0 (پیشفرض) - حساس به بزرگی و کوچکی
- 1 - حساس به بزرگی و کوچکی
pad_with (اختیاری ) - یک مقدار برای استفاده به جای مقادیر از دست رفته در آرایه های دو بعدی. پیشفرض یک خطای #N/A است.
به عنوان مثال، برای تقسیم یک رشته متن در A2 به چند سلول با استفاده از کاما و فاصله به عنوان جداکننده، فرمول این است:
=TEXTSPLIT(A2, ", ")
در دسترس بودن TEXTSPLIT
عملکرد TEXTSPLIT فقط در Excel برای Microsoft 365 (ویندوز و مک) و Excel برای وب در دسترس است.
نکات:
- در نسخههای اکسل که تابع TEXTSPLIT در دسترس نیست (به غیر از اکسل 365)، میتوانید از جادوگر متن به ستون برای تقسیم سلولها استفاده کنید.
- برای انجام کار معکوس، یعنی برای پیوستن به محتویات چند سلول به یک سلول با استفاده از یک جداکننده خاص، TEXTJOIN تابعی است که باید از آن استفاده کرد.
فرمول TEXTSPLIT اصلی برای تقسیم یک سلول در اکسل
برای شروع، بیایید نحوه استفاده از TEXTSPLIT را ببینیم. فرمول در ساده ترین شکل خود برای تقسیم یک رشته متن توسط یک جداکننده خاص.
تقسیم یک سلول به صورت افقی در بین ستون ها
برای تقسیم محتویات یک سلول معین به چندین ستون، یکارجاع به سلول حاوی رشته اصلی برای آرگومان اول ( text ) و جداکننده ای که نقطه ای را که باید برای آرگومان دوم ( col_delimiter ) رخ دهد، مشخص می کند.
به عنوان مثال، برای جدا کردن رشته در A2 به صورت افقی با کاما، فرمول این است:
=TEXTSPLIT(A2, ",")
برای جداکننده، از یک کاما استفاده می کنیم که در دو گیومه ("") قرار دارد. .
در نتیجه، هر موردی که با کاما از هم جدا می شود، به یک ستون جداگانه می رود:
یک سلول را به صورت عمودی در بین ردیف ها تقسیم کنید
برای تقسیم متن در چندین ردیف، سومین مورد آرگومان ( row_delimiter ) جایی است که جداکننده را قرار می دهید. آرگومان دوم ( col_delimiter ) در این مورد حذف می شود.
به عنوان مثال، برای جداسازی مقادیر در A2 به ردیف های مختلف، فرمول این است:
=TEXTSPLIT(A2, ,",")
لطفاً توجه داشته باشید که در هر دو مورد، فرمول فقط در یک سلول (C2) وارد می شود. در سلول های مجاور، مقادیر برگشتی به طور خودکار ریخته می شوند. آرایه به دست آمده (که محدوده ریزش نامیده می شود) با یک حاشیه آبی مشخص می شود که نشان می دهد همه چیز در داخل آن با فرمول موجود در سلول بالا سمت چپ محاسبه می شود.
تقسیم متن با رشته فرعی
در در بسیاری از موارد، مقادیر در رشته منبع با دنباله ای از کاراکترها از هم جدا می شوند که یک نمونه معمولی یک کاما و یک فاصله است. برای مدیریت این سناریو، از یک رشته فرعی برای جداکننده استفاده کنید.
به عنوان مثال، برای جدا کردن متن در A2 به چندین ستونبا کاما و فاصله، از رشته "، " برای col_delimiter استفاده کنید.
=TEXTSPLIT(A2, ", ")
این فرمول به B2 می رود و سپس آن را از طریق تعداد زیادی کپی می کنید. سلول ها در صورت نیاز
تقسیم رشتهها به ستونها و ردیفها بهطور همزمان
برای تقسیم یک رشته متن به ردیفها و ستونها در یک زمان، هر دو جداکننده را در فرمول TEXTSPLIT خود تعریف کنید.
به عنوان مثال، برای تقسیم رشته متن در A2 در بین ستونها و ردیفها، ما این موارد را ارائه میکنیم:
- علامت مساوی ("=") برای col_delimiter
- یک کاما و یک فاصله (") برای row_delimiter
فرمول کامل به این شکل است:
=TEXTSPLIT(A2, "=", ", ")
نتیجه یک 2 بعدی است آرایه ای متشکل از 2 ستون و 3 ردیف:
جداسازی سلول ها با چند جداکننده
برای مدیریت جداکننده های متعدد یا ناسازگار در رشته منبع، از یک آرایه ثابت مانند {"x","y" استفاده کنید. "z"} برای آرگومان جداکننده.
در تصویر زیر، متن در A2 با هر دو کاما ("") و نیم ویرگول (";") با و بدون فاصله مشخص شده است. برای تقسیم رشته به صورت عمودی به ردیفهایی با هر 4 تغییر جداکننده، فرمول این است:
=TEXTSPLIT(A2, , {",",", ",";","; "})
یا، میتوانید فقط یک کاما ("") و یک نقطه ویرگول ("; ") در آرایه، و سپس با کمک تابع TRIM، فضاهای اضافی را حذف کنید:
=TRIM(TEXTSPLIT(A2, , {",",";"}))
متن را با نادیده گرفتن مقادیر خالی تقسیم کنید
اگر رشته حاوی دو یا چند جداکننده متوالی بدون مقدار بین آنها، می توانید انتخاب کنید که آیا چنین خالی را نادیده بگیریدارزش ها یا نه این رفتار توسط چهارمین پارامتر ignore_empty کنترل میشود که پیشفرض FALSE است.
بهطور پیشفرض، تابع TEXTSPLIT مقادیر خالی را نادیده نمیگیرد. رفتار پیشفرض مانند مثال زیر برای دادههای ساختاریافته به خوبی کار میکند.
در این جدول نمونه، امتیازات در برخی رشتهها وجود ندارد. فرمول TEXTSPLIT با آرگومان ignore_empty حذف شده یا روی FALSE تنظیم شده است، این مورد را کاملاً کنترل می کند، و یک سلول خالی برای هر مقدار خالی ایجاد می کند.
=TEXTSPLIT(A2, ", ")
یا
=TEXTSPLIT(A2, ", ", FALSE)
در نتیجه، تمام مقادیر در ستون های مناسب ظاهر می شوند.
در صورتی که رشته های شما حاوی داده های همگن باشد، ممکن است منطقی باشد که مقادیر خالی را نادیده بگیرید. برای این کار، آرگومان ignore_empty را روی TRUE یا 1 قرار دهید.
به عنوان مثال، برای تقسیم t رشته های زیر و قرار دادن هر مهارت در یک سلول جداگانه بدون شکاف، فرمول این است:
=TEXTSPLIT(A2, ", ", ,TRUE)
در این مورد، مقادیر گمشده بین جداکنندههای متوالی به طور کامل نادیده گرفته میشوند:
Cell splitting حساس به حروف بزرگ یا بزرگ و کوچک
برای کنترل حروف کوچک حساسیت جداکننده، از آرگومان پنجم، match_mode استفاده کنید.
به طور پیشفرض، match_mode روی 0 تنظیم شده است و TEXTSPLIT حساس به حروف کوچک و بزرگ .
در این مثال، اعداد با حروف کوچک "x" و بزرگ "X" از هم جدا میشوند.
فرمول با حساسیت پیشفرض به حروف کوچک، فقط "x" کوچک را میپذیرد. " به عنوانجداکننده:
=TEXTSPLIT(A2, " x ")
لطفاً توجه داشته باشید که جداکننده در دو طرف حرف "x" یک فاصله دارد تا از فاصله های پیشرو و انتهایی در نتایج جلوگیری شود.
برای خاموش کردن حساسیت به حروف کوچک و بزرگ، 1 را برای match_mode وارد میکنید تا فرمول TEXTSPLIT مجبور شود حروف کوچک را نادیده بگیرد:
=TEXTSPLIT(A2, " x ", , ,1)
اکنون، همه رشته ها به درستی توسط هر یک از جداکننده ها تقسیم می شوند:
Pad مقادیر از دست رفته در آرایه 2 بعدی
آخرین آرگومان تابع TEXTSPLIT، pad_with ، در مورد یکی یا مقادیر بیشتری در رشته منبع گم شده است. وقتی چنین رشتهای به ستونها و ردیفها تقسیم میشود، بهطور پیشفرض، اکسل بهجای مقادیر از دست رفته، خطاهای #N/A را برمیگرداند تا ساختار یک آرایه دو بعدی را مخدوش نکند.
در رشته زیر، هیچ "=" ( col_delimiter ) بعد از "امتیاز" وجود ندارد. برای حفظ یکپارچگی آرایه حاصل، TEXTSPLIT #N/A را در کنار «امتیاز» خروجی میدهد.
برای کاربرپسندتر کردن نتیجه، میتوانید خطای #N/A را با هر مقداری که میخواهید جایگزین کنید. به سادگی، مقدار مورد نظر را در آرگومان pad_with تایپ کنید.
در مورد ما، این می تواند یک خط فاصله ("-"):
=TEXTSPLIT(A2, "=", ", ", , ,"-")
یا یک رشته خالی (""):
=TEXTSPLIT(A2, "=", ", ", , ,"")
اکنون که کاربردهای عملی هر آرگومان تابع TEXTSPLIT را یاد گرفتید، اجازه دهید چند مثال پیشرفته را که می تواند به شما کمک کند بحث کنیم. با چالش های غیر ضروری در صفحات گسترده اکسل خود کنار بیایید.
تاریخ ها را تقسیم کنیدبه روز، ماه و سال
برای تقسیم تاریخ به واحدهای جداگانه، ابتدا باید تاریخ را به متن تبدیل کنید زیرا تابع TEXTSPLIT با رشته های متن سروکار دارد در حالی که تاریخ های اکسل اعداد هستند.
ساده ترین روش تبدیل یک مقدار عددی به متن با استفاده از تابع TEXT است. فقط مطمئن شوید که یک کد قالب مناسب برای تاریخ خود ارائه دهید.
در مورد ما، فرمول این است:
=TEXT(A2, "m/d/yyyy")
مرحله بعدی این است که تابع فوق را در تودرتو قرار دهید. آرگومان 1 TEXTSPLIT را وارد کنید و جداکننده مربوطه را برای آرگومان دوم یا سوم وارد کنید، بسته به اینکه آیا در حال تقسیم در ستون ها یا ردیف ها هستید. در این مثال، واحدهای تاریخ با اسلش مشخص شدهاند، بنابراین از "/" برای آرگومان col_delimiter استفاده میکنیم:
=TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")
سلولها را تقسیم کنید و کاراکترهای خاصی را حذف کنید
این را تصور کنید: شما یک رشته طولانی را به قطعات تقسیم کرده اید، اما آرایه به دست آمده همچنان حاوی برخی از کاراکترهای ناخواسته است، مانند پرانتز در تصویر زیر:
=TEXTSPLIT(A2, " ", "; ")
برای بریدن پرانتزهای باز و بسته را در یک زمان جدا کنید، دو تابع SUBSTITUTE را یکی در دیگری قرار دهید (هر کدام یک پرانتز را با یک رشته خالی جایگزین می کند) و از فرمول TEXTSPLIT برای آرگومان text SUBSTITUTE داخلی استفاده کنید:
=SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")
نکته. اگر آرایه نهایی حاوی تعداد زیادی کاراکتر اضافی است، میتوانید آنها را با استفاده از یکی از روشهای توضیح داده شده در این مقاله پاک کنید: نحوه حذف کاراکترهای ناخواسته در اکسل.
تقسیم رشتهها از مقادیر معین
فرض کنید میخواهید رشتههای زیر را به 4 ستون جدا کنید: نام ، نام خانوادگی ، امتیاز ، و نتیجه . مشکل این است که برخی از رشته ها حاوی عنوان "Mr" هستند. یا "خانم"، که به همین دلیل نتایج همه اشتباه است:
راه حل واضح نیست اما کاملاً ساده است :)
علاوه بر جداکننده های موجود، که یک فاصله (" ") و یک کاما و یک فاصله (")، رشته های "Mr." و "Ms." را در ثابت آرایه col_delimiter قرار می دهید، به طوری که تابع از خود عناوین برای جداسازی آن استفاده می کند. متن برای نادیده گرفتن مقادیر خالی، آرگومان ignore_empty را روی TRUE تنظیم می کنید.
=TEXTSPLIT(A2, {" ",", ","Mr. ","Ms. "}, ,TRUE)
اکنون، نتایج کاملاً عالی هستند!
گزینه های جایگزین TEXTSPLIT
در نسخه های اکسل که تابع TEXTSPLIT پشتیبانی نمی شود، می توانید رشته ها را با استفاده از ترکیبات مختلف تابع SEARCH / FIND با LEFT، RIGHT و MID تقسیم کنید. به طور خاص:
- SEARCH غیر حساس به حروف بزرگ یا FIND موقعیت جداکننده را در یک رشته تعیین میکند و
- توابع LEFT، RIGHT و MID یک رشته فرعی را قبل از آن استخراج میکنند. ، بعد از یا بین دو نمونه از جداکننده.
در مورد ما، برای تقسیم مقادیر جدا شده با کاما و فاصله ، فرمول ها به شرح زیر است.
برای استخراج نام:
=LEFT(A2, SEARCH(",", A2, 1) -1)
برای استخراج امتیاز:
=MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)
برای دریافت امتیازنتیجه:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",", A2) + 1)-1)
برای توضیح دقیق منطق فرمول ها، به نحوه تقسیم رشته ها بر اساس کاراکتر یا ماسک مراجعه کنید.
لطفاً به خاطر داشته باشید که برخلاف آرایه پویا تابع TEXTSPLIT، این فرمول ها از رویکرد سنتی یک فرمول-یک سلول پیروی می کنند. شما فرمول را در سلول اول وارد میکنید و سپس آن را به پایین ستون میکشید تا در سلولهای زیر کپی کنید.
تصویر صفحه زیر نتایج را نشان میدهد:
این نحوه تقسیم سلولها در Excel 365 است. با استفاده از TEXTSPLIT یا راه حل های جایگزین در نسخه های قبلی. از شما سپاسگزارم که خواندید و امیدوارم هفته آینده شما را در وبلاگ خود ببینیم!
کتاب کار برای دانلود تمرین کنید
عملکرد TEXTSPLIT برای تقسیم رشته ها – نمونه های فرمول (فایل xlsx.)
<3 <3 <3 3> 3