تابع جستوجو در اکسل
تابع FIND و SEARCH در اکسل
شاید جستجو در یک لیست با استفاده از تابع Vlookup یا Hlookup قابل اجرا باشد، ولی اگر عبارتی که به دنبال آن هستید در بین یک رشته متنی قرار گرفته باشد، جستجو با این توابع کارساز نیست. بنابراین باید بتوانیم براساس روش یا تابعی خاص، محتویات یک رشته متنی را بررسی کرده و عبارت دلخواه را در آن پیدا و جدا کنیم. به همین دلیل به بررسی دو تابع FIND و SEARCH در اکسل خواهیم پرداخت.
از میان توابع گروه متنی، که از طریق برگه Formulas، بخش Function Library و انتخاب گزینه Text، قابل دسترس هستند، دو تابع FIND و SEARCH در اکسل از محبوبیت زیادی برخوردارند. به کمک این توابع میتوانیم موقعیت یک عبارت را در یک رشته متنی مشخص کنیم. برای مثال اگر به دنبال عبارت “ARMAN” در رشته متنی “Excel Tutorial by ARMAN” هستیم (که در یک سلول نوشته شده)، هر یک از توابع FIND و SEARCH در اکسل را میتوانیم به کار گرفته و موقعیت یا محل قرارگیری اولین حرف عبارت “ARMAN” را در رشته متنی مشخص کنیم. با توجه مثال گفته شده، این موقعیت برابر با نوزدهمین حرف خواهد بود. به یاد داشته باشید که فاصلههای خالی (Space) نیز حرف محسوب شده و هنگام تعیین موقعیت شمرده میشود.
نکته: هر چند به نظر میرسد که تابع FIND و SEARCH یکسان عمل میکنند، ولی تابع FIND به حروف بزرگ و کوچک لاتین حساس (Case Sensitive) بوده و امکان اجازه استفاده از حروف جایگزین (Wildcard) مانند علامت * , ? را نمیدهد. در عوض تابع SEARCH این محدودیتها را ندارد. این موضوعات را در ادامه مورد بررسی قرار خواهیم داد.
تابع FIND در اکسل
همانطور که گفته شد، تابع FIND موقعیت یک عبارت یا حرف را در یک رشته متنی که در یک سلول نوشته شده، نشان میدهد. شکل دستوری این تابع به صورت زیر است.
FIND( find_text, within_text, [start_num] )
مشخص است که هر دو پارامتر اول یعنی find_text و within_text، اجباری هستند ولی پارامتر start_num یک پارامتر اختیاری است. به یاد داشته باشید که در راهنمای اکسل، برای نمایش پارامتر یا پارامترهایی اختیاری از علامت [ ] استفاده میشود و پارامترهای اجباری معمولا به صورت پر رنگ (Bold) در راهنمای تابع نشان داده میشوند. در ادامه این بخش، در مورد نقش هر یک از این پارامترها در نحوه محاسبه تابع FIND صحبت و آنها را معرفی خواهیم کرد.
- پارامتر Find_text: همانطور که از اسم این پارامتر مشخص است، متن مورد جستجو را تعیین میکند. به یاد داشته باشید که مقدار این پارامتر باید متنی باشد. اگر میخواهید به جای ذکر آدرس سلولی که متن در آن قرار دارد، از خود عبارت متنی استفاده کنید، حروف یا کلمات را داخل علامت ” ” قرار دهید تا اکسل متوجه متنی بودن آن بشود.
- پارامتر Within_text: رشته متنی یا آدرس سلولی که باید جستجو در آن صورت گیرد نیز در این پارامتر نوشته میشود. به این ترتیب عبارتی که در پارامتر Find_text نوشته شده در پارامتر Within_text جستجو شده و موقعیت آن براساس تعداد حروف از چپ به راست، به عنوان خروجی تابع، ظاهر میشود.
- پارامتر Start_num: این پارامتر اختیاری بوده و مشخص میکند که جستجو باید از چندمین حرف Within_text آغاز شود. بطور پیشفرض مقدار این پارامتر برابر با ۱ است. به این معنی که محل شروع جستجو از اولین حرف پارامتر Within_text است. به این ترتیب اگر مقدار ۱۰ را برای این پارامتر وارد کنید، جستجو از حرف دهم رشته متنی، آغاز میشود.
نکته: توجه داشته باشید که با تعیین پارامتر Star_num، فقط محل آغاز جستجو تغییر پیدا میکند ولی موقعیت اعلام شده از همان ابتدای متن Within_text محسوب میشود. بنابراین حتی اگر Start_num برابر با ۱۰ باشد، باز هم نتیجه جستجو عبارت “ARMAN” در رشته “Excel Tutorial by ARMAN”، موقعیت یا حرف نوزدهم را مشخص میکند.
به عنوان مثال کاربرگ مربوط به تصویر ۱ را در نظر بگیرید. میخواهیم موقعیت حرف d را در عبارت Find، تعیین کنیم. البته همین کار را هم برای حرف a انجام خواهیم داد.
همانطور که مشاهده میکنید نتیجه فرمول زیر برابر با ۴ است. به این معنی که حرف d در عبارت Find، حرف چهارم است.
= FIND(“d”,A1)
در حالیکه نتیجه تابع FIND در فرمول زیر به علت اینکه حرف a در عبارت Find وجود ندارد با خطای !VALUE# همراه است.
= FIND(“a”,A1)
در ادامه به چند نکته در نحوه استفاده از تابع FIND خواهیم پرداخت که از بروز اشتباهات زیادی در نوشتن فرمول برحسب این تابع جلوگیری میکنند.
- تابع FIND، به حروف بزرگ و کوچک لاتین حساس است. اگر به دنبال عبارت ARMAN هستید حتما باید آن را با حروف بزرگ لاتین وارد کنید در غیر این صورت با خطای !VALUE# مواجه خواهید شد.
- استفاده از علامتهای جایگزین مانند * , ? در تابع FIND جایز نیست.
- موقعیتی که تابع FIND نشان میدهد، مربوط به اولین حرف عبارت Find_text است. برای مثال تابع (“FIND(“ap”,happy نتیجهای برابر با ۲ دارد. زیرا حرف a دومین حرف از رشته متنی است.
- اگر در رشته متنی مرتبط با پارامتر Within_text، چند عبارت Find_text موجود باشد، تابع Find اولین مطابقت را مشخص و موقعیت را گزارش میکند. برای مثال اگر کسی از تابع (FIND(“p”,happy استفاده میکند پاسخ تابع مقدار ۲ است و نمیتواند حرف بعدی را مورد جستجو قرار دهد.
- اگر به دنبال حرف خالی (“”) در یک عبارت متنی میگردید، تابع FIND، مقدار ۱ یعنی اولین حرف رشته متنی را نشان میدهد.
- در هر یک از حالات زیر، تابع FIND، خطای !VALUE# را نشان خواهد داد.
- مقدار پارامتر Find_text در عبارت Within_text موجود نباشد.
- عدد مشخص شده برای پارامتر Start_num بزرگتر از طول عبارت Within_text باشد.
- مقدار پارامتر Star_num، منفی یا صفر باشد.
نکته: تابع FIND در همه زبانها در گروه نرمافزارهای OFFICE قابل استفاده نیست. همچنین این تابع به صورت تک بایتی (SBCS) یا (Single Byte Character Set) حروف را شناسایی میکند. در نتیجه برای استفاده در زبانهای چینی و ژاپنی باید از نسخه دو بایتی (DBCS) این تابع به نام FINDB کمک گرفت. پارامترهای این تابع دقیقا با تابع FIND یکسان است.
تابع SEARCH در اکسل
برعکس تابع FIND، تابع SEARCH، به حروف بزرگ و کوچک لاتین حساس نبوده (Case Insensitive) و امکان استفاده از علامتهای جایگزین (Wildcard) در رشته متنی را هم به کاربر میدهد. شکل دستوری و پارامترهای این تابع کاملا مشابه با تابع FIND است.
SEARCH( find_text, within_text, [start_num] )
مشخص است که نتیجه یا مقدار محاسبه شده توسط این تابع نیز به همان صورت تابع FIND، موقعیت اولین حرف از یک عبارت است که در یک رشته متنی جستجو شده است.
با توجه به یکسان بودن پارامترهای دو تابع FIND و SEARCH در اکسل از معرفی پارامترهای تابع SEARCH خودداری میکنیم. در عوض به چند مثال در مورد این تابع خواهیم پرداخت. تابع زیر را در نظر بگیرید.
=SEARCH(“market”, “supermarket”)
مشخص است که قرار است عبارت market در رشته متنی supermarket جستجو شده و موقعیت اولین حرف market به عنوان خروجی ظاهر شود. همانطور که میتوان حدس زد، نتیجه اجرای این تابع مقدار ۶ خواهد بود، زیرا ششمین حرف عبارت supermarket مربوط به عبارت market است.
همچنین نتیجه اجرای فرمول زیر، مقدار ۱ خواهد بود. از آنجایی که تابع SEARCH به حروف بزرگ و کوچک حساس نیست، با رسیدن به اولین حرف “e”، موقعیت را گزارش میکند.
=SEARCH(“e”, “Excel”)
به تصویر ۲ که یک کاربرگ اکسل را مشخص کرده، توجه کنید. نتیجه تابع SEARCH و پارامترهای آن مشخص شده است.
هنگام استفاده از تابع SEARCH، ممکن است با خطای !VALUE# مواجه شوید، دلیل این امر در ادامه فهرست شده است.
- مقدار پارامتر Find_text در عبارت Within_text قرار ندارد.
- موقعیت جستجو که توسط پارامتر Start_num تعیین میشود از طول رشته متنی (پارامتر Within_text) بزرگتر است.
- پارامتر Start_num مقداری منفی یا صفر است.
نکته: تابع SEARCH در همه زبانها در گروه نرمافزارهای OFFICE قابل استفاده نیست. همچنین نسخه دو بایتی (DBCS) برای زمانی که کدگذاری ۲ بایتی برای هر حرف (Double Byte Character Set) صورت گرفته، به شکل SEARCHB در اکسل قابل استفاده است.
مقایسه دو تابع FIND و SEARCH در اکسل
در این قسمت از متن، به کمک دو مثال به مقایسه این دو تابع خواهیم پرداخت. اولین مثال مربوط به نحوه برخورد دو تابع FIND و SEARCH در اکسل با متنی است که دارای حروف بزرگ و کوچک هستند. سپس در مثال بعدی، به کارگیری علامتهای جایگزین را در تابع SEARCH بازگو خواهیم کرد.
مثال ۱: حساسیت به حروف بزرگ و کوچک
در کاربرگ زیر نتیجه استفاده از دو تابع FIND و SEARCH در اکسل با توجه به وجود حروف بزرگ و کوچک در پارامتر Find_text را مشاهده میکنید.
همانطور که مشخص است تابع FIND حرف چهارم را برای موقعیت حرف “e” نمایش داده در حالیکه به همان شیوه و پارامترها، تابع SEARCH اولین حرف را به عنوان موقعیت حرف “e”، تعیین کرده است.
دیدگاهتان را بنویسید