
حتما تا حالا براتون پیش اومده که بخواید روی یک سری داده تغییراتی ایجاد کنید. مثلا یک تعداد کاراکتر رو حذف کنید، کاراکتری خاص رو به داده ها اضافه کنید. عبارتی رو در سلول ها جایگزین عبارت جدید کنید و … همه این کارها رو در اکسل می تونیم با توابع متنی انجام بدیم. توابع متنی یا Text Function توابع بسیار بسیار قدرتمندی هستن و اگر خیلی خوب به اونها مسلط باشیم و بتونیم با هم ترکیب کنیم، می تونیم کارهای خیلی مفید و حرفه ای روی داده هامون انجام بدیم. در این مقاله میخوام به تشریح تابع Left اکسل و تابع Right اکسل بپردازم.
تابع Left اکسل از ابتدای سلول و تابع Right اکسل از انتهای سلول، به تعداد مشخصی کاراکتر جدا میکنه. در واقع از یک عبارت، یک تعداد کاراکتر رو نگه میداره و بقیه رو حذف میکنه. ساختار دو تابع عینا مشابه هست و تنها تفاوت در ابتدا و انتها بودن هست.
ساختار تابع Left و Right
Text: سلول یا عبارتی که میخوایم یک تعداد کاراکتر رو ازش جدا کنیم.
[Num_Chars]: تعداد کاراکتر که باید باقی بمونه.
- همونطور که می بینید آرگومان دوم داخل براکت [ ] هست. این به این معنی هست که میتونیم این آرگومان رو مشخص نکنیم. در صورتی که خالی بذاریم این آرگومان رو، اکسل بصورت پیشفرض ۱ در نظر میگیره. یعنی یک کاراکتر رو جدا میکنه.
- اگر این آرگومان رو بیشتر از تعداد کل کاراکترهای موجود یک عبارت بذاریم، کل اون عبارت به عنوان خروجی نمایش داده میشه.
به نمونه زیر دقت کنید. از عبارت موجود در سلول A1 میخوام کلمه “اکسل پدیا” رو جدا کنم. برای این کار از تابع Left استفاده میکنم. تعداد کاراکتر کلمه “کسل پدیا” برابر هست با ۹، پس مطابق شکل ۱ فرمول زیر رو می نویسیم:
=LEFT (A1,9)

شکل ۱- جدا کردن قسمتی از عبارت موجود در یک سلول با استفاده از تابع left اکسل
در همه توابع متنی، معیار و اصل، شروع سلول هست. اگر عبارت فارسی باشه، شروع سلول از سمت راست و اگر عبارت انگلیسی باشه، شروع سلول از سمت چپ خواهد بود.
تابع Left و Right و کلا توابع متنی، قابلیت ترکیب بالایی دارند و اگر به خوبی بر اونها مسلط باشیم و بتونیم ترکیب کنیم، کارهای جالبی میتونیم انجام بدیم. این قابلیت ترکیب در خصوص آرگومانهایی که عددی هستند خیلی ویژه تر و قدرتمند هست.
آرگومان دوم این دو تابع عددی هست و از همین موضوع میخوایم برای ترکیب استفاده کنیم و چند نمونه مسئله رو با هم حل کنیم.
جدا کردن N کاراکتر آخر یک سلول یا یک رشته
فرض کنید در داده های زیر میخوایم تاریخ تولد رو جدا کنیم. همونطور که میبینیم تاریخ های تولد تعداد کاراکتر ثابتی ندارند پس باید الگویی پیدا کنیم که بر اساس اون بتونیم فرمول نویسی کنیم. در داده های نشان داده شده در شکل ۲، تاریخ تولد از – به بعد هست پس باید مکان – رو پیدا کرده و از اون به بعد رو از عبارت موجود در سلول جدا کنیم.
برای پیدا کردن مکان – همونطور که قبلا گفتیم باید از تابع find استفاده کنیم. این تابع عددی به ما میده که نشان دهنده مکان – هست.(شکل ۲)

شکل ۲- پیدا کردن مکان – در سلول
همونطور که قبلا گفتم مبنای محاسبات توابع متنی ابتدای سلول هست، یعنی عددی که الان داره نمایش داده میشه رو باید از تعداد کل کاراکترهاکم کنیم که تعداد کاراکتر تاریخ بدست بیاد.
برای این کار از تابع Len استفاده میکنیم و تعداد کل کاراکتر های هر سلول رو حساب میکنیم.
=Len (A1)

شکل ۳- محاسبه تعداد کل کاراکترهای یک سلول
حالا کافیه که تعداد کل کاراکترها رو از مکان – کم کنیم تا تعداد کاراکترهای تاریخ تولد در بیاد. مثلا برای ردیف اول، تعداد کل کاراکترها ۱۴ تاست، مکان – هم پنجمین کاراکتر هست. یعنی ۵-۱۴ که برابر است با ۹ میشه تعداد کاراکترهای تاریخ یعنی ۲۳/۱/۱۳۶۵.
حالا کافیه که عدد بدست آمده یعنی (تعداد کل – مکان -) رو در تابع right قرار داده و از انتهای سلول به این تعداد جدا کنیم.

شکل ۴- تفکیک تاریخ از رشته متنی با استفاده از تابع right اکسل
همه این فرمول ها رو میشه در یک سلول و بدون سلول کمکی نوشت:
=RIGHT ( A2 , LEN (A2) – FIND ( “-” , A2 ))
فاصله (Space) یک کاراکتر محسوب میشه و مثل همه کاراکترها روی خروجی توابع متنی اثرگذار هست. چون دیده نمیشه ممکنه خروجی فرمول ها رو به اشتباه بندازه. پس اول از همه تعداد کارکترهای کل هر سلول رو حساب کنید و ببینید با چیزی که دیده میشه مطابقت داره یا نه. بعد از اون اقدام کنید به فرمول نویسی.
جدا کردن کاراکترهای یک سلول تا قبل از یک کاراکتر خاص با استفاده از تابع left
فرض کنید یک سری داده داریم از نام و نام خانوادگی که با Space از هم جدا شدن. میخواهیم بخش نام رو از عبارت جدا کنیم. برای این کار اول باید مکان فاصله (Space) رو پیدا کنیم و بعد با تابع Left قسمت نام رو جدا کنیم.
=FIND (” “ , A2)

شکل ۵- پیدا کردن مکان فاصله ” ” در یک رشته متنی
حالا باید از ابتدای سلول به تعداد مکان فاصله جدا کنیم. این کار رو تابع Left اکسل برامون انجام میده.
=LEFT (A2 , B2)

شکل ۶- جدا کردن اسم از رشته متنی نام و نام خانوادگی با ترکیب تابع left اکسل و تابع right اکسل
مشابه مثال قبلی، میتونیم این فرمول رو بدون نیاز به سلول کمکی بنویسیم:
=LEFT (A2 , FIND ( ” ” , A2 ))
خروجی همه توابع متنی از جنس متن هست حتی اگر عدد باشه. یعنی اگر در رشته ای عدد رو با استفاده از توابع متنی جدا کردیم، این عدد خاصیت عددی مثل جمع، ضرب و … رو نداره و حتما باید به عدد تبدیل بشه که ما این کار رو با استفاده از تابع Value انجام میدیم.
همونطور که در شکل ۷ می بینید در ستون B اعدادی که از تابع متنی بیرون اومدن جمع زده شده و نتجه ۰ هست. (چون ظاهرا عدد هست اما مقدار عددی نداره).
در ستون C این خروجی داخل یک تابع Value قرار گرفته و خروجی فرمول، به عدد تبدیل شده و قابلیت جمع پذیری داره که در سلول C8 نمایش داده شده.

شکل ۷- تبدیل خروجی توابع متنی به عدد
توابع متنی روی رشته های از جنس تاریخ و زمان
در خصوص تفکیک رشته های مربوط به تاریخ و زمان، حتما باید به این موضوع دقت کنیم که مقدار این رشته ها با چیزی که میبنیم متفاوت هست. برای اینکه این موضوع واضح تر بشه به مثال زیر دقت کنید. فرض کنید میخوایم ساعت رو از دقیقه در داده های زیر جدا کنیم.

شکل ۸- تفکیک کردن اجزاء یک رشته زمانی
همونطور که می بینید این کار رو با توابع متنی نمیتونیم انجام بدیم چون مقدار عبارات زمانی و تاریخی عدد هست که در صورتی که از توابع متنی استفاده کنیم، این تابع روی مقدار عددی این رشته ها، عمل خواهد کرد و مطابق شکل ۸، بخشی از عدد رو جدا میکنه.
این کار رو به دو روش میتونیم انجام بدیم:
- استفاده از توابع مخصوص این کار یعنی Hour, Minute, Second. حتما مقاله مربوط به محاسبات زمان در اکسل رو مطالعه کنید.
- تبدیل رشته زمانی مورد نظر به متن و استفاده از توابع متنی.
این مسئله در مورد رشته های تاریخی هم برقرار هست و برای تفکیک روز، ماه و سال باید مشابه بالا از دو روش ارائه شده استفاده کنیم. مقاله مربوط به همه چیز در مورد تاریخ در اکسل رو مطالعه کنید.
همچنین پیشنهاد میکنم مقالات زیر رو هم نگاه کنی:
دانلود فایل مثال تابع Left اکسل
برای دانلود فایل آموزش تابع Left در اکسل و تابع Right در اکسل روی دکمه زیر کلیک کنید:





بسیار ممنون خیلی عالی بود
سلام من یک ستون از اسم افراد را دارم می خواهم حرف اول و اخر را بردارم میشه راهنمایی کنید