به صورت عمومی تابع mid برای استخراج یک زیر رشته از میان یک رشته طراحی شده است. به لحاظ فنی، تابع mid مقدار مشخص
از کاراکتر را از محلی که شما مشخص میکنید استخراج میکند.
ترکیب تابع mid به شکل زیر است:
=MID(text, start_num, num_chars)
Text : رشته اصلی
Start_num : محل کاراکتر اول که میخواهید استخراج کنید.
Num_chars: تعداد کاراکتری که میخواهید استخراج کنید.
هر سه پارامتر الزامی هستند.
برای مثال، برای استخراج ۴ کاراکتر از رشته موجود در سلول A2، که از کاراکتر هفتم شروع میشود،از فرمول زیر استفاده
میشود:
=MID(A2,7, 4)
نتیجه به شکل زیر خواهد شد:
۵ چیزی که می بایست در مورد تابع mid بدانید
همانطور که تاکنون متوجه شده اید، هیچ نکته خاصی در استفاده از تابع mid در اکسل وجود ندارد . ولی به یاد داشتن نکات
زیر میتواند شما را از خطاهای احتمالی بازدارد:
- تابع mid همیشه یک رشته متنی را برمیگرداند، حتی اگر زیر رشته استخراج شده به صورت عدد باشد. این نکته زمانی
اهمیت می یابد که میخواهید نتایج بدست آمده از این تابع را در توابع دیگر مورد استفاده قرار دهید. برای تبدیل
خروجی تابع mid به عدد، از ترکیب تابع mid با تابع value به شکلی که در این مثال آمده استفاده کنید. - اگر مقدار پارامتر start_num بیش از طول کل رشته باشد، تابع رشته خالی “” را برمیگرداند.
- اگر start_num کمتر از یک باشد، تابع mid مقدار خطای #value! را برمیگرداند.
- اگر num_chars کمتر از ۰ باشد (اعداد منفی)، تابع mid، خطای #value! را برمیگرداند. اگر num_chars صفر باشد،
تابع یک رشته خالی(سلول خالی) را برمیگرداند. - اگر مجموع num_chars و start_num بیشتر از مقدار طول رشته باشد، تابع mid اکسل یک زیر رشته را برمیگرداند که از Start_num شروع میشود وتا انتهای رشته ادامه می یابد.
نحوه استفاده از تابع mid در اکسل – مثال های فرمولی
در انجام کارهای واقعی در اکسل، اکثراً می بایست از تابع mid در ترکیب بادیگر توابع در اکسل استفاده کرد. این موضوع
در مثال های در زیر آمده توضیح داده شده است:
نحوه استخراج نام و نام خانوادگی
اگر آخرین مطلب ما را مطالعه کرده باشید احتمالاً با نحوه بدست آوردن نام بوسیله تابع left و نام خانوادگی با استفاده از تابع right آشنا هستید. ولی مثل همیشه، این کار را نیزمیتوان به شیوه های متفاوتی در اکسل انجام داد.
استفاده از تابع mid برای استخراج نام
با فرض اینکه نام کامل در سلول A2 قرار گرفته است و نام و نام خانوادگی بوسیله یک فاصله از هم جدا شده اند، میتوانید
با استفاده از فرمول زیر نام را بدست آورید:
=MID(A2,1,SEARCH(" ",A2)-1)
از تابع search برای جستجوی (” “) در رشته اصلی استفاده می شود. برای جلوگیری از وجود فاصله های اضافی ۱ را از آن کم
میکنیم. سپس، از تابع برای برگرداندن یک زیر رشته که از کاراکتر اول شروع میشود و تا کاراکتر قبل از فاصله ادامه می
یابد را استخراج میکنیم.
استفاده از فرمول mid برای استخراج نام خانوادگی
برای استخراج نام خانوادگی از سلول A2 از فرمول زیر استفاده میکنیم:
=TRIM(MID(A2,SEARCH(" ",A2),LEN(A2)))
دوباره با استقاده از تابع search جایگاه فاصله را در سلول پیدا میکنیم. نیازی به پیدا کردن دقیق محل پایان نیست.
(اگر به یاد داشته باشید، اگر start_num و num_chars با هم بزرگتر از مقدار مجموع طول رشته باشد، تمام کاراکترهای
باقیمانده برگردانده میشود). در نتیجه، در پارامتر num_chars تعداد کل رشته را که توسط تابع len برگردانده شده است
قرار دهید. به جای تابع len میتوانید طول بزرگترین نام خانوادگی که حدس میزنید را در تابع
قرار دهید برای مثال ۱۰۰. در آخر،تابع trim فاصله های اضافی را برمیدارد و نتایج زیر بدست می آید:
نحوه بدست آوردن یک زیر رشته بین دو جداکننده
حال اگر بین نام و نام خانوادگی یک نام میانی نیز وجود داشت آنگاه چه باید کرد؟
به لحاظ فنی، می بایست محل دو فاصله را در رشته اصلی بدست آورد.که میتوانید این کار را به صورت زیر انجام دهید:
- شبیه به مثال قبل، از تابع search برای پیدا کردن محل اولین فاصله استفاده کنید. سپس ۱ را اضافه میکنیم تا از
اولین کاراکتر بعد از فاصله شروع کند. در نتیجه start_num تایع mid شما بدست می آید: =SEARCH(" ",A2)+1 - سپس، با استفاده از تابع serach تو در تو محل فاصله دوم را بدست می آوریم . این تابع به اکسل دستور میدهد که از
محل قرارگیری دومین فاصله کار جستجوی خود را شروع کند: =SEARCH(" ",A2,SEARCH(" ",A2)+1) - برای پیدا کردن تعداد کاراکتری که می بایست برگردانده شود، محل قرار گیری فاصله اول را از فاصله دوم کم کنید.
آنگاه ۱ را از نتیجه کم کنید زیرا نمیخواهید فاصله اضافی در زیر رشته برگردانده شده وجود داشته باشد. بنابراین،
پارامتر num_chars شما به صورت =SEARCH(" ", A2, SEARCH (" ",A2)+1) – SEARCH(" ",A2) میشود.
با قرار دادن این پارامترها در کنار یکدیگر، فرمول mid که مقدار بین دو فاصله را استخراج میکند به شکل زیر خواهد
بود:
=MID(A2, SEARCH(" ",A2)+1, SEARCH(" ", A2, SEARCH(" ",A2)+1)-SEARCH(" ",A2)-1)
تصویر زیر نتیجه این فرمول را به صورت عملی نشان میدهد:
با استفاده از همین شیوه میتوانید زیر رشته بین هر نوع جداکننده ای را استخراج کنید:
=MID(string,SEARCH(delimiter,string)+1,SEARCH (delimiter, string, SEARCH (delimiter, string)+1)SEARCH (delimiter, string)-1)
برای مثال، برای جدا کردن یک زیررشته که توسط یک کاما و یک فاصله جدا شده است میتوانید از فرمول زیر استفاده
کنید:
=MID(A2,SEARCH(", ",A2)+1,SEARCH(", ",A2,SEARCH(", ",A2)+1)-SEARCH(", ",A2)-1)
در تصویر زیر، این فرمول برای استخراج ایالت، مورد استفاده قرار گرفته و کار خود را نیز به خوبی انجام میدهد:
ورود به سایت