
پیدا کردن عبارتی خاص در یک سلول با استفاده از تابع 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 رو کاملا توضیح دادیم. این سوال رو میشه در حالت های مختلف مطرح کرد و راه حل های مختلفی با ترکیب سایر توابع متنی ارائه داد. نکته اصلی در کار کردن با توابع متنی این هست که بتونیم بین داده ها الگوی منطقی پیدا کنیم تا با ترکیب توابع مختلف به نتایج دلخواه برسیم.





یک سوال فوری داریم خیلی فوری است میخواهم در یک ستون بعد از یک کلمه خاص هر عبارتی است به ستون دیگر کپی کنم
سلام
اینو بزنید:
=MID(A1,FIND(“کلمه خاص”,A1)+LEN(“کلمه خاص”),۱۰۰۰۰۰)
سلام من میخوام یه بازه عدد روی توی اکسل برام نشون بده مثلا از ۱ تا ۱۰۰ نتونستم فرمولشو پیدا کنم مشه راهنمایی کنید
درود
یعنی از یک تا صد تولید کنید؟ صد تا عدد
یا رندوم؟
یا ؟؟؟
واضح نیست سوالتون
سلام و خسته نباشید
من یک فایل اکسل دارم که هر ردیف اون شامل اسم و شماره و امتیاز کاری افراده.
من میخوام این فایل رو برای افراد بفرستم که وقتی اسمشون رو سرچ زدن، اطلاعات مربوط به خودشون بیاد اما نمیخوام که در همون ابتدا اسم بقیه افراد و اطلاعات اونهارو هم ببینن.
یعنی میخوام در ابتدا با یک صفحه خالی روبرو بشن که فقط میتونن اسمشون رو وارد کنن و بعد به اطلاعات مربوط به خودشون دسترسی پیدا کنن.
چیکار باید بکنم؟
درود بر شما
سوال شما فراخوانی هست
حالا این فراخوانی یا با تابع انجام میشه یا با کدنویسی
شما باید فایلتون و سطح دسترسی رو محدود کنید مثلا شیت دیتابیس رو پروتکت کنید
یا با کدنویسی دسترسی ها رو محدود کنید که به دیتابیس دسترسی نباشه و شخص فقط با سرچ آیتم مورد نظر، اطلاعات مرتبط با مورد جستجو شده رو ببینه