در چند مقاله قبل در مورد توابع متنی متفاوتی بحث کرده ایم. (توابعی که برای ایجاد تغییر و دستکاری در مقادیر متنی مورد استفاده قرار میگرفت). امروز به تابع RIGHT در اکسل خواهیم پرداخت، که برای برگرداندن تعداد خاصی از کاراکتر ها از سمت راست یک رشته مورد استفاده قرار می گیرد. شبیه به دیگر توابع متنی اکسل تابع RIGHT بسیار ساده است. با این وجود این تابع کاربردهای غیرمشهودی دارد که ممکن است در کارهای شما کمک کننده باشد.
- ترکیب تابع right در اکسل
- نحوه استفاده از تابع right در اکسل
- گرفتن یک زیر رشته بعد از یک تعداد خاص کاراکتر
- استخراج یک زیر رشته بعد از آخرین وقوع یک کاراکتر
ترکیب تابع RIGHT
تابع right در اکسل تعداد مشخصی از کاراکتر را از انتهای یک رشته برمیگرداند. (دقت کنید که در انگلیسی انتهای یک رشته سمت راست رشته میشود، به همین دلیل به این تابع RIGHT گفته میشود.) اما در فارسی برعکس است. یعنی تابع RIGHT انتهای رشته متنی را برمیگرداند.!!! در مثال ها این مورد را بهتر درک خواهیم کرد : )
ترکیب این تابع به شکل زیر است:
([RIGHT(text, [num_chars=
Text(الزامی) : رشته متنی که میخواهید کاراکترها را از آن استخراج کنید.
Num_chars (اختیاری): تعداد کاراکتری که میبایست برگردانده شود که از سمت راست شروع میشود.
- در صورتی که Num_chars حذف شود، 1 کاراکتر آخر رشته برگردانده میشود.
- در صورتی که Num_chars بیشتر از مقدار کاراکتر رشته باشد،تمام کاراکترها برگردانده میشود.
- اگر Num_chars عدد منفی باشد، تابع خطای #value! میدهد.
برای مثال برای برگرداندن سه کاراکتر آخر رشته موجود در سلول A2 از فرمول زیر استفاده میشود:
(RIGHT(A2, 3=
نتیجه به شکل زیر میشود: (به متن فارسی و انگلیسی دقت کنید تا فرق تابع RIGHT در فارسی و انگلیسی را متوجه شوید.)
نکته مهم: تابع RIGHT در اکسل همیشه مقداری متنی را برمیگرداند. حتی اگر مقدار اصلی یک عدد باشد. برای اینکه تابع RIGHT را مجبور کنیم که یک عدد برگرداند؛ این تابع را در ترکیب تابع value و به شکلی که در این مثال توضیح داده شده است به کار گیرید.
نحوه استفاده از تابع RIGHT در اکسل – مثال های فرمولی
در مثال های واقعی، کمتر از تابع RIGHT به تنهایی استفاده میشود. در بسیاری از موارد، از این فرمول در ترکیب با دیگر توابع و برای نوشتن توابع پیچیده تر استفاده میشود.
چگونگی بدست آوردن یک زیر رشته بعد از تعداد خاصی از کاراکتر
قبل از اینکه ادامه مطلب را بخوانید توصیه می کنیم این فیلم آموزشی را ببینید تا با فرایند کارها بهتر و ملموس تر آشنا شوید. در این فیلم آموزشی به شمارش تعداد یک کلمه در یک متن خواهیم پرداخت و با ترکیب توابع این مسئله را حل خواهیم کرد.
در مواردی که میخواهید یک زیر رشته را بعد از تعداد خاصی از کاراکتر برگردانید؛ از تابع SEARCH یا FIND برای پیدا کردن محل آن زیر رشته استفاده کنید. محل زیر رشته را از کل طول رشته که توسط تابع LEN برگردانده شده است، کم کنید و سپس آن تعداد کاراکتر را از سمت راست رشته برگردانید.
((RIGHT(string, LEN(string) – SEARCH(character, string=
فرض کنید سلول A2 شامل نام و نام خانوادگی است و به وسیله فاصله از هم جدا شده است و میخواهید نام خانوادگی را به یک سلول دیگر منتقل کنید. فقط کافیست از فرمول کلی بالا استفاده کنید و A2 را به جای string و “” را به جای character قرار دهید.
((RIGHT(A2,LEN(A2)-SEARCH(" ",A2=
این فرمول نتایج زیر را به دست میدهد:
به همین صورت، میتوانید یک زیر رشته را که بعد از تعداد خاصی از کاراکتر برای مثال نقطه ویرگول،ویرگول، خط فاصله و غیره، قرار گرفته به دست آورید. در مثال زیر جداکننده خط تیره است؛ فرمول به شکل زیر در می آید:
((RIGHT(A2,LEN(A2)-SERCH("-",A2=
نتیجه به شکل زیر خواهید شد:
چگونگی استخراج یک زیر رشته بعد از آخرین وقوع یک جداکننده
زمانی که با رشته های پیچیده کار میکنید که چندین بار در آن از یک جداکننده استفاده شده است، ممکن است بخواهید یک متن را بعد از آخرین جداکننده بدست آورید. برای فهم بهتر این مطلب، به داده های منبع و نتایج ارائه شده در جدول زیر توجه کنید:
همانطور که در تصویر مشاهده میکنید؛ ستون A لیستی از خطاها را نشان میدهد و شما میخواهید توضیحات خطا را که بعد از آخرین نقل قول آمده است استخراج کنید. ممکن است که رشته اصلی تعداد متفاوتی از جداکننده ها داشته باشد برای مثال A3 سه علامت نقل قول دارد ولی سلول A5 فقط یکی دارد.
کلید دستیابی به راه حل این است که محل آخرین جداکننده را مشخص کنید. برای این کار می بایست از تعدادی ار توابع دیگر استفاده کنید:
- تعداد جداکننده ها را در رشته اصلی پیدا کنید. کار بسیار راحتی است:
- ابتدا طول کل رشته را بوسیله تابع LEN بدست آورید.LEN(A2)
- سپس طول رشته را بدون جداکننده هم بدست میآورید که برای این کار می بایست با استفاده از SUBSTITUTE نقل قول را تبدیل به رشته خالی “” کنید و آنگاه طول رشته را اندازه گیری کنید:LEN(SUBSTITUTE(A2,":",""))
- در آخر، مقدار طول رشته بدون جداکننده را از طول رشته به صورت کامل کم میکنید تا تعداد نقل قول ها بدست آید.LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
برای اینکه مطمئن شوید فرمول به درستی کار میکنید می توانید فرمول substitute را در سلول دیگری بنویسید و سپس از نتیجه آن در تابع LEN استفاده کنید.
- آخرین جداکننده را با یک کاراکتر خاص جایگزین کنید. برای استخراج زیررشته ای که بعد از آخرین جداکننده می آید، می بایست آخرین جداکننده را به شکلی علامت گذاری کنیم. برای این کار، آخرین جداکننده را با کاراکتری که در هیچ جای رشته نیامده است جایگزین کنید. برای مثال با یک علامت #
در صورتی که با ترکیب تابع SUBSTITUTE آشنا هستید، میدانید که پارامتر چهارم این تابع مکان جایگزین کردن یک تعداد مشخص از یک کاراکتر را فراهم میکند. و از آنجایی که تعداد جداکننده ها را در رشته محاسبه کردیم، فقط کافیست فرمول بالا را در پارامتر چهارم تابع substitute قرار دهید:
=SUBSTITUTE(A2,":","#",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))
اگر این فرمول را در سلول های جداگانه قرار دهید، این رشته را برمیگرداند: ERROR:432#Connection timed out
- محل آخرین جداکننده را در رشته بدست آورید. بسته به اینکه آخرین جداکننده را با چه کاراکتری جایگزین کرده اید، از تابع 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 در تصویر زیر:
ورود به سایت