به نام خداوندگار ایران زمین
با درود
Extracting Words from a String
استخراج کلمات از یک رشته :
فرمولهای که در داستان امشبمون به انها میپردازیم برای استخراج کلمه یا کلمات از یک textوارد شده داخل یک سل مفید است. بعنوان مثال شما از یه فرمول استفاده کنید تا اولین کلمه رو در یک جمله استخراج کنید یا مثلا نام و نام خانوادگی رو توی یه سل دارین و میخواین نام رو از نام خانوادگی جدا کنیین.Extracting the first word of a string
برای استخراج اولین کلمه در یک رشته که با اسپیس از کلمه بعدی جدا شده مثل نام و نام خانوادگی از تابع Left استفاده میکنیم و تابع Find برای پیدا کردن این فاصله .
کد:
=LEFT(A1,FIND(" ",A1)-1)
این فرمول ما،تکست ما قبل اولین فاصله رو برای ما برمیگردونه که در یک سل مانند A1 وارد شده باشد.این تابع اگر که تکست ما فاصله ای در اون نباشه با ارور مواجه میشه به خاطر اینکه شامل یک تک کلمه است. یک فرمول که یه ذره پیچیده تر باشه این مشکل رو حل میکنه بله درسته تابع IFERROR :
کد:
=IFERROR(LEFT(A1,FIND(" ",A1)-1),A1)
اگر شما دارین از ورژن های پایین تر اکسل استفاده میکنین که این تابع رو نداره میتونین فرمول رو به طریق زیر اصلاح کنین :
کد:
=IF(ISERR(FIND(" ",A1)),A1,LEFT(A1,FIND(" ",A1)-1))
Extracting the last word of a string
استخراج اخرین کلمه از یک رشته پیچیده تره چون تابع Find تنها از چپ به راست کار میکنه . بنابر این ، مشکل ما با مکان اخرین اسپیس هست.
فرمولی که در ادامه مطرح میشه این مشکل رو حل میکنه .
کد:
=RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1, " ","*",LEN(A1)-LEN(SUBSTITUTE(A1, " ","")))))
این فرمول هم همون مشکل بالا رو داره و اگر فاصله ای در رشته ما نباشه به مشکل مواجه میشه پس اینبار هم با IFERROR محکمش میکنیم .
کد:
=IFERROR(RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1, " ","*",LEN(A1)-LEN(SUBSTITUTE(A1, " ",""))))),A1)
اگر هم دارین از ورژن های قدیمی استفاده میکنین بدین صورت میشه :
کد:
=IF(ISERR(FIND("",A1)),A1,RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1, " ","*",LEN(A1)-LEN(SUBSTITUTE(A1, " ",""))))))
Extracting all except the first word of a string
استخراج همه کلمات یک رشته بجز اولین کلمه . واسه اونایی که اسمشون چند کلمه ای هستش بسیار کاربرد داره.
فرمول زیر محتویات سل A1 رو بدون اولین کلمه را برای ما برای ما بر میگرداند .
کد:
=RIGHT(A1,LEN(A1)-FIND(" ",A1,1))
مثلا اگر داشته باشیم Amin Esmaeili Shirazi جواب میشه Esmaeili Shirazi
مثل تموم فرمول ها ی بالا اگر کلمه ما یک کلمه باشه یعنی فاصله ای در آن نباشه با مشکل مواجه میشه پس :
کد:
=IFERROR(RIGHT(A1,LEN(A1)-FIND(" ",A1,1)),A1)
و در ورژن های پایین میشه :
کد:
=IF(ISERR(FIND(" ",A1)),"",RIGHT(A1,LEN(A1)-FIND(" ",A1,1)))
خب دوستای گلم شب همگیتون شیک و مجلسی ، برم که فک کنم شیرازی بودن اومد سراغم تا شبی دیگر و هزار و یک شب اکسلی دیگر بدرود
|
اخطار: این یک موضوع قدیمی است به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید. |
|
علاقه مندی ها (Bookmarks)