
پیدا کردن عبارتی خاص در یک سلول با استفاده از تابع Find در اکسل
خیلی وقتها میخوایم عبارات داخل سلول رو مورد جستجو قرار بدیم. مثلا میخوایم ببینیم آیا یک کلمه خاص در یک سلول وجود داره یا نه؟ یا مثلا میخوایم عبارت های عددی رو از متن یک سلول استخراج کنیم (البته جستجو کلمات فارسی یه سری نکته ریز داره که در مقاله اصول جستجو در اکسل | جستجوی عبارات فارسی و انگلیسی در موردش صحبت کردیم).
این قبیل کارها رو باید از طریق توابع متنی انجام بدیم. دسته توابع متنی از سری توابع خیلی خیلی کاربردی هستند که بیشتر در هنگام ترکیب خروجی های خیلی خوبی خواهند داشت. تابعی که در این آموزش به آن می پردازیم تابع Find در اکسل هست. حتما این مقاله رو تا انتها مطالعه کنید.
آرگومان های این تابع عبارتند از:
Find_Text: عبارتی که میخواهیم جستجو کنیم.
Within_Text: سلولی که میخواهیم جستجو در اون انجام بشه.
[Start_Num]: این آرگومان اختیاری و از جنس عدد است. اگر خالی بذاریم، جستجو از ابتدای سلول شروع میشه. اگر عدد بذاریم، مثلا ۴. از حرف چهارم به بعد جستجو رو شروع میکنه.
تابع Find در صورت پیدا کردن عبارت مورد نظر، شماره مکان اولین حرف مورد نظر رو داخل سلول میده. پس در صورتیکه جستجو موفق باشه، خروجی، عدد خواهد بود. اگر جستجو به نتیجه نرسه، خروجی خطای #Value! خواهد بود.
حالا با چند مثال کاربرد این تابع رو با هم می بینیم:
در مثال زیر یک سری کد داریم، میخواهیم کدهایی که شامل عدد ۸۷ هستند رو پیدا کنیم.

شکل ۱- تابع find در اکسل – پیدا کردن عبارت خاص در یک سلول
در فرمول نوشته شده در شکل ۱، در صورتی که عدد ۸۷ در سلول وجود داشته باشه، مکان عدد ۸ رو به عنوان خروجی تابع می بینیم. مثلا در سلول A2 نشون میده که پنجمین حرف ۸ و ششمین حرف ۷ هست.
نکته:در صورتی که عدد ۸۷ در سلول تکرار شده باشه، این تابع مکان اولین عدد ۸۷ که پیدا کنه رو به عنوان خروجی نمایش خواهد داد.
حالا فرض کنید بخوایم مسئله رو اینطور حل کنیم که اگر سلول شامل عبارت ۸۷ بود، برامون بزنه “وجود دارد” و اگر نبود، “وجود ندارد”.
مطابق شکل ۲ تابع رو با If و Iserror ترکیب میکنیم.

شکل ۲- تابع find در اکسل – ترکیب تابع Find با If و Iserror
شرح فرمول:
اگر خروجی تابع Find با خطا مواجه شود یا بعبارتی خطای آن True شود، یعنی عبارت مورد نظر پیدا نشده پس خروجی “وجود ندارد” و در غیر اینصورت خروجی فرمول “وجود دارد” خواهد بود.
حالا فرض کنید بخوایم سوال رو اینطور حل کنیم که دنبال عدد ۸۷ بگردیم، اما بعد از قسمت حروفی در کد یعنی بعد از AD. برای این کار باید ببینیم AD چندمین حرف هست. در این مثال، چون کد هست، تعداد ارقام و الگوی اون ثابت هست. در واقع یک کد ۱۱ رقمی است که AD هشتمین و نهمین حرف سلول هست. پس برای اینکه بتونیم اعداد بعد از AD رو مورد جستجو قرار بدیم، باید آرگومان آخر تابع Find رو ۸ بذاریم. به شکل ۳ دقت کنید. وقتی آرگومان سوم ۸ بذاریم، عملیات جستجو از هشتمین حرف شروع میشه. یعنی به عدد ۸۷ که قبل از حرف AD هست، کاری نداره.

شکل ۳- تابع find در اکسل- جستجوی عبارت مورد نظر از یک جایی به بعد
حالا سوال اینجاست که اگه تعداد ارقام کد ثابت نبود و مکان AD مشخص نبود چی؟
برای این کار اول باید با Find مکان AD رو پیدا کنیم. بعد خروجی این تابع رو در آرگومان سوم تابع Find اصلی بذاریم.
به شکل ۴ دقت کنید:

شکل ۴- تابع Find ترکیبی
در این فرمول قسمت FIND(“AD”,A1) مکان AD رو در هر سلول پیدا میکنه. خروجی این تابع به عنوان آرگومان سوم در تابع Find اول قرار داده میشه.
در این مقاله تابع Find رو کاملا توضیح دادیم. این سوال رو میشه در حالت های مختلف مطرح کرد و راه حل های مختلفی با ترکیب سایر توابع متنی ارائه داد. نکته اصلی در کار کردن با توابع متنی این هست که بتونیم بین داده ها الگوی منطقی پیدا کنیم تا با ترکیب توابع مختلف به نتایج دلخواه برسیم.





سلام وقت بخیر
من برای سلول های یک ستون چک باکس گذاشتم می خواستم با تیک زدن هر چک باکس به جای true یک عدد تعریف کنم مثلااگه چک باکس a1 رو تیک بزنم برای من بنویسه ۲
آیا روشی برای این کار وجود داره؟ لطفا راهنمایی کنید
تشکر
درود بر شما
خروجی چک باکس قتبل تغییر نیست
با فرمول نویسی مثل if میتونید خروجی رو تبدیل کنید به موارد دلخواه
سلام . من در یک ستون جملاتی دارم و می خواهم با شرط if و find به دنبال کلمه ای بگرده و اگر اون کلمه موجود نبود , محتویات سلول را تغییر نده.
ولی وقتی قسمت value_if_true را خالی میزارم وکلمه مورد نظرم رو پیدا نمی کنه , محتویات سلول رو به عدد صفر تغییر میده . چطور می تونم این مشکل رو برطرف کنم ؟
کد استفاده شده :
=IF(ISERROR(FIND("مدیریت",[@[عنوان استاندارد]])),,"مدیریتی")درود بر شما
اگر میخواید تغیر نده، یعنی باید مقدار خود سلول رو بذارید نه اینکه خالی رو بذارید.
پس سلولی د ر اون جستجو انجام شده رو بذارید برای ارگومان دوم
سلام
من میخام اسم سلول رو پیدا کنم.
مثلا ببینم اسم سلولی که رقم “۳۲” در اون وجود داره چیه؟
جواب A24
درود بر شما
میتونید شماره ردیف و ستون رو با تابع match بدست بیارید و بعد بذاردی داخل تابع address
https://excelpedia.net/address-function/
https://excelpedia.net/match-function/
ممنونم
کاشکی دقیقا توضیح میدادین.
من تازه کارم
مقاله هایی که لینک داده شده رو مطالعه بفرمایید. توضیح داده شده
سلام
من یک فایل اکسل دارم و از داخل آن یکسری اطلاعات لازم دارم.با find اطلاعات پیدا میکنم اما چطور در یک شیت بریزم؟
درود بر شما
باید با توابع فراخوانی و جستجو یا ابزارهای پیوت و یا کد نویسی این کار و بکنید.
تابع find فقط مقدار داخخل سلول رو سرچ میکنه
درود بر شما
در یک ستون بعضی اطلاعات yes و بعضی no هستند.میخواستم لیست اطلاعاتی که ستون جلوشون yes هست رو در ستون جدید به ترتیب از بالا به پایین بدون فاصله داشته باشم.چه تابعی برای ستون جدید باید نوشته بشه؟
درود بر شما
یا باید از ستون کمکی استفاده کنید و شماره بزنید موارد یونیک رو. بعد شماره ها رو جستجو کنید.
یا از فرمو لنویسی آرایه ای استفاده کنید:(با فرض اینکه داده ها در ستون A هستند:
ctrl+shift+enter
آشنایی بیشتر با فرمول نویسی آرایه ای:
https://excelpedia.net/array-formula/
سلام
من میخام فرمول بدم که اگر مثلا ۴چهار حرف اول سلول با چهار تا یک شروع میشد بنویسه ۱ اگر چهار حرف اول سلول با ۴تادو شروع میشد بنویسه ۲ و اگر چهار حرف اول سلول با ۴تا۳ شروع میشد بنویسه ۳ و به همین ترتیب
باید چ جوری فرمول بنویسم؟
درود بر شما
چهار حرف اول ۱ باشه یعنی ۱۱۱۱*
اینو داخل تابع find/search بذارید، اگر خروجی عدد بود ،یعنی پیدا کرده و با if ترکیب میکنید و ۱ میذارید.
همینطور الی آخر
سلام خسته نباشید
ببخشید استاد من چندتا سوال دارم
۱. اگه بخوایم تو یک شیت از داده هامون ، که توشون داده های تکراری داریم یعنی مثلا کد ۱۰۰ سه بار تکرار شده ولی با مقدار فیلد های مختلف مثلا کد ۱۰۰ فیلد رنگش سه نوع مقدار گرفته و در نتیجه سه تا رکورد دارم ولی همشون با کد ۱۰۰ هستند، حالا میخوام تو یه صفحه جدید یک رکورد داشته باشم با کد ۱۰۰ ولی فقط فیلد های غیر تکراریش جستجو بشه و بیاد تو صفحه جدید کپی بشه امکانش هست؟
باید چکار کنم ؟لطفا با جزئیات برام توصیح بدید من یکم تو اکسل تازه کارم هنوز
ممنون
درود بر شما
اگر منظورتون اینه در یک شیت، کد ۱۰۰ بیاد با اون سه داده مربوط به رنگ، از پیوت تیبل میتونید استفاده کنید و هر دو فیلد رو بذارید در row.
اگر منظورتون از هر کد، یک آیتم هست. بازهم از پیوت میشه استفاده کرد و از هر کدوم یکی و بیاره.
بصورت کلی بسته به سطح دانش و تسلط شما و اینکه برای چکاری بخواید روش های متفاوتی وجود داره.
متاسفانه در کامنت امکان آموزش نیست، فقط نهایتا میشه سر نخ داد. بهتره اگر آشنایی ندارید، اقدام به یادگیری کنید. از هر منبعی که علاقه دارید. اگر هم از اکسل پدیا (که الان توی جسنواره نورروزی هست) استفاده میکنید، که پشتیبانتون هستیم.
موفق باشید
خدا خیرتون بده. پدرم درومد. اینقدر از این سایت به اون سایت چرخیدم. یه دونه فرمول رو درست و حسابی توضیح ندادن .
IF(ISERROR(FIND(“-“,A1,4)) مشکلم با این فرومل حل شد.
با سلام
پیدا کردن عبارتی خاص درکلیه سلولهای یک شیت را با چه دستوری می توان اجرا کرد مثلا دستور find در یک سلول پیدا میکنه، اگر بخواهیم درکلیه سلولها جستجو کنه از چه دستوری باید استفاده کرد . تشکر
درود بر شما
کافیه فرمول رو درگ کنید روی کل داده هاتون.
اگر این نیست، توضیح بیشتر بدید
ضمن تشکر از شما
من از دستور vlookup استفاده کردم منتهی مشکلی که هست جدول من در شیت ۱ هست و بانک اطلاعاتی در شیت ۲ ، با دستور vlookup چطور میتونم از شیت ۲ داخل شیت ۱ فراخوانی کنم
سلام، با استفاده از تابع CHOOSE میتونید دو جدول رو در آرگومان دوم VLOOKUP در کنار هم قرار بدید.