4.4/5 - (23 امتیاز)

تابع mid در اکسل یکی از توابع متنی اکسل است که مایکروسافت آن را برای دستکاری رشته های متنی طراحی کرده است. در ساده ترین سطح، از آن برای استخراج یک زیررشته از میان یک رشته استفاده میشود. در این مطلب، در مورد ترکیب و مشخصات تابع mid در اکسل صحبت خواهیم کرد. سپس کاربردهای خلاقانه آن را برای انجام کارهای چالشی را فراخواهید گرفت.

فیلم آموزشی تابع mid در اکسل

اگر با تابع mid آشنا نیستید توصیه میکنیم قبل از ادامه مطلب فیلم آموزشی زیر رو ببینید و با جزئیات این تابع آشنا بشید. بعد از مشاهده فیلم آموزشی تابع mid در اکسل برای تمرین بیشتر و حل مثال های متنوع ادامه مطلب را مطالعه کنید.

همچنین پیشنهاد می کنیم مطالب آموزشی با تابع left و right در این لینک ببینید.

تابع left و right در اکسل

تابع mid در اکسل – ترکیب و کاربردهای اساسی

به صورت عمومی تابع mid برای استخراج یک زیر رشته از میان یک رشته طراحی شده است. به لحاظ فنی، تابع mid مقدار مشخص از کاراکتر را از محلی که شما مشخص میکنید استخراج میکند.

ترکیب تابع mid به شکل زیر است:

=MID(text, start_num, num_chars)

Text : رشته اصلی

Start_num : محل کاراکتر اول که میخواهید استخراج کنید.

Num_chars: تعداد کاراکتری که میخواهید استخراج کنید.

هر سه پارامتر الزامی هستند.

برای مثال، برای استخراج ۴ کاراکتر از رشته موجود در سلول A2، که از کاراکتر هفتم شروع میشود،از فرمول زیر استفاده میشود:

=MID(A2,7, 4)

نتیجه به شکل زیر خواهد شد:

تابع mid در اکسل

۵ چیزی که می بایست در مورد تابع mid بدانید

همانطور که تاکنون متوجه شده اید، هیچ نکته خاصی در استفاده از تابع mid در اکسل وجود ندارد . ولی به یاد داشتن نکات زیر میتواند شما را از خطاهای احتمالی بازدارد:

  1. تابع mid همیشه یک رشته متنی را برمیگرداند، حتی اگر زیر رشته استخراج شده به صورت عدد باشد. این نکته زمانی اهمیت می یابد که میخواهید نتایج بدست آمده از این تابع را در توابع دیگر مورد استفاده قرار دهید. برای تبدیل خروجی تابع mid به عدد، از ترکیب تابع mid با تابع value به شکلی که در این مثال آمده استفاده کنید.
  2. اگر مقدار پارامتر start_num بیش از طول کل رشته باشد، تابع رشته خالی “” را برمیگرداند.
  3. اگر start_num کمتر از یک باشد، تابع mid مقدار خطای #value! را برمیگرداند.
  4. اگر num_chars کمتر از ۰ باشد (اعداد منفی)، تابع mid، خطای #value! را برمیگرداند. اگر num_chars صفر باشد، تابع یک رشته خالی(سلول خالی) را برمیگرداند.
  5. اگر مجموع 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 فاصله های اضافی را برمیدارد و نتایج زیر بدست می آید:

استفاده از فرمول mid برای استخراج نام خانوادگی

نحوه بدست آوردن یک زیر رشته بین دو جداکننده

حال اگر بین نام و نام خانوادگی یک نام میانی نیز وجود داشت آنگاه چه باید کرد؟

به لحاظ فنی، می بایست محل دو فاصله را در رشته اصلی بدست آورد.که میتوانید این کار را به صورت زیر انجام دهید:

  • شبیه به مثال قبل، از تابع 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)

در تصویر زیر، این فرمول برای استخراج ایالت، مورد استفاده قرار گرفته و کار خود را نیز به خوبی انجام میدهد:

نحوه بدست آوردن یک زیر رشته بین دو جداکننده

مشترک شدن
Notify of
guest

9 نظرات
نظردهی درون متنی
مشاهده همه نظرات
مهدی

ممنون از راهنمایی تون عالی بود

علی شفاعی

سلام خوبید
فایل اکسلی دارم که کار یک صندوق قرض الحسنه فامیلی رو میکنه که ازتابع mid , indirect در ان استفاده شده تا تعداد و روز و مبلغ معوقه را نشان دهداین فایل تا پایان 1399 درست بود با ورود به سال 1400 این سلولها خالی است راهنمایی می کنید اشکال کجاست؟؟
چند نمونه از فرمولها
MID(M1,1,4)=
INDIRECT(“‘(” & $A13 & “)’!AI3”)=

با تشکر

امیر دایی

سلام
باید ببینید توی سلول هایی که در فرمول استفاده شده چه مقداری قرار داره.

شاپور

سلام و عرض ادب – برای استخراج اعداد متغییر در یک سلول از چه فرمولی استفاده کنم _ اعداد ثابت نیست که از فرمول mid استفاده کنم ممکنه لطفا” راهنمایی بفرمایید

امیر دایی

در تابع mid می تونید به جای مقدارهای ثابت (مثل شروع از یک کاراکتر خاص یا طول به اندازه خاص) از یک مقدار متغییر مثل مکان شروع عدد بعد از علامت – یا … استفاده کنید. باید مقدار سلول دقیق بفرستید.

ali

سلام جناب دایی
ممنون از مطالب مفید و سایت عالی شما
نحوه اموزش و مثالهای شما بدون اغراق بی نظیره
ممنونم که برای اموزش وقت میذارید
چند تا از مشکلاتم رو حل کردید واقعا سپاسگذارم

امیر دایی

خواهش میکنم، شما لطف دارید. موفق باشید.

نیلوفر

سلام ممنون از مطالب مفیدتون.اگه لیست اسامی مختلط باشه چی؟یعنی هم اسامی دو قسمتی وجود داشته باشه و هم اسامی سه قسمتی (مثل امیر دایی و امیر علی دایی)

امیر دایی

با سلام
خب اگر نام خانوادگی دو قسمتی باشه چی؟ یا مثلا امیر حسین زاده که ممکنه امیرحسین زاده یا امیر حسینزاده باشه.
برای اینکه بشه از اتوفیل یا توابع یا برنامه نویسی استفاده کرد باید حتما یک سری قوانین مشخص داشته باشیم.
به همین دلیل سعی میکنند نام در یک ستون و نام خانوادگی در ستون دیگه باشه.