توابع FIND و SEARCH Excel با مثال های فرمول

  • این را به اشتراک بگذارید
Michael Brown

این آموزش، نحو توابع FIND و SEARCH اکسل را توضیح می‌دهد و نمونه‌هایی از فرمول‌هایی از کاربردهای پیشرفته غیر پیش پا افتاده را ارائه می‌دهد.

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

    عملکرد Excel FIND

    عملکرد FIND در اکسل برای برگرداندن موقعیت یک کاراکتر یا زیر رشته خاص در یک رشته متنی.

    سینتکس تابع Excel Find به شرح زیر است:

    FIND(find_text، inside_text، [start_num])

    2 آرگومان اول مورد نیاز است، آخرین مورد اختیاری است.

    • Find_text - کاراکتر یا زیررشته ای که می خواهید پیدا کنید.
    • Within_text - رشته متن به در داخل جستجو شود معمولاً به عنوان یک مرجع سلول ارائه می شود، اما شما همچنین می توانید رشته را مستقیماً در فرمول تایپ کنید.
    • Start_num - یک آرگومان اختیاری که مشخص می کند جستجو از کدام کاراکتر شروع می شود. اگر حذف شود، جستجو از نویسه اول رشته درون_متن شروع می شود.

    اگر تابع FIND کاراکتر(های) find_text را پیدا نکرد، یک #VALUE! خطا برگردانده می شود.

    به عنوان مثال، فرمول =FIND("d", "find") 4 را برمی گرداند زیرا "d" چهارمین حرف در کلمه " find " است. فرمول =FIND("a", "find") باز هم پیچیده ترین بخش آخرین آرگومان است که به فرمول می گوید چند کاراکتر باید برگرداند. این عبارت نسبتاً طولانی در آرگومان num_chars موارد زیر را انجام می دهد:

    • ابتدا، موقعیت پرانتز بسته را پیدا می کنید: SEARCH(")",A2)
    • بعد از آن موقعیت پرانتز آغازین را پیدا می کنید: SEARCH("(",A2)
    • و سپس، تفاوت بین موقعیت های بسته شدن و باز شدن پرانتز را محاسبه می کنید و 1 را از آن عدد کم می کنید، زیرا هیچ یک از پرانتزها را در نتیجه نمی خواهید: SEARCH(")",A2)-SEARCH("(",A2))-1
    <. 0>

    به طور طبیعی، هیچ چیز شما را از استفاده از تابع Excel FIND به جای SEARCH منع نمی کند، زیرا حساسیت به حروف بزرگ یا بزرگ و کوچک تفاوتی در این مثال ندارد.

    امیدواریم این مورد آموزش نحوه استفاده از توابع SEARCH و FIND در اکسل را روشن کرده است. در آموزش بعدی قصد داریم تابع REPLACE را از نزدیک بررسی کنیم پس لطفا با ما همراه باشید. از اینکه خواندید متشکریم!

    دانلود کتاب تمرین

    نمونه های فرمول FIND و SEARCH

    یک خطا برمی‌گرداند زیرا "a" در " find" وجود ندارد.

    عملکرد Excel FIND - چیزهایی که باید به خاطر بسپارید!

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

    1. عملکرد FIND به حروف کوچک و کوچک حساس است . اگر به دنبال تطبیق بدون حروف بزرگ و کوچک هستید، از تابع SEARCH استفاده کنید.
    2. عملکرد FIND در اکسل اجازه استفاده از کاراکترهای عام را نمی دهد.
    3. اگر آرگومان find_text شامل چندین کاراکتر است، تابع FIND موقعیت اولین کاراکتر را برمی گرداند. برای مثال، فرمول FIND("ap","happy") عدد 2 را برمی گرداند زیرا "a" در حرف دوم در کلمه "happy".
    4. اگر درون_متن حاوی چند تکرار از find_text، اولین اتفاق برگردانده می شود. برای مثال، FIND("l"، "hello") عدد 3 را برمی گرداند، که موقعیت اولین کاراکتر "l" در کلمه "hello" است.
    5. اگر find_text یک رشته خالی باشد ""، فرمول Excel FIND اولین کاراکتر در رشته جستجو را برمی گرداند.
    6. عملکرد Excel FIND #VALUE را برمی گرداند! خطا اگر یکی از موارد زیر رخ دهد:
      • Find_text در درون_متن وجود ندارد.
      • Start_num دارای کاراکترهای بیشتری نسبت به inside_text است.
      • Start_num 0 است (صفر) یا یک عدد منفی است.

    عملکرد SEARCH در اکسل بسیار شبیه به FIND است زیرا مکان یک زیررشته را نیز در یک متنرشته آیا نحو و آرگومان‌ها مشابه FIND هستند:

    SEARCH(find_text، inside_text، [start_num])

    برخلاف FIND، تابع SEARCH بدون حساس به حروف کوچک و بزرگ است و اجازه استفاده از کاراکترهای wildcard را می‌دهد. همانطور که در مثال زیر نشان داده شده است.

    و در اینجا چند فرمول اصلی جستجوی Excel وجود دارد:

    =SEARCH("market", "supermarket") عدد 6 را برمی گرداند زیرا زیررشته "market" از نویسه ششم کلمه "supermarket" شروع می شود. .

    =SEARCH("e", "Excel") 1 را برمی‌گرداند زیرا "e" اولین کاراکتر در کلمه "Excel" است، بدون توجه به حروف کوچک.

    مانند FIND، تابع SEARCH اکسل #VALUE را برمی‌گرداند! خطا اگر:

    • مقدار آرگومان find_text یافت نشد.
    • آگومان start_num بزرگتر از طول داخل متن است.
    • Start_num برابر یا کمتر از صفر.

    در ادامه این آموزش، چند نمونه فرمول معنادارتر را خواهید دید که نحوه استفاده از تابع SEARCH را در کاربرگ های اکسل نشان می دهد.

    همانطور که قبلاً ذکر شد، توابع FIND و SEARCH در اکسل از نظر نحو و کاربرد بسیار شبیه به هم هستند. با این حال، آنها چند تفاوت دارند.

    1. FIND حساس در مقابل SEARCH غیر حساس به حروف کوچک و بزرگ

    مهمترین تفاوت بین توابع Excel SEARCH و FIND این است که SEARCH به حروف بزرگ و کوچک حساس است، در حالی که FIND به حروف بزرگ و کوچک حساس است.

    به عنوان مثال. , SEARCH("e"، "Excel") عدد 1 را برمی گرداند زیرا آن را نادیده می گیردمورد "E"، در حالی که FIND("e"، "Excel") عدد 4 را برمی گرداند زیرا به این مورد توجه می کند.

    2. جستجو با کاراکترهای عام

    برخلاف FIND، تابع اکسل SEARCH کاراکترهای عام را در آرگومان find_text می پذیرد:

    • یک علامت سوال (؟) با یک کاراکتر مطابقت دارد و
    • یک ستاره (*) با هر سری از نویسه ها مطابقت دارد.

    برای اینکه ببینید چگونه روی داده های واقعی کار می کند، مثال زیر را در نظر بگیرید:

    همانطور که در تصویر بالا مشاهده می کنید، فرمول SEARCH("function*2013"، A2) موقعیت اولین کاراکتر ("f") را در رشته فرعی برمی گرداند، اگر رشته متنی که در آرگومان in_text ارجاع داده شده هر دو "function" باشد. و "2013"، مهم نیست که چند شخصیت دیگر در این بین وجود دارد.

    نکته. برای پیدا کردن یک علامت سوال واقعی (؟) یا ستاره (*)، قبل از کاراکتر مربوطه، یک tilde (~) تایپ کنید.

    در عمل، توابع Excel FIND و SEARCH به ندرت به تنهایی مورد استفاده قرار می گیرند. معمولاً، شما می‌توانید از آنها در ترکیب با توابع دیگر مانند MID، LEFT یا RIGHT استفاده کنید، و مثال‌های فرمول زیر برخی از کاربردهای واقعی را نشان می‌دهند.

    مثال 1. یک رشته قبل یا بعد از یک کاراکتر معین را پیدا کنید

    این مثال نشان می دهد که چگونه می توانید تمام کاراکترهای یک رشته متنی را در سمت چپ یا راست یک کاراکتر خاص پیدا و استخراج کنید. برای درک آسانتر موارد، موارد را در نظر بگیریدبه عنوان مثال زیر.

    فرض کنید شما یک ستون از نام ها دارید (ستون A) و می خواهید نام و نام خانوادگی را در ستون های جداگانه بکشید.

    برای به دست آوردن نام، می توانید از FIND (یا SEARCH) در ارتباط با تابع LEFT:

    =LEFT(A2, FIND(" ", A2)-1)

    یا

    =LEFT(A2, SEARCH(" ", A2)-1)

    همانطور که احتمالاً می دانید، تابع Excel LEFT تعداد مشخص شده از سمت چپ ترین کاراکترها در یک رشته. و از تابع FIND برای تعیین موقعیت یک فاصله (" ") استفاده می کنید تا تابع LEFT بداند چند کاراکتر باید استخراج کند. در آن زمان، 1 را از موقعیت فاصله کم می کنید زیرا نمی خواهید مقدار بازگشتی شامل فاصله باشد.

    برای استخراج نام خانوادگی، از ترکیب توابع RIGHT، FIND / SEARCH و LEN استفاده کنید. تابع LEN برای بدست آوردن تعداد کل کاراکترهای رشته مورد نیاز است که موقعیت فاصله را از آن کم کنید:

    =RIGHT(A2,LEN(A2)-FIND(" ",A2))

    یا

    =RIGHT(A2,LEN(A2)-SEARCH(" ",A2))

    عکس صفحه زیر نتیجه را نشان می دهد:

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

    مثال 2. یافتن N امین حضور یک کاراکتر معین در یک رشته متنی

    با فرض اینکه چند رشته متن در ستون A دارید، لیستی از SKUها را بگویید، و می خواهید پیدا کنید موقعیت خط تیره 2nd در یک رشته. فرمول زیر به خوبی کار می کند:

    =FIND("-", A2, FIND("-",A2)+1)

    دو مورد اولتفسیر آرگومان ها آسان است: یک خط تیره ("-") در سلول A2 پیدا کنید. در آرگومان سوم (start_num)، تابع FIND دیگری را تعبیه کرده‌اید که به اکسل می‌گوید جستجو را با کاراکتری که درست بعد از اولین رخداد خط تیره می‌آید آغاز کند (FIND("-",A2)+1).

    برای برگرداندن موقعیت سومین رخداد ، فرمول بالا را در آرگومان start_num تابع FIND دیگری جاسازی کرده و 2 را به مقدار بازگشتی اضافه می‌کنید:

    =FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)

    یک راه دیگر و احتمالاً ساده‌تر برای یافتن وقوع N ام یک کاراکتر مشخص، استفاده از تابع Excel FIND در ترکیب با CHAR و SUBSTITUTE است:

    =FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))

    که در آن "-" کاراکتر مورد نظر و "3" Nامین رخدادی است که می خواهید پیدا کنید.

    در فرمول بالا، تابع SUBSTITUTE سومین رخداد خط تیره ("-") را با CHAR( جایگزین می کند. 1) که کاراکتر غیر قابل چاپ "شروع سرفصل" در سیستم ASCII است. به جای CHAR(1) می توانید از هر کاراکتر غیر قابل چاپ دیگری از 1 تا 31 استفاده کنید. و سپس، تابع FIND موقعیت آن کاراکتر را در رشته متن برمی گرداند. بنابراین، فرمول کلی به شرح زیر است:

    FIND(CHAR(1), SUBSTITUTE( cell , character ,CHAR(1), Nامین رخداد ))

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

    توجه داشته باشید. لطفاً به یاد داشته باشید که Excel FINDتابع به حروف بزرگ و کوچک حساس است. در مثال ما، این تفاوتی ندارد، اما اگر با حروف کار می‌کنید و می‌خواهید تطبیق بدون حساسیت داشته باشید، به جای FIND از تابع SEARCH استفاده کنید.

    مثال 3. N کاراکتر را به دنبال یک کاراکتر خاص استخراج کنید

    برای قرار دادن یک رشته فرعی با طول معین در هر رشته متنی، از Excel FIND یا Excel SEARCH در ترکیب با تابع MID ​​استفاده کنید. مثال زیر نشان می‌دهد که چگونه می‌توانید از چنین فرمول‌هایی در عمل استفاده کنید.

    در فهرست SKUهای ما، فرض کنید می‌خواهید 3 کاراکتر اول را پس از خط تیره اول پیدا کنید و آنها را در ستون دیگری بکشید.

    اگر گروهی از نویسه‌های قبل از خط تیره اول همیشه دارای تعداد یکسانی از آیتم‌ها باشد (مثلاً 2 نویسه)، این یک کار بی‌اهمیت خواهد بود. می‌توانید از تابع MID ​​برای برگرداندن 3 کاراکتر از یک رشته استفاده کنید، از موقعیت 4 شروع کنید (از 2 کاراکتر اول و یک خط تیره صرفنظر کنید):

    =MID(A2, 4, 3)

    به انگلیسی ترجمه شده، فرمول می‌گوید: "در سلول A2 نگاه کنید، شروع به استخراج از کاراکتر 4 کنید و 3 کاراکتر را برگردانید." در رشته متن در مثال ما، ممکن است ندانید چند کاراکتر قبل از خط تیره اول قرار دارند. برای مقابله با این چالش، از تابع FIND برای تعیین نقطه شروع زیررشته ای که می خواهید بازیابی کنید استفاده کنید.

    فرمول FIND برای برگرداندنموقعیت خط تیره اول به صورت زیر است:

    =FIND("-",A2)

    چون می خواهید با کاراکتری که به دنبال خط تیره است شروع کنید، 1 را به مقدار برگشتی اضافه کنید و تابع بالا را در آرگومان دوم جاسازی کنید. (start_num) تابع MID:

    =MID(A2, FIND("-",A2)+1, 3)

    در این سناریو، عملکرد Excel SEARCH به همان اندازه خوب کار می کند:

    =MID(A2, SEARCH("-",A2)+1, 3)

    عالی است، اما اگر گروهی از نویسه‌ها که خط تیره اول را دنبال می‌کنند دارای تعداد متفاوتی از کاراکترها باشد، چه؟ هوم... این ممکن است یک مشکل باشد:

    همانطور که در تصویر بالا می بینید، فرمول برای ردیف های 1 و 2 کاملاً کار می کند. در ردیف های 4 و 5، گروه دوم شامل 4 کاراکتر است، اما فقط 3 کاراکتر اول برگردانده می شود. در ردیف‌های 6 و 7، تنها 2 کاراکتر در گروه دوم وجود دارد، و بنابراین فرمول جستجوی اکسل ما یک خط تیره به دنبال آنها برمی‌گرداند.

    اگر می‌خواهید همه نویسه‌ها را بین تکرارهای 1 و 2 برگردانید. از یک کاراکتر خاص (خط تیره در این مثال)، چگونه ادامه می دهید؟ پاسخ این است:

    =MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)

    برای درک بهتر این فرمول MID، بیایید آرگومان های آن را یکی یکی بررسی کنیم:

    • آرگومان اول (متن). این رشته متن حاوی کاراکترهایی است که می خواهید استخراج کنید، سلول A2 در این مثال.
    • آگومان دوم (start_position). موقعیت اولین کاراکتری را که می خواهید استخراج کنید مشخص می کند. شما از تابع FIND برای پیدا کردن اولین خط تیره در رشته و اضافه کردن 1 به آن استفاده می کنیداین مقدار به این دلیل است که می‌خواهید با کاراکتری که خط تیره را دنبال می‌کند شروع کنید: FIND("-",A2)+1.
    • آگومان سوم (num_chars). تعداد کاراکترهایی را که می خواهید برگردانید را مشخص می کند. در فرمول ما، این مشکل ترین بخش است. شما از دو تابع FIND (یا SEARCH) استفاده می کنید، یکی موقعیت خط تیره اول را تعیین می کند: FIND("-"،A2). و دیگری موقعیت خط تیره دوم را برمی گرداند: FIND("-"، A2، FIND("-"A2)+1). سپس اولی را از دومی کم می‌کنید و سپس 1 را کم می‌کنید زیرا نمی‌خواهید هیچ یک از دو خط تیره را وارد کنید. در نتیجه، تعداد کاراکترهای بین خط تیره 1 و 2 را دریافت خواهید کرد که دقیقاً همان چیزی است که ما به دنبال آن هستیم. بنابراین، شما آن مقدار را به آرگومان num_chars تابع MID ​​وارد می‌کنید.

    به روشی مشابه، می‌توانید 3 کاراکتر را بعد از خط تیره دوم برگردانید:

    =MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)

    یا، تمام کاراکترهای بین خط تیره 2 و 3 را استخراج کنید:

    =MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)

    مثال 4. متنی را بین پرانتزها پیدا کنید

    فرض کنید یک رشته متن طولانی در ستون A دارید و می خواهید فقط متن محصور شده در (پرانتز) را پیدا و استخراج کنید.

    برای این کار، به تابع MID ​​نیاز دارید تا تعداد دلخواه کاراکتر را از آن بازگرداند. یک رشته و یا تابع Excel FIND یا SEARCH برای تعیین اینکه از کجا شروع شود و چه تعداد کاراکتر استخراج شود. مثال. و

    مایکل براون یک علاقه‌مند به فناوری است که علاقه زیادی به ساده‌سازی فرآیندهای پیچیده با استفاده از ابزارهای نرم‌افزاری دارد. او با بیش از یک دهه تجربه در صنعت فناوری، مهارت های خود را در Microsoft Excel و Outlook و همچنین Google Sheets و Docs تقویت کرده است. وبلاگ مایکل اختصاص داده شده است تا دانش و تخصص خود را با دیگران به اشتراک بگذارد و نکات و آموزش هایی را برای بهبود بهره وری و کارایی ارائه دهد. چه یک حرفه ای با تجربه باشید و چه مبتدی، وبلاگ مایکل، بینش های ارزشمند و توصیه های عملی را برای استفاده حداکثری از این ابزارهای نرم افزاری ضروری ارائه می دهد.