تابع SEARCH موقعیت یک رشته متنی را داخل رشته متن دیگر بر میگرداند. SEARCH موقعیت مولفه find_text را از داخل مولفه within_text به صورت عدد بر میگرداند. SEARCH از نویسههای خاص پشتیبانی میکند و به حروف بزرگ و کوچک حساس نیست.
هدف تابع
موقعیت نویسههای داخل یک رشته متن را استخراج کنید
خروجی تابع
عددی که نشان دهنده موقعیت زیر رشته است
ترکیب تابع
= SEARCH ( find_text , within_text , [start_num] )
ورودی تابع (مولفهها)
find_text – زیر رشتهای که میخواهید پیدا کنید. این مولفه یک رشته متن است که اکسل آن را داخل یک رشته متن دیگر جستجو میکند. اگر رشته متن را به صورت مستقیم در فرمول وارد میکنید، متن باید داخل دو گیومه وارد شود.
در غیر این صورت ، میتوانید آدرس سلولی که حاوی متن است را وارد کنید.
within_text - رشته متنی که حاوی متنی است که میخواهید پیدا کنید. اغلب این مولفه آدرس سلولی است که حاوی متن است ، اما میتوانید رشته متن را به صورت مستقیم داخل دو گیومه نیز قرار دهید.
start_num - [اختیاری] نویسهای که در آن جستجو به عنوان یک موقعیت عددی آغاز میشود. موقعیت اولین نویسه مولفه within_text عدد یک در نظر گرفته میشود. اگر حذف شود، جستجو از ابتدای متن آغاز میشود (پیشفرض آن 1 است).
نحوه استفاده از تابع
تابع SEARCH موقعیت (به عنوان یک عدد) یک رشته متنی را از داخل رشته متن دیگر بر میگرداند. در ابتدایی ترین حالت ، میتوانید از SEARCH برای تعیین موقعیت یک زیر رشته داخل یک رشته متن دیگر استفاده کنید.
همچنین میتوانید از SEARCH برای بررسی اینکه آیا سلولی دارای متن خاصی است یا خیر استفاده کنید.
SEARCH به حروف بزرگ و کوچک حساس نیست ، یعنی حروف بزرگ و کوچک را تشخیص نمیدهد. علاوه بر این ، SEARCH از نویسههای خاص مانند * ? ~ پشتیبانی میکند و امکان فرمول نویسی برای جستجوهای انعطافپذیرتر را میدهد.
در ادامه چند نکته کلیدی در مورد تابع SEARCH ارائه میشود:
- SEARCH موقعیت یک زیر رشته متن را در داخل رشته متن اصلی به صورت عدد بر میگرداند.
- وقتی SEARCH نتواند متن مورد جستجو را پیدا کند ، خطای VALUE# را بر میگرداند.
- اگر رشته متن موردجستجو بیش از یک بار ظاهر شود، SEARCH موقعیت اول را بر میگرداند.
- SEARCH به حروف بزرگ و کوچک حساس نیست و "Apple" و "apple" را به عنوان رشتههای متنی مشابه در نظر میگیرد.
- SEARCH هنگام جستجوی متن از نویسههای خاص مانند * ? ~ پشتیبانی میکند.
- اگر رشته موردجستجو (find_text) خالی باشد ، SEARCH عدد 1 را بر میگرداند ، که وقتی find_text یک سلول خالی باشد، میتواند باعث نتیجه نادرست شود.
نکته: تابع SEARCH مشابه تابع FIND است. هر دو تابع موقعیت یک رشته متن را داخل رشته متن دیگر بر میگرداند. با این حال ، برخلاف FIND ، SEARCH به حروف بزرگ و کوچک حساس نیست و از نویسههای خاص پشتیبانی میکند.
مثال ها
تابع SEARCH به گونهای طراحی شده است که درون یک رشته متنی یک زیررشته خاص را جستجو کند. وقتی SEARCH زیررشته را پیدا میکند، موقعیت آن را در متن اصلی به صورت عدد بر میگرداند. اگر زیر رشته پیدا نشد، SEARCH خطای VALUE # را بر میگرداند.
= SEARCH ( "p" ، "apple" ) // مقدار 2 بازگردانده میشود
= SEARCH ( "z" , "apple" ) // بازگردانده میشود #VALUE! خطای
= SEARCH ( "apple" , "Pineapple" ) // مقدار 5 بازگردانده میشود
توجه داشته باشید که مقادیر متنی که مستقیما در SEARCH وارد میشوند باید داخل دو گیومه ("") قرار گیرند. برخلاف تابع FIND ، تابع SEARCH به حروف بزرگ و کوچک حساس نیست:
= SEARCH ( "a" , "Apple" ) // مقدار 1 بازگردانده میشود
= SEARCH ( "A" , "Apple" ) // مقدار 1 بازگردانده میشود
= SEARCH ( "Apple" , "Pineapple" ) // مقدار 5 بازگردانده میشود
برگه زیر همان نمونههایی را نشان میدهد که بر اساس آدرس سلول فرمولنویسی شدهاند:
بازگرداندن نتیجه به صورت TRUE یا FALSE
به طور پیشفرض ، نتیجه تابع SEARCH زمانی که زیر رشته را پیدا میکند ، یک عدد و اگر زیر رشته پیدا نشد خطای VALUE# است.
نتیجه خطا در مواردی که تنها میخواهید بدانید که آیا رشته مورد جستجو پیدا شده است یا نه، مناسب نیست. برای بازگرداندن نتیجه به صورت TRUE یا FALSE ، میتوانید تابع SEARCH را داخل تابع ISNUMBER قرار دهید. ISNUMBER برای مقادیر عددی TRUE و برای هر چیز دیگری FALSE را بر میگرداند. اگر SEARCH زیر رشته را پیدا کند ، نتیجه آن به صورت عدد و در نتیجه ISNUMBER مقدار TRUE را بر میگرداند. اگر SEARCH زیر رشته را پیدا نکند ، نتیجه خطا و در نتیجه ISNUMBER مقدار FALSE را برمیگرداند:
= ISNUMBER ( SEARCH ( "p" , "apple" )) // بازگردانده میشود TRUE
= ISNUMBER ( SEARCH ( "z" ,"apple" )) // بازگردانده میشود FALSE
هنگامی که نتیجه TRUE یا FALSE را دارید ، می توانید تابع SEARCH را با تابع IF ترکیب کنید تا منطق "اگر سلول با شرط مطابقت دارد" را پیاده کنید. الگوی عمومی این فرمول به صورت زیر است:
= IF ( ISNUMBER ( SEARCH (substring , A1 )) , "Yes", "No" )
به جای برگرداندن TRUE یا FALSE ، در صورت یافتن زیررشته ، فرمول بالا "Yes" و در غیر این صورت "No" را بر میگرداند. میتوانید از همین ایده برای علامت گذاری موارد مورد علاقه استفاده کنید.
به عنوان مثال ، در برگه فوق ، از ترکیب تابع SEARCH با تابع IF برای شناسایی آدرسهای ایمیل حاوی "abc" با "x" استفاده میکنیم.
فرمول سلول C3 به صورت زیر است:
= IF ( ISNUMBER ( SEARCH ( "abc" , B3 )) , "x" ,"" )
شماره شروع
تابع SEARCH یک مولفه اختیاری به نام start_num دارد که کنترل میکند SEARCH کجا شروع به جستجوی زیر رشته کند. برای پیدا کردن اولین مطابقت در هر ترکیبی از حروف بزرگ یا کوچک ، میتوانید start_num را حذف کنید ، که پیش فرض آن 1 است:
= SEARCH ( "x" , "20 x 30 x 50" ) // مقدار 4 بازگردانده میشود
SEARCH مقدار 4 را بر میگرداند. زیرا اولین "x" در موقعیت 4 ظاهر میشود. برای یافتن "x" دوم ، عدد 5 را برای start_num وارد کنید:
= SEARCH ( "x" , "20 x 30 x 50" , 5) // مقدار 9 بازگردانده میشود
در این حالت ،SEARCH مقدار 9 را بر میگرداند، زیرا جستجو را بعد از اولین "x" آغاز میکند. میتوانید "x" دوم را در رشته متن موجود در سلول A1 با استفاده از فرمول زیر پیدا کنید:
= SEARCH ( A1 , SEARCH ( "x" , A1 ) +1)
SEARCH داخلی محل اولین "x" را بر میگرداند. سپس 1 را اضافه میکنیم و نتیجه به عنوان start_num در SEARCH بیرونی استفاده میشود. نتیجه مکان دومین "x" در سلول A1 است.
نویسههای خاص
اگرچه SEARCH به حروف بزرگ و کوچک حساس نیست ، اما از نویسههای خاص (* ? ~) پشتیبانی میکند، که آن را به ابزاری همه کاره برای یافتن زیر رشتهها در یک متن تبدیل میکند. این امکان ، جستجوهای پیچیدهتری را فراهم میکند، مانند جستجوهایی که شامل تطبیق الگوی اولیه میشود. به عنوان مثال ، علامت سوال (؟) با هر یک از نویسهها مطابقت دارد. فرمول زیر به دنبال یک رشته 3 نویسهای است که با "x" شروع و به "y" ختم میشود:
= ISNUMBER ( SEARCH ( "x?z" ، "xyz" )) // TRUE
= ISNUMBER ( SEARCH ( "x?z" ، "xbz" )) // TRUE
= ISNUMBER ( SEARCH ( "x?z" ، "xyy" )) // FALSE
علامت ستاره (*) در تابع SEARCH چندان مفید نیست زیرا SEARCH اساسا خودش به دنبال زیررشته است. به عنوان مثال ، ممکن است به نظر برسد که فرمول زیر مقداری که به "z" ختم میشود را ارزیابی میکند:
= SEARCH ( "*z" , text )
با این حال، از آنجایی که SEARCH به طور خودکار به دنبال یک زیر رشته میگردد، فرمولهای زیر همگی مقدار 1 را بر میگردند، حتی اگر متن فرمول اول تنها متنی است که به "z" ختم میشود:
= SEARCH ( "*z" , "XYZ" ) // مقدار 1 بازگردانده میشود
= SEARCH ( "*z" , "XYZXY" ) // مقدار 1 بازگردانده میشود
= SEARCH ( "*z" , "XYZXY123" ) // مقدار 1 بازگردانده میشود
= SEARCH ( "x*z" , "XYZXY123" ) // مقدار 1 بازگردانده میشود
با این حال، میتوان از علامت ستاره (*) به صورت زیر استفاده کرد:
= SEARCH ( "x*2*b" , "AAAXYZ123ABCZZZ" ) // مقدار 4 بازگردانده میشود
= SEARCH ( "x*2*b" , "NXYZ12563JKLB" ) // مقدار 2 بازگردانده میشود
در مثالهای فوق به ترتیب به دنبال نویسههای ""x ، "2" و "b" ، با هر تعداد نویسه در بین آنها هستیم. در نهایت، از علامت مد (~) به عنوان یک نویسه فرار استفاده کنید تا نشان دهید که نویسه بعدی یک نویسه شبیه به این است:
= SEARCH ( "~*" , "apple*" ) // مقدار 6 بازگردانده میشود
= SEARCH ( "~?" , "apple?" ) // مقدار 6 بازگردانده میشود
= SEARCH ( "~~" , "apple~" ) // مقدار 6 بازگردانده میشود
یادداشت
- تابع SEARCH مکان اولین زیر رشته را درون رشته متن دیگر به صورت عدد بر میگرداند.
- Start_num اختیاری است و پیشفرض آن ۱ است.
- وقتی find_text خالی باشد SEARCH مقدار 1 را بر میگرداند.
- اگر find_text پیدا نشد SEARCH خطای VALUE# را بر میگرداند.
- SEARCH به حروف کوچک و بزرگ حساس نیست و از نویسههای خاص پشتیبانی میکند.
- از تابع FIND برای جستجوی حساس به حروف بزرگ و کوچک استفاده کنید.
- SEARCH نویسههای خاص علامت سوال (؟) و ستاره (*) را در مولفه find_text ارزیابی میکند:
- ? با هر نویسه واحد مطابقت دارد و
- * با هر دنبالهای از نویسهها مطابقت دارد.
- برای پیدا کردن موقعیت نویسههای خاص ؟ یا * ، قبل از نویسه مورد نظر از علامت مد (~) استفاده کنید ، مانند *~ و ?~.
لطفا دیدگاه خود را در کادر پایین با ما به اشتراک بگذارید.
آیا میخواهید:
- برنامههای قدرتمند و انعطاف پذیر با اکسل ایجاد کنید.
- فرصت های شغلی جدید کسب کنید.
کتابهای معرفی شده ، راهنمای گام به گام جامع و عملی برای افرادی است که (مانند شما) میخواهند به این اهداف برسند.