فهرست مطالب
این آموزش توابع REPLACE و SUBSTITUTE Excel را با مثال هایی از کاربردها توضیح می دهد. نحوه استفاده از تابع REPLACE با رشته های متنی، اعداد و تاریخ، و نحوه قرار دادن چندین تابع REPLACE یا SUBSTITUTE در یک فرمول را ببینید.
هفته گذشته روش های مختلف استفاده از توابع FIND و SEARCH در داخل را مورد بحث قرار دادیم. کاربرگ های اکسل شما امروز، ما نگاهی عمیقتر به دو تابع دیگر خواهیم داشت تا متن را در یک سلول بر اساس مکان آن جایگزین کنیم یا یک رشته متن را با رشتهای دیگر بر اساس محتوا جایگزین کنیم. همانطور که ممکن است حدس زده باشید، من در مورد توابع REPLACE و SUBSTITUTE در Excel صحبت می کنم.
عملکرد REPLACE Excel
عملکرد REPLACE در اکسل به شما امکان می دهد یک یا چند مورد را تعویض کنید. کاراکترهای یک رشته متن با یک کاراکتر دیگر یا مجموعهای از کاراکترها.
REPLACE(old_text، start_num، num_chars، new_text)همانطور که میبینید، تابع Excel REPLACE دارای 4 آرگومان است که همه آنها لازم است.
- Old_text - متن اصلی (یا اشاره به سلولی با متن اصلی) که در آن می خواهید چند نویسه را جایگزین کنید.
- Start_num - موقعیت اولین کاراکتر در متن قدیمی که می خواهید جایگزین کنید.
- Num_chars - تعداد کاراکترهایی که می خواهید جایگزین کنید.
- New_text - متن جایگزین.
به عنوان مثال، برای تغییر کلمه " sun " به " son "، می توانید از موارد زیر استفاده کنید.فرمول:
=REPLACE("sun", 2, 1, "o")
و اگر کلمه اصلی را در سلولی مثلا A2 قرار دهید، می توانید مرجع سلول مربوطه را در آرگومان old_text ارائه دهید:
=REPLACE(A2, 2, 1, "o")
توجه. اگر آرگومان start_num یا num_chars منفی یا غیر عددی باشد، فرمول Excel Replace مقدار #VALUE را برمیگرداند! خطا.
استفاده از تابع Excel REPLACE با مقادیر عددی
عملکرد REPLACE در اکسل برای کار با رشته های متنی طراحی شده است. البته، می توانید از آن برای جایگزینی کاراکترهای عددی که بخشی از یک رشته متنی هستند استفاده کنید، به عنوان مثال:
=REPLACE(A2, 7, 4, "2016")
توجه کنید که ما "2016" را ضمیمه می کنیم. همانطور که معمولاً با مقادیر متنی انجام می دهید، در دو گیومه.
به روشی مشابه، می توانید یک یا چند رقم را در یک عدد جایگزین کنید. به عنوان مثال:
=REPLACE(A4, 4, 4,"6")
و دوباره، باید مقدار جایگزین را در دو گیومه ("6") قرار دهید.
توجه داشته باشید. فرمول Excel REPLACE همیشه یک رشته متنی را برمی گرداند، نه عدد. در تصویر بالا، به تراز سمت چپ مقدار متن بازگشتی در B2 توجه کنید و آن را با عدد اصلی تراز شده راست در A2 مقایسه کنید. و چون یک مقدار متنی است، نمیتوانید از آن در محاسبات دیگر استفاده کنید مگر اینکه آن را به عدد برگردانید، مثلاً با ضرب در 1 یا با استفاده از هر روش دیگری که در نحوه تبدیل متن به عدد توضیح داده شده است.
استفاده از تابع Excel REPLACE با تاریخ
همانطور که مشاهده کردید، تابع REPLACE به خوبی بااعداد، به جز اینکه یک رشته متن را برمی گرداند :) با یادآوری اینکه در سیستم اکسل داخلی، تاریخ ها به عنوان اعداد ذخیره می شوند، ممکن است سعی کنید از برخی فرمول های Replace در تاریخ ها استفاده کنید. نتایج بسیار شرم آور خواهند بود.
به عنوان مثال، شما یک تاریخ در A2 دارید، مثلاً 1-Oct-14، و می خواهید " Oct " را به " Nov<" تغییر دهید. 2>". بنابراین، فرمول REPLACE (A2, 4, 3, "Nov") را می نویسید که به اکسل می گوید 3 نویسه را در سلول های A2 که با char 4 شروع می شود جایگزین کند ... و نتیجه زیر را دریافت می کنید:
چرا؟ زیرا "01-Oct-14" فقط یک نمایش تصویری از شماره سریال زیرین (41913) است که تاریخ را نشان می دهد. بنابراین، فرمول Replace ما 3 رقم آخر شماره سریال بالا را به " Nov " تغییر می دهد و رشته متن "419Nov" را برمی گرداند.
برای اینکه تابع Excel REPLACE به درستی کار کند. تاریخ ها، می توانید ابتدا با استفاده از تابع TEXT یا هر تکنیک دیگری که در نحوه تبدیل تاریخ به متن در اکسل نشان داده شده است، تاریخ ها را به رشته های متنی تبدیل کنید. همچنین، میتوانید تابع TEXT را مستقیماً در آرگومان old_text تابع REPLACE جاسازی کنید:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
لطفاً به خاطر داشته باشید که نتیجه فرمول بالا یک رشته متن ، و بنابراین این راه حل تنها در صورتی کار می کند که قصد استفاده از تاریخ های اصلاح شده را در محاسبات بیشتر ندارید. اگر به جای رشته های متنی به تاریخ نیاز دارید، از تابع DATEVALUE برای تبدیل مقادیر برگردانده شده توسطتابع Excel REPLACE به تاریخ باز می گردد:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
توابع REPLACE تو در تو برای انجام چندین جایگزین در یک سلول
بسیار اوقات، ممکن است نیاز به انجام بیش از یک جایگزین در یک سلول داشته باشید. همان سلول البته، میتوانید یک جایگزین انجام دهید، یک نتیجه میانی را در یک ستون اضافی تولید کنید و سپس دوباره از تابع REPLACE استفاده کنید. با این حال، یک راه بهتر و حرفه ای تر، استفاده از توابع REPLACE تو در تو است که به شما امکان می دهد چندین جایگزین را با یک فرمول واحد انجام دهید. در این زمینه، "تودرتو" به معنای قرار دادن یک تابع در یک تابع دیگر است.
مثال زیر را در نظر بگیرید. فرض کنید فهرستی از شمارههای تلفن در ستون A با فرمت «123456789» دارید و میخواهید با افزودن خط فاصله، آنها را بیشتر شبیه شمارههای تلفن کنید. به عبارت دیگر، هدف شما تبدیل "123456789" به "123-456-789" است.
درج اولین خط فاصله آسان است. شما یک فرمول جایگزین اکسل معمولی می نویسید که صفر کاراکتر را با خط تیره جایگزین می کند، یعنی یک خط فاصله در موقعیت چهارم در یک سلول اضافه می کند:
=REPLACE(A2,4,0,"-")
نتیجه در بالا فرمول جایگزینی به شرح زیر است:
بسیار خوب، و اکنون باید یک خط فاصله دیگر در موقعیت 8 قرار دهیم. برای انجام این کار، فرمول فوق را در یک تابع دیگر اکسل REPLACE قرار می دهید. به طور دقیق تر، شما آن را در آرگومان old_text تابع دیگر جاسازی می کنید، به طوری که تابع دوم REPLACE مقدار بازگشتی توسط تابع را کنترل می کند.ابتدا REPLACE، و نه مقدار در سلول A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
در نتیجه، شماره تلفن ها را با قالب بندی دلخواه دریافت می کنید:
به روشی مشابه، میتوانید از توابع REPLACE تودرتو استفاده کنید تا رشتههای متنی را با اضافه کردن یک اسلش رو به جلو (/) در صورت لزوم، شبیه به تاریخ کنید:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
علاوه بر این، میتوانید با قرار دادن فرمول REPLACE بالا با تابع DATEVALUE، رشتههای متن را به تاریخ واقعی تبدیل کنید:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
و طبیعتاً از نظر تعداد توابع محدودیتی ندارید. شما می توانید در یک فرمول قرار بگیرید (نسخه های مدرن اکسل 2010، 2013 و 2016 حداکثر 8192 کاراکتر و حداکثر 64 تابع تودرتو در یک فرمول اجازه می دهد).
به عنوان مثال، می توانید از 3 تابع REPLACE تو در تو استفاده کنید. یک عدد در A2 مانند تاریخ و زمان ظاهر شود:
=REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
جایگزینی رشته ای که در موقعیت متفاوتی در هر سلول ظاهر می شود
تاکنون در تمام نمونه ها با ارزش هایی با ماهیت مشابه سر و کار داشته ایم و جایگزین هایی در موقعیت های مشابه داشته ایم. در هر سلول اما وظایف زندگی واقعی اغلب پیچیده تر از آن هستند. در کاربرگهای شما، نویسههایی که باید جایگزین شوند ممکن است لزوماً در یک مکان در هر سلول ظاهر نشوند، و بنابراین باید موقعیت اولین کاراکتر را که باید جایگزین شود، پیدا کنید. مثال زیر نشان می دهد که من در مورد چه چیزی صحبت می کنم.
فرض کنید شما یک لیست ایمیل دارید.آدرس دهی در ستون A. و نام یک شرکت از "ABC" به مثلا "BCA" تغییر کرده است. بنابراین، شما باید تمام آدرسهای ایمیل مشتریان را بر این اساس بهروزرسانی کنید.
اما مشکل این است که طول نامهای مشتری متفاوت است و به همین دلیل است که نمیتوانید دقیقاً مشخص کنید نام شرکت از کجا شروع میشود. به عبارت دیگر، شما نمی دانید چه مقداری را در آرگومان start_num تابع Excel REPLACE ارائه کنید. برای پیدا کردن آن، از تابع Excel FIND برای تعیین موقعیت اولین کاراکتر در رشته "@abc" استفاده کنید:
=FIND("@abc",A2)
و سپس، تابع FIND بالا را در start_num وارد کنید. آرگومان فرمول REPLACE شما:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
نکته. ما "@" را در فرمول اکسل Find and Replace اضافه می کنیم تا از جایگزینی تصادفی در قسمت نام آدرس های ایمیل جلوگیری کنیم. البته، احتمال بسیار کمی وجود دارد که چنین تطابقی اتفاق بیفتد، و هنوز هم ممکن است بخواهید در قسمت امن باشید.
همانطور که در تصویر زیر می بینید، فرمول مشکلی با یافتن و جایگزینی ندارد. متن قدیمی با متن جدید با این حال، اگر رشته متنی که باید جایگزین شود پیدا نشد، فرمول #VALUE را برمیگرداند! خطا:
و می خواهیم فرمول به جای خطا، آدرس ایمیل اصلی را برگرداند. بنابراین، بیایید FIND & REPLACE فرمول در تابع IFERROR:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
و این فرمول بهبود یافته کاملاً کار می کند، اینطور نیست؟
یکی دیگر از موارد کاربردیکاربرد تابع REPLACE برای بزرگ کردن حرف اول در یک سلول است. هر زمان که با فهرستی از نامها، محصولات و موارد مشابه سروکار دارید، میتوانید از فرمول پیوند بالا برای تغییر حرف اول به UPPERCASE استفاده کنید.
نکته. اگر میخواهید جایگزینها را در دادههای اصلی انجام دهید، یک راه آسانتر استفاده از گفتگوی Excel FIND و REPLACE است.
عملکرد SUBSTITUTE Excel
عملکرد SUBSTITUTE در اکسل جایگزین یک یا چند نمونه میشود. از یک کاراکتر یا رشته متن داده شده با یک کاراکتر(های) مشخص.
سینتکس تابع Excel SUBSTITUTE به شرح زیر است:
SUBSTITUTE(text، old_text، new_text، [instance_num])سه آرگومان اول مورد نیاز است و آخرین آن اختیاری است.
- Text - متن اصلی که در آن می خواهید کاراکترها را جایگزین کنید. می تواند به عنوان یک رشته آزمایشی، مرجع سلول، یا نتیجه فرمول دیگری ارائه شود.
- Old_text - کاراکتر(هایی) که می خواهید جایگزین کنید.
- New_text - کاراکتر(های) جدید برای جایگزینی old_text با.
- Instance_num - وقوع Old_text که می خواهید جایگزین کنید. اگر حذف شود، هر اتفاقی از متن قدیمی به متن جدید تغییر میکند.
به عنوان مثال، همه فرمولهای زیر در سلول A2 جای "1" را با "2" میکنند، اما نتایج متفاوتی را نشان میدهند. بسته به اینکه کدام عدد را در آخرین آرگومان ارائه می کنید:
=SUBSTITUTE(A2, "1", "2", 1)
- اولین رخداد "1" را با"2".
=SUBSTITUTE(A2, "1", "2", 2)
- دومین رخداد "1" را با "2" جایگزین می کند.
=SUBSTITUTE(A2, "1", "2")
- همه رخدادهای "1" را با "2" جایگزین می کند.
در عمل، تابع SUBSTITUTE نیز برای حذف کاراکترهای ناخواسته از سلول ها استفاده می شود. برای مثالهای واقعی، لطفاً ببینید:
- چگونه کاراکترها یا کلمات را از رشته حذف کنیم
- چگونه کاراکترهای ناخواسته را از سلولها حذف کنیم
توجه داشته باشید. تابع SUBSTITUTE در اکسل حساس به حروف کوچک و بزرگ است. به عنوان مثال، فرمول زیر همه نمونه های بزرگ "X" را با "Y" در سلول A2 جایگزین می کند، اما هیچ نمونه ای از حروف کوچک "x" را جایگزین نمی کند.
چندین مقدار را با یک فرمول (جایگزین تودرتو) جایگزین کنید
همانطور که در مورد تابع Excel REPLACE وجود دارد، می توانید چندین تابع SUBSTITUTE را در یک فرمول تودرتو قرار دهید تا چندین جانشین را در یک زمان انجام دهید، یعنی جایگزین کنید. چندین کاراکتر یا زیر رشته با یک فرمول واحد.
فرض کنید یک رشته متنی مانند " PR1, ML1, T1 " در سلول A2 دارید، جایی که "PR" مخفف "Project, "ML است. " مخفف "Milestone" و "T" به معنای "وظیفه" است. آنچه شما می خواهید این است که سه کد را با نام کامل جایگزین کنید. برای رسیدن به این هدف، می توانید 3 فرمول SUBSTITUTE مختلف بنویسید:
=SUBSTITUTE(A2,"PR", "Project ")
=SUBSTITUTE(A2, "ML", "Milestone ")
=SUBSTITUTE(A2, "T", "Task ")
و سپس آنها را در یکدیگر لانه کنید:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"PR","Project "),"ML","Milestone "),"T","Task ")
توجه کنید که یک فاصله در انتهای آن اضافه کرده ایم. هر آرگومان new_text برای بهتر شدنقابلیت خواندن Excel SUBSTITUTE
توابع Excel REPLACE و SUBSTITUTE بسیار شبیه به یکدیگر هستند زیرا هر دو برای تعویض رشته های متنی طراحی شده اند. تفاوت بین این دو تابع به شرح زیر است:
- SUBSTITUTE جایگزین یک یا چند نمونه از یک کاراکتر داده شده یا یک رشته متن می شود. بنابراین، اگر میدانید متنی که باید جایگزین شود، از تابع Excel SUBSTITUTE استفاده کنید.
- REPLACE کاراکترها را در یک موقعیت مشخص شده از یک رشته متن تغییر میدهد. بنابراین، اگر موقعیت کاراکتر(هایی) که باید جایگزین شوند را می دانید، از تابع REPLACE Excel استفاده کنید.
- عملکرد SUBSTITUTE در اکسل اجازه می دهد تا یک پارامتر اختیاری (instance_num) اضافه کنید که مشخص می کند کدام وقوع of old_text باید به new_text تغییر یابد.
به این ترتیب از توابع SUBSTITUTE و REPLACE در اکسل استفاده می کنید. امیدواریم این مثال ها در حل وظایف شما مفید واقع شوند. از شما سپاسگزارم که خواندید و امیدوارم هفته آینده در وبلاگ ما ببینیم!
دانلود کتاب تمرین
نمونه فرمول REPLACE و SUBSTITUTE (فایل xlsx.)