شماره پشتیبانی اکسل پدیا در بله: 09914083023
سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه
تمام دسته ها
  • تمام دسته ها
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • Power BI
  • Power Pivot
  • Power Query
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

جستجو در یک سلول با تابع Find

جستجو در اکسل
۴.۴/۵ - (۱۸ امتیاز)

پیدا کردن عبارتی خاص در یک سلول با استفاده از تابع Find در اکسل

خیلی وقتها میخوایم عبارات داخل سلول رو مورد جستجو قرار بدیم. مثلا میخوایم ببینیم آیا یک کلمه خاص در یک سلول وجود داره یا نه؟ یا مثلا میخوایم عبارت های عددی رو از متن یک سلول استخراج کنیم (البته جستجو کلمات فارسی یه سری نکته ریز داره که در مقاله اصول جستجو در اکسل | جستجوی عبارات فارسی و انگلیسی در موردش صحبت کردیم).
این قبیل کارها رو باید از طریق توابع متنی انجام بدیم. دسته توابع متنی از سری توابع خیلی خیلی کاربردی هستند که بیشتر در هنگام ترکیب خروجی های خیلی خوبی خواهند داشت. تابعی که در این آموزش به آن می پردازیم تابع Find در اکسل هست. حتما این مقاله رو تا انتها مطالعه کنید.

آرگومان های این تابع عبارتند از:

Find_Text: عبارتی که میخواهیم جستجو کنیم.

Within_Text: سلولی که میخواهیم جستجو در اون انجام بشه.

[Start_Num]: این آرگومان اختیاری و از جنس عدد است. اگر خالی بذاریم، جستجو از ابتدای سلول شروع میشه. اگر عدد بذاریم، مثلا ۴. از حرف چهارم به بعد جستجو رو شروع میکنه.

تابع Find در صورت پیدا کردن عبارت مورد نظر، شماره مکان اولین حرف مورد نظر رو داخل سلول میده. پس در صورتیکه جستجو موفق باشه، خروجی، عدد خواهد بود. اگر جستجو به نتیجه نرسه، خروجی خطای #Value! خواهد بود.

حالا با چند مثال کاربرد این تابع رو با هم می بینیم:

در مثال زیر یک سری کد داریم، میخواهیم کدهایی که شامل عدد ۸۷ هستند رو پیدا کنیم.

تابع find در اکسل - پیدا کردن عبارت خاص در یک سلول

شکل ۱- تابع find در اکسل – پیدا کردن عبارت خاص در یک سلول

در فرمول نوشته شده در شکل ۱، در صورتی که عدد ۸۷ در سلول وجود داشته باشه، مکان عدد ۸ رو به عنوان خروجی تابع می بینیم. مثلا در سلول A2 نشون میده که پنجمین حرف ۸ و ششمین حرف ۷ هست.

نکته:در صورتی که عدد ۸۷ در سلول تکرار شده باشه، این تابع مکان اولین عدد ۸۷ که پیدا کنه رو به عنوان خروجی نمایش خواهد داد.

 

حالا فرض کنید بخوایم مسئله رو اینطور حل کنیم که اگر سلول شامل عبارت ۸۷ بود، برامون بزنه “وجود دارد” و اگر نبود، “وجود ندارد”.

مطابق شکل ۲ تابع رو با If و Iserror ترکیب میکنیم.

تابع find در اکسل - ترکیب تابع Find با If و Iserror

شکل ۲- تابع find در اکسل – ترکیب تابع Find با If و Iserror

شرح فرمول:

اگر خروجی تابع Find با خطا مواجه شود یا بعبارتی خطای آن True شود، یعنی عبارت مورد نظر پیدا نشده پس خروجی “وجود ندارد” و در غیر اینصورت خروجی فرمول “وجود دارد” خواهد بود.

حالا فرض کنید بخوایم سوال رو اینطور حل کنیم که دنبال عدد ۸۷ بگردیم، اما بعد از قسمت حروفی در کد یعنی بعد از AD. برای این کار باید ببینیم AD چندمین حرف هست. در این مثال، چون کد هست، تعداد ارقام و الگوی اون ثابت هست. در واقع یک کد ۱۱ رقمی است که AD هشتمین و نهمین حرف سلول هست. پس برای اینکه بتونیم اعداد بعد از AD رو مورد جستجو قرار بدیم، باید آرگومان آخر تابع Find رو ۸ بذاریم. به شکل ۳ دقت کنید. وقتی آرگومان سوم ۸ بذاریم، عملیات جستجو از هشتمین حرف شروع میشه. یعنی به عدد ۸۷ که قبل از حرف AD هست، کاری نداره.

تابع find در اکسل- جستجوی عبارت مورد نظر از یک جایی به بعد

شکل ۳- تابع find در اکسل- جستجوی عبارت مورد نظر از یک جایی به بعد

حالا سوال اینجاست که اگه تعداد ارقام کد ثابت نبود و مکان AD مشخص نبود چی؟

برای این کار اول باید با Find مکان AD رو پیدا کنیم. بعد خروجی این تابع رو در آرگومان سوم تابع Find اصلی بذاریم.

به شکل ۴ دقت کنید:

تابع Find ترکیبی

شکل ۴- تابع Find ترکیبی

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

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

کلیدواژه : تابع Findمتوسط
134

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • aiin ۹ بهمن ۱۳۹۷ / ۶:۰۵ ب٫ظ

    با سلام وتشکر
    من یک فایل اکسل ۲۰۱۳ لیست حقوق دستمزد تهیه کردم از آنجایی که خروجی ساعت حضور و غیاب من یک فایل اکسل هست ، اسامی و ردیف لیست حقوقی خودم و فایل خروجی ساعت کاملا یکی هست ،حالا میخواستم ببینم از چه دستوری میتوانم استفاده کنم که لیست من در لیست خروجی اکسل ساعت جستجو کنه و مثلا اعداد تعداد روز کار و ساعت اضافه کار یک شخص خاص رو وارد قسمتهای تعداد روز کار و ساعت اضافه کار همان شخص در لیست من بکنه باز هم تشکر فراوان

    • آواتار
      حسنا خاکزاد ۹ بهمن ۱۳۹۷ / ۶:۴۸ ب٫ظ

      درود بر شما
      اگر اسم های تکراری ندارید، میتونید با vlookup فراخوانی کنید (اگه سوال رو درست متوجه شده باشم)
      اگر منظورتون محاسبات زمان و تعداد مرخصی و اینهاست باید با مفهوم محاسبات زمان آشنا باشید که در این لینک موجود هست:
      https://excelpedia.net/excel-time-calculation/

  • علی ۴ بهمن ۱۳۹۷ / ۳:۰۵ ق٫ظ

    سلام .. من یه متنی دارم ..میخام عدد رو ازون جدا کنم برای اینکه اکسل بیاد اون عدد جدا شده رو دیگه متن تشخیص نده ..از تابع value استفاده میکنم ..بعضی موقع ها سلول ها خالی هستن بخاطر همین valueارور میده ..میشه فرمولی نوشت که تابع value، سلول های خالی رو محاسبه نکنه ؟

    • سامان چراغی ۴ بهمن ۱۳۹۷ / ۸:۴۴ ب٫ظ

      سلام
      بله میتونید این کار رو انجام بدید.
      از تابع IFERROR هم میتونید استفاده کنید که خطاهای ایجاد شده رو نمایش نده.

  • محمد ۴ دی ۱۳۹۷ / ۱:۳۲ ب٫ظ

    با سلام
    من می خوام شماره سطر اولین خونه خالی در ستون Aرا بدست بیارم بریزم تو یک متغییر در صورت امکان بنده را راهنمایی فرمایید با تشکر.

    • سامان چراغی ۴ دی ۱۳۹۷ / ۱۰:۰۶ ب٫ظ

      سلام
      میتونید از تابع COUNTA استفاده کنید و با شماره سطر اولین سطر پر جمع کنید، در این حالت فرض بر اینه که سطر خالی بین اطلاعات نداشته باشید.
      در غیر اینصورت باید شرایط داده دقیق تر بررسی بشه.

  • رضا قشلاقی ۲۷ آذر ۱۳۹۷ / ۱۱:۳۹ ق٫ظ

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

    • آواتار
      حسنا خاکزاد ۲۷ آذر ۱۳۹۷ / ۱:۱۴ ب٫ظ

      درود بر شما
      بستگی به شرایط و ساختار داده ها داره
      ولی از همین ابزار find هم میتونید استفاده کنید

  • احمد ۱۷ آذر ۱۳۹۷ / ۲:۱۷ ق٫ظ

    درود بر شما
    من قصد دارم در یک ستون که از آدرس محله ها تشکیل شده ببینم هر خیابونی چند بار تکرار شده مثلا
    خ امام خمینی ۱۲
    خ ملاصدرا
    خ امام خمینی ۱۶
    خ ملاصدرا ۹
    چجوری فرمولشو باید بنویسم. لطفا راهنمایی وکمک بفرمایید

    • آواتار
      حسنا خاکزاد ۱۷ آذر ۱۳۹۷ / ۸:۵۸ ق٫ظ

      درود بر شما
      اول یک لیست از خیابان های مورد نظر تهیه کنید. بعد فرمول زیر رو بنویسید:

      =COUNTIF(A1:A4;"*امام خمینی*")
      
  • علی ۲۵ آبان ۱۳۹۷ / ۴:۱۷ ب٫ظ

    درود بر شما
    چگونه می توانم در Data Validation که حالت کشویی است حالت جستجو ایجاد کنم ؟؟؟
    مثلا ۱۰۰۰ عنوان موجود و من بتوانم با نوشتن حرف اول عنوان اونو مشاعد و انتخاب کنم برای اون سلول.
    مهم
    سپاس گذارم.

    • آواتار
      حسنا خاکزاد ۲۵ آبان ۱۳۹۷ / ۷:۱۵ ب٫ظ

      درود بر شما
      هم میتونید کد نویسی کنید و تکست باکس بذارید که بر اساس سرچ داده ها رو نشون بده
      هم میتونید سلول کمکی استفاده کنید و با استفاده از توابع find و جستجو، در محدوده کمکی داده های مربوطه رو بیارید و اون محدوده رو به عنوان سورس لیست تعیین کنید

  • نوید نینوایی ۲۵ مهر ۱۳۹۷ / ۱۱:۲۰ ق٫ظ

    سلام
    درود بر شما
    من قصد دارم دریک ستون که از تعداد زیادی حروف تشکیل شده سرچ کنم و اون سل هایی رو که یک دش “_” دارند از دو دش ها جدا کنم.
    اگر لطف کرده و راهنمایی کنید ممنونم.

    • آواتار
      حسنا خاکزاد ۲۵ مهر ۱۳۹۷ / ۱۲:۱۸ ب٫ظ

      درود بر شما
      میتونید مطابق مثال حل شده، سلول هایی که حاوی – هستن رو پیدا کنید

    • نوید نینوایی ۲۵ مهر ۱۳۹۷ / ۲:۰۲ ب٫ظ

      ممنون از پاسخگویی شما
      ولی قضیه یه کم پیچیده تر هست.
      در این ستون حدود ۴۵۰۰۰ رکورد هست که بعضی یک دش دارند, بعضی دو دش دارند, و بعضی هم ندارند. حالا یک فرمول لازم دارم که فقط دو دش ها رو برام مشخص کنه. مثال بالا فقط نشون میده که کدوم سل صرفا دش داره. حالا یکی یا دو تا یا حتی بیشتر. نمونه ای از ستون مورد نظر رو پایین کپی کردم:
      A310-24-2091
      ۲۰۰۶-۰۰۷۴
      ۲۰۰۷-۰۳
      F-2005-112
      ۹۴-۰۵-۰۷
      ۷۴۷-۲۴A2186
      F100-25-099
      ۲۵-۱۹-۱
      ۶۷۸۴۳

      • آواتار
        حسنا خاکزاد ۲۵ مهر ۱۳۹۷ / ۲:۲۸ ب٫ظ

        با فرض شروع از سلول A1، این فرمول رو بنویسید

        =IF((LEN(A1)-LEN(SUBSTITUTE(A1;"-";"")))>=2;A1;"")
  • حامد درزی ۱۴ مهر ۱۳۹۷ / ۱۰:۵۳ ق٫ظ

    سلام لطفا بفرمایید در یک ستون از رشته عددی ۲۴ رقمی مثلاً از کارکترشماره ۸ به طول ۳ رقم کلیه اعداد ۱۲۳ را نمایش دهد چه تابعی بنوسیم

    • آواتار
      حسنا خاکزاد ۱۴ مهر ۱۳۹۷ / ۱۱:۰۳ ق٫ظ

      درود بر شما

      =if(value(mid(A1,8,3))=123, A1,"")

      این فرمول از کاراکتر هشتم، ۳ تا جدا میکنه، و با ۱۲۳ مقایسه میکنه. اگر برابر بود، سلول رو نشون میده اگر نه خالی میذاره

  • عباس ۱۸ شهریور ۱۳۹۷ / ۷:۱۴ ب٫ظ

    بسیار عالی است
    مطالب بسیار آموزنده است از خدای متعال برایتان موفقیت و شادکامی آرزومندم

  • moein ۳۰ تیر ۱۳۹۷ / ۳:۵۹ ب٫ظ

    در قسمت logical_test شکل ۲ عبارت ISERROR نباید برابر FALSE باشد؟ چون نتیجه نهایی برعکس در میاد

    • آواتار
      حسنا خاکزاد ۳۱ تیر ۱۳۹۷ / ۱۲:۲۸ ب٫ظ

      درود بر شما
      بله درست میفرمایید
      خود فرمول درسته. بخاطر مسائل تایپ فارسی و … بهم ریخته. و الا خروجی فرمول نوشته شده درست هست و مطابق با توضیحات ارائه شده.

      عکس اصلاح خواهد شد.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان