فهرست مطالب
در چند مقاله اخیر، توابع مختلف متن را مورد بحث قرار داده ایم - آنهایی که برای دستکاری رشته های متنی استفاده می شوند. امروزه تمرکز ما بر روی تابع RIGHT است که برای برگرداندن تعداد مشخصی از کاراکترها از سمت راست ترین رشته طراحی شده است. مانند سایر توابع متنی اکسل، RIGHT بسیار ساده و سرراست است، با این وجود چند کاربرد نامشخص دارد که ممکن است در کار شما مفید باشد.
Excel RIGHT syntax
تابع RIGHT در اکسل تعداد مشخص شده کاراکترها را از انتهای یک رشته متنی برمی گرداند.
سینتکس تابع RIGHT به شرح زیر است:
RIGHT(text, [num_chars])Where :
- Text (الزامی) - رشته متنی که می خواهید کاراکترها را از آن استخراج کنید.
- Num_chars (اختیاری) - تعداد کاراکترهایی که باید استخراج کنید، از سمت راست ترین کاراکتر شروع می شود.
- اگر num_chars حذف شود، 1 کاراکتر آخر رشته برگردانده می شود (پیش فرض).
- اگر num_chars بیشتر از تعداد کل باشد کاراکترهای رشته، همه کاراکترها برگردانده میشوند.
- اگر num_chars یک عدد منفی باشد، فرمول Right مقدار #VALUE را برمیگرداند! خطا.
به عنوان مثال، برای استخراج 3 کاراکتر آخر از رشته در سلول A2، از این فرمول استفاده کنید:
=RIGHT(A2, 3)
نتیجه ممکن است چیزی شبیه به این به نظر برسد:
نکته مهم! تابع Excel RIGHT همیشه یک متن را برمی گرداندstring ، حتی اگر مقدار اصلی یک عدد باشد. برای اجبار یک فرمول Right برای خروجی یک عدد، از آن در ترکیب با تابع VALUE همانطور که در این مثال نشان داده شده است استفاده کنید.
نحوه استفاده از تابع RIGHT در اکسل - مثال های فرمول
در زندگی واقعی کاربرگ ها، تابع Excel RIGHT به ندرت به تنهایی استفاده می شود. در بیشتر موارد، شما از آن همراه با سایر توابع اکسل به عنوان بخشی از فرمول های پیچیده تر استفاده خواهید کرد.
چگونه یک رشته فرعی که بعد از یک کاراکتر خاص می آید
در صورتی که می خواهید استخراج کنید یک رشته فرعی که از یک کاراکتر خاص پیروی می کند، از تابع SEARCH یا FIND برای تعیین موقعیت آن کاراکتر استفاده کنید، موقعیت را از طول کل رشته که توسط تابع LEN برگردانده شده کم کنید، و تعداد زیادی کاراکتر را از سمت راست رشته اصلی بکشید.
RIGHT( رشته ، LEN( رشته ) - SEARCH( نویسه ، رشته ))بیایید بگوییم، سلول A2 شامل نام و نام خانوادگی است که با یک فاصله از هم جدا شده اند، و شما قصد دارید نام خانوادگی را به سلول دیگری بکشید. فقط فرمول عمومی بالا را بگیرید و A2 را به جای رشته و " " (فاصله) را با سرعت نویسه:
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
به روشی مشابه، می توانید زیر رشته ای را دریافت کنید که از هر کاراکتر دیگری پیروی می کند، به عنوان مثال. کاما، نقطه ویرگول، خط فاصله، و غیره. به عنوان مثال، برای استخراج زیر رشته ای که بعد از خط فاصله قرار می گیرد،از این فرمول استفاده کنید:
=RIGHT(A2,LEN(A2)-SEARCH("-",A2))
نتیجه مشابه این خواهد بود:
چگونه یک زیر رشته را پس از آخرین رخداد جداکننده استخراج کنیم
وقتی هنگامی که با رشته های پیچیده ای سروکار دارید که حاوی چندین رخداد از یک جداکننده هستند، ممکن است اغلب لازم باشد متن را در سمت راست آخرین رخداد جداکننده بازیابی کنید. برای آسانتر کردن درک، به دادههای منبع زیر و نتیجه دلخواه نگاه کنید:
همانطور که در تصویر بالا میبینید، ستون A حاوی لیستی از خطاها است. هدف شما این است که شرح خطا را که بعد از آخرین دو نقطه در هر رشته آمده است، بکشید. یک پیچیدگی دیگر این است که رشته های اصلی ممکن است شامل تعداد مختلفی از نمونه های جداکننده باشند، به عنوان مثال. A3 شامل 3 دونقطه است در حالی که A5 فقط یک نقطه.
کلید یافتن راه حل، تعیین موقعیت آخرین جداکننده در رشته منبع است (آخرین رخداد دو نقطه در این مثال). برای انجام این کار، باید از تعدادی توابع مختلف استفاده کنید:
- تعداد جداکنندهها را در رشته اصلی دریافت کنید. این یک بخش آسان است:
- اول، شما طول کل رشته را با استفاده از تابع LEN محاسبه می کنید: LEN(A2)
- دوم، طول رشته را بدون جداکننده با استفاده از تابع SUBSTITUTE که همه رخدادهای یک کولون را با هیچ چیز جایگزین می کند: LEN(SUBSTITUTE(A2,":"""))
- در نهایت، طول رشته اصلی را کم می کنید.بدون جداکننده از طول کل رشته: LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
برای اطمینان از اینکه فرمول درست کار می کند، می توانید آن را در یک سلول جدا کنید و نتیجه 2 خواهد بود که تعداد دو نقطه در سلول A2 است.
- آخرین جداکننده را با یک کاراکتر منحصر به فرد جایگزین کنید. برای استخراج متنی که بعد از آخرین جداکننده در رشته آمده است، باید آن رخداد نهایی جداکننده را به نحوی "مارک" کنیم. برای این، اجازه دهید آخرین رخداد یک دو نقطه را با کاراکتری جایگزین کنیم که در هیچ کجای رشته های اصلی ظاهر نمی شود، به عنوان مثال با علامت پوند (#).
اگر با نحو تابع Excel SUBSTITUTE آشنا هستید، ممکن است به یاد داشته باشید که دارای آرگومان اختیاری 4 (instance_num) است که امکان جایگزینی تنها یک رخداد خاص از کاراکتر مشخص شده را می دهد. و از آنجایی که قبلاً تعداد جداکنندهها را در رشته محاسبه کردهایم، به سادگی تابع فوق را در آرگومان چهارم یک تابع SUBSTITUTE دیگر وارد کنید:
=SUBSTITUTE(A2,":","#",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))
اگر این فرمول را در یک سلول جداگانه قرار دهید. ، این رشته را برمی گرداند: ERROR:432#زمان اتصال تمام شد
- موقعیت آخرین جداکننده را در رشته دریافت کنید. بسته به اینکه آخرین جداکننده را با چه کاراکتری جایگزین کردهاید، از SEARCH حساس به حروف بزرگ یا FIND برای تعیین موقعیت آن کاراکتر در رشته استفاده کنید. آخرین کولون را جایگزین کردیمبا علامت #، بنابراین از فرمول زیر برای یافتن موقعیت آن استفاده می کنیم:
=SEARCH("#", SUBSTITUTE(A2,":","#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))
در این مثال، فرمول 10 را برمی گرداند که موقعیت # در رشته جایگزین شده است.
- یک رشته فرعی را در سمت راست آخرین جداکننده برگردانید. اکنون که موقعیت آخرین جداکننده در یک رشته را میدانید، تنها کاری که باید انجام دهید این است که آن عدد را از طول کل رشته کم کنید و تابع RIGHT را دریافت کنید تا این تعداد کاراکتر از انتهای رشته اصلی را برگرداند:
=RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))
همانطور که در تصویر زیر نشان داده شده است، فرمول کاملاً کار می کند:
اگر با یک مجموعه داده بزرگ کار می کنید که سلول های مختلف ممکن است حاوی جداکننده های مختلف باشند، ممکن است بخواهید برای محصور کردن فرمول بالا در تابع IFERROR برای جلوگیری از خطاهای احتمالی:
=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))), A2)
در صورتی که رشته خاصی حاوی یک رخداد از جداکننده مشخص شده نباشد، رشته اصلی برگردانده خواهد شد. مانند ردیف 6 در تصویر زیر:
نحوه حذف اولین N کاراکتر از یک رشته
به غیر از استخراج یک رشته فرعی از انتهای یک رشته، تابع Excel RIGHT مفید است. در شرایطی که می خواهید تعداد مشخصی از کاراکترها را از ابتدای رشته حذف کنید.
در مجموعه داده استفاده شده در قبلی به عنوان مثال، ممکن است بخواهید کلمه "ERROR" را که در ابتدای هر رشته ظاهر می شود حذف کنید و فقط شماره خطا و توضیحات را باقی بگذارید. برای داشتن آنانجام شد، تعداد کاراکترهایی را که باید حذف شوند از طول کل رشته کم کنید و آن عدد را به آرگومان num_chars تابع Excel RIGHT ارائه دهید:
RIGHT( string , LEN ( رشته )- number_of_chars_to_remove )در این مثال، ما 6 کاراکتر اول (5 حرف و یک دونقطه) را از رشته متن در A2 حذف می کنیم، بنابراین فرمول ما به صورت زیر است. به شرح زیر است:
=RIGHT(A2, LEN(A2)-6)
آیا تابع Excel RIGHT می تواند عددی را برگرداند؟
همانطور که در ابتدای این آموزش ذکر شد، تابع RIGHT در اکسل همیشه یک رشته متن را حتی برمی گرداند. اگر مقدار اصلی یک عدد باشد. اما اگر با یک مجموعه داده عددی کار کنید و بخواهید خروجی نیز عددی باشد چه؟ یک راه حل آسان، تودرتو کردن فرمول Right در تابع VALUE است، که مخصوصاً برای تبدیل رشته ای که یک عدد را به یک عدد تبدیل می کند، طراحی شده است.
به عنوان مثال، برای بیرون کشیدن 5 کاراکتر آخر (کد پستی) از رشته در A2 و کاراکترهای استخراج شده را به عدد تبدیل کنید، از این فرمول استفاده کنید:
=VALUE(RIGHT(A2, 5))
تصویر زیر نتیجه را نشان می دهد - لطفاً به اعداد راست چین در ستون B، بر خلاف سمت چپ توجه کنید. رشته های متنی تراز شده در ستون A:
چرا تابع RIGHT با تاریخ ها کار نمی کند؟
از آنجایی که تابع Excel RIGHT برای کار با رشته های متنی طراحی شده است در حالی که تاریخ ها با اعداد در نشان داده می شوند. در سیستم اکسل داخلی، فرمول Right قادر به بازیابی یک فرد نیستبخشی از یک تاریخ مانند روز، ماه یا سال. اگر سعی کنید این کار را انجام دهید، تنها چند رقم آخر عددی است که نشان دهنده یک تاریخ است.
فرض کنید، تاریخ 18-Jan-2017 را در سلول A1 دارید. اگر سعی کنید سال را با فرمول RIGHT(A1,4) استخراج کنید، نتیجه 2753 می شود که 4 رقم آخر عدد 42753 است که نشان دهنده 18 ژانویه 2017 در سیستم اکسل است.
پس، چگونه می توانم قسمت خاصی از تاریخ را بازیابی کنم؟، ممکن است از من بپرسید. با استفاده از یکی از توابع زیر:
- تابع DAY برای استخراج یک روز: =DAY(A1)
- تابع MONTH برای دریافت یک ماه: =MONTH(A1)
- عملکرد YEAR برای کشیدن یک سال: =YEAR(A1)
تصویر صفحه زیر نتایج را نشان می دهد:
اگر تاریخ های شما با رشته های متنی نمایش داده می شود ، که اغلب زمانی که دادهها را از یک منبع خارجی صادر میکنید، اتفاق میافتد، هیچ چیز مانع از استفاده از تابع RIGHT برای کشیدن چند کاراکتر آخر در رشته میشود که نشاندهنده بخش خاصی از تاریخ است:
Excel RIGHT عملکرد کار نمی کند - دلایل و راه حل ها
اگر فرمول Right به درستی در کاربرگ شما کار نمی کند، به احتمال زیاد به دلیل یکی از دلایل زیر است:
- یک یا چند مورد وجود دارد فضاهای دنباله دار در داده های اصلی. برای حذف سریع فضاهای اضافی در سلول ها، از تابع Excel TRIM یا افزونه Cell Cleaner استفاده کنید.
- آگومان num_chars کمتر از صفر است . ازالبته، به سختی می خواهید عمداً یک عدد منفی در فرمول خود قرار دهید، اما اگر آرگومان num_chars توسط یک تابع اکسل دیگر یا ترکیبی از توابع مختلف محاسبه شود و فرمول Right شما مقدار #VALUE را برمی گرداند! خطا، حتماً تابع(های) تودرتو را برای وجود خطا بررسی کنید.
- مقدار اصلی تاریخ است. اگر این آموزش را به دقت دنبال کرده باشید، می دانید که چرا تابع RIGHT نمی تواند با تاریخ ها کار کند. اگر شخصی بخش قبلی را رد کرده است، میتوانید جزئیات کامل را در چرا تابع Excel RIGHT با تاریخ کار نمیکند بیابید.
به این ترتیب از تابع RIGHT در اکسل استفاده میکنید. برای مشاهده دقیق فرمول های مورد بحث در این آموزش، می توانید نمونه کار ما را در زیر دانلود کنید. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینیم.
دانلودهای موجود
عملکرد Excel RIGHT - نمونه ها (فایل xlsx.)