شماره پشتیبانی اکسل پدیا در بله: 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 رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • مهرداد تاج منش ۳۱ فروردین ۱۳۹۹ / ۹:۴۷ ق٫ظ

    سلام
    در یک شیت اکسل، تعداد ۱۰ ستون و ۱۰۰۰۰ ردیف(نام دانش آموز و کد) دارم. این دانش آموزان هر کدوم هشت ویژگی مهم دارند(مضطرب، وسواسی، بداخلاق، ترسو و …) این ویژگی ها هم در ستون های جلوی نام و کد اونها نشسته(ترتیب قرار گیری این ویژگی ها هم توسط معلمشون تعیین شده. یعنی اگر ویژگی اضطراب یک دانش آموز بولدتر بوده، اون رو در سلول اول بعد از اسمش نوشتیم و بعدش ویژگی وسواسش رو نوشتیم. ولی اگر دانش اموز دیگه ای ویژگی خواب آلودگیش بیشتر از اضطرابش به چشم میاد اول خواب آلودگی رو نوشتیم.(برای این ویژگی ها هم کد گذاشتیم که راحتتر بشه پیدا کرد(کل این ویژگی ها هم ۱۰۰ تاست و یک جدول جدا براشون داریم که مثلا کد a1 یعنی اضطراب)
    حالا نیاز داریم یک جدول داشته باشیم که اسم این ۱۰۰ ویژگی بره روی سرستون ها و زیرش کد دانش آموزاش که اون ویژگی رو دارند بنویسه(تو این خروجی اهمیتی نداره که این ویژگی چندم دانش آموز هست.
    ممنونم

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

      درود
      با توجه به ساختار داده ها و حجم داده، به نظرم بهتره از ابزار یا کد وی بی استفاده کنید
      ابزار Power query اول داده ها رو unpivot بکنه که بشه Table و بعد در کوئریف Group By کنید و فرمول نوشته شده رو اصلاح کنید (یا اینکه بعد از unpivot کردن یک پیوت ساده بگیرید)

      یا اینکه در پیوت تیبل با Dax فرمول نویسی کنید. فرمولش هم Concatenatext هست

      اگر هم بخواید فرمول نویسی کنید باید با توابع match و index و . .. اینکار و انجام بدید

      کلا استفاده از هر روش بستگی به میزان تسلط شما در هر حوزه داره، کوئری، وی بی، فرمول

  • مهدی ۳ اسفند ۱۳۹۸ / ۱۱:۰۷ ق٫ظ

    با سلام
    چطور میتوانم در اکسل حاصل جمع یک عدد را جستجو کنم اگر عدد مورد نظر بنده، مثلا دو یا سه عدد در هزار سلول اکسل باشد
    فرض کنیم از سلول آ۱ تا آ۱۰۰ ما صد عدد داریم
    و من به عددی در دفاترم برخورده ام که احیانا حاصل جمع دو یا سه عدد از این ستون است
    چطور باید سرچ کنم که اکسل مشخص کند که عدد من حاصل جمع کدام اعداد در کدام سلول ها است؟

    • سامان چراغی ۳ اسفند ۱۳۹۸ / ۱۱:۴۳ ق٫ظ

      درود
      اگر زیر ۲۰۰ عدد هست، متونید یک مدل بسازید و از solver add in حل کنید مدل رو
      مدل هم به این صورت که از sumproduct اعداد در متغیرهای روبروش استفاده کنید و نتیجه رو معادل عددد مورد نظر قرار بدید
      هر کدوم از متغیر ها که بعد از حل مدل، ۱ شدن، یعنی اون اعداد در جمع عدد مورد نظر شما دخیل هستن
      میتونید راجع به solver مقاله زیر رو مطالعه کنید
      https://excelpedia.net/solver-add-ins/
      دقت کنید که متغیرهای مدل رو binary یعنی صفر و یک انتخاب کنید

  • علی ۳۰ بهمن ۱۳۹۸ / ۱۱:۱۶ ق٫ظ

    سلام و درود
    بابرنامه اکسل یا ورد ، تعدادی لغت انگلیسی بهم ریخته ، به ترتیب تعداد حروف چطور مرتب میشه مثلا کلمات ۳ حرفی و ۴ حرفی و ۵ حرفی و غیره در ستون های مختلف جدا باشن
    ممنونم از راهنماییتون

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

      درود
      تابع len تعداد کاراکتر حساب میکنه
      از اون استفاده کنید

  • اصغر ۲۰ بهمن ۱۳۹۸ / ۱۱:۳۵ ق٫ظ

    در یک رشته ۹ رقمی رقم های ۳ و ۴ برای کاربرد خاصی معنا دار هستند.
    هر نوبت من لازم دارم یک عدد دو رقمی را جستجو کنم که دقیقا در همین خانه هستند.
    با چه فرمولی می توانم ژیدا کنم و اگر بخواهم حذف بزنم چطور؟

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

      درود بر شما
      اگر با همین ابزار find بخواید پیدا کنید میتونید با علامت ? انجام بدید
      با فرض اینکه در کد نه رقمی به دنبال عدد ۶۷ هستید، در ابزار find بزنید :
      ?????۶۷??

  • امیر تقوی ۲۸ دی ۱۳۹۸ / ۱:۰۱ ب٫ظ

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

    • سامان چراغی ۲۸ دی ۱۳۹۸ / ۸:۳۶ ب٫ظ

      سلام
      برای اینکه عدد مورد نظر رو از متن بیرون بکشید باید ابتدا و انتهای اون رو پیدا کنید.
      برای پیدا کردن نقطه شروع از همان کلمه آبی استفاده کنید و با استفاده از تابع Find جایگاه کلمه آبی رو پیدا کنید (که اگر به آن ۴ تا اضافه شود میشود محل شروع عدد شما)
      اگر عدد در انتهای متن هست، کافیه نقطه ای که در بالا پیدا کردید رو در تابع Left یا Right بذارید و عدد رو استخراج کنید.
      اگر عدد شما در بین متن قرار داره باید الگوریتمی برای پیدا کردن نقطه انتهایی اون پیدا کنید و نهایتا با استفاده از تابع Mid عدد رو استخراج کنید.

      • تقوی ۲۹ دی ۱۳۹۸ / ۴:۱۶ ب٫ظ

        مشکل اینجاست که نقطه پایان از نظر منطقی نظمی ندارد و به شرحی که کاربر نوشته وابسته است تنها یک بخش منطقی وجود دارد آن که پایان عدد [ space] قرار میگیرد و بعد شرح شروع میشود.
        باز هم از حسن توجه شما متشکرم

        • سامان چراغی ۲۹ دی ۱۳۹۸ / ۸:۰۵ ب٫ظ

          دقیقا از همین فاصله میتونید برای حذف کردن متن انتهایی استفاده کنید.
          جواب شما در دو مرحله هست.
          مرحله اول جهت پیدا کردن نقطه شروع اعداد، که پس از پیدا کردن این نقطه با استفاده از تابع Right قسمتی که شامل عدد و متن هست رو جدا میکنید و از این به بعد روی این قسمت کار میکنید.
          در مرحله دوم کافیه اولیه فاصله رو در تکه ای که در مرحله قبل ایجاد کردید پیدا کنید و با استفاده از تابع Left اعداد را از محل فاصله جدا کنید.

    • سس ۱۶ بهمن ۱۳۹۸ / ۲:۰۶ ب٫ظ

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

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

        سلام
        با استفاده از فرمول نویسی آرایه ای هم میشه این کار رو انجام داد.
        البته باید دقیق مشخص کنید که زمانیکه جست و جو انجام شد میخواید چه محاسباتی انجام بشه؟
        مثلا میخواید آدرس سلول ها رو بدونید؟ یا تعداد سلول هایی که حاوی اطلاعات مورد نظر شما هست؟ …

  • امین ۴ دی ۱۳۹۸ / ۱۱:۲۴ ب٫ظ

    با سلام
    ۲ شیت داریم که در شیت اول اسم شرکت بصورت چند سیلابی مثلا تک خاوران متین روز اومده و در ستون دوم میخوایم فرمولی بدیم که عدد متناظر و مربوط به این شزکتو که در شیت دوم هست بیاره
    نکته اینکه ممکنه در شیت دوم اسم شرکت فرق داشته باشه و مثلا خاوران متین باشه

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

      درود
      نمیشه کاری کرد
      مگر اینکه مثلا مطمئن باشید کلمه خاوران فقط توی همون یک شرکته. در غیر اینصورت اگر کلمه خاوران در یک شرکت دیگه هم وجود داشته باشه کاری نممیتونید بکنید
      اگر میتونید کلمه یونیک پیدا کنید، شرط جستجو رو *خاوران* بزنید در vlookup

  • محمود ۲۲ آذر ۱۳۹۸ / ۸:۲۵ ب٫ظ

    داخل سلولهایی که در یک ستون هستند یک عبارت به فرمت زیر دارم:ASD123456
    میخوام خروجی به این صورت داشته باشم:ASD/1/2/3/4/56 لطفا راهنمایی کنید از چه فرمولی باید استفاده کنم

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

      درود بر شما
      اگر تعداد کاراکترها ثابته و این الگو همیشگی هست، یک راه استفاده از ابزار flash fill هست و یک راه فرمول نویسی. ابزار رو از این مقاله مطالعه بفرمایید:
      https://excelpedia.net/flash-fill/

      برای فرمول هم بهترین راه استفاده از تابع leftو mid و توابع چسباندن مثل concat, concatenate و .. است.
      مثلا ASD/1 با این فرمول ایجاد میشه:

      =concatenate(left(A1,3),"/",mid(A1,4,1))
      
  • محمدرضا ۹ آذر ۱۳۹۸ / ۱۲:۳۸ ب٫ظ

    با سلام و خسته نباشید
    من یک ستون در اکسل دارم که مقادیر هر سول مرکب از اعداد و حروف می باشد (حساب بانکی)
    میخواستم که مقدار مشخصی که در ستون دوم میباشد در ستون اول جستجو شود که اولا موجود هست یا نه و شماره سلول یاردیف رو به من نشون بده
    مثال:
    ستون اول ستون دوم ستون سوم
    واریزی ۱-۲-۳۳۳-۱ ۶۶۶ (ردیف ستون اول)
    برداشت ۲-۶۶۶-۱ ۳۳۳ (ردیف ستون اول)

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

      درود
      جستجو رو با تابع match و ترکیب با * و ؟ میتونید خصوصی سازیش کنید
      اما کلا سوال واضح نبود. الان چی رو میخواید سرچ کنید؟
      اگر هم میخواید تفکیک کنید میتونید از ابزار flash fill استفاده کنید

      • محمدرضا ۱۰ آذر ۱۳۹۸ / ۱۰:۰۹ ق٫ظ

        سلام خدمت استاد محترم
        امکان ارسال فایل وجود نداره تو سایت؟

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

          میتونید توی سایت های دیگه اپلود کنید
          ولی در کل نیزای به فایل نیست… میتونید اصل موضوع رو با یک مثال ساده بفرمایید.
          بعد رو یداده هاتون اعمال کنید

  • ارمشی ۳۱ شهریور ۱۳۹۸ / ۱۱:۳۹ ق٫ظ

    سلام
    من یه جدول مثلا ۳۰*۱۰۰۰ دارم
    مثلا ۱۰۰۰ تا ستون دارم(عنوانشونم هست مثلا: “دوره ۱” تا “دوره ۱۰۰۰”)
    و مثلا ۳۰ تا سطر به عنوان فصل (“فصل۱” تا “فصل ۳۰”)
    تو این جدول اعدادی وجود داره
    تو یه قسمتی از کاربر میپرسم از کجا تا کجا رو برات میانگین بگیرم:کاربر مثلا میگه که واسه “فصل ۱” از “دوره ۱۱۵” تا “دوره ۷۴۸” رو برام میانگین بگیر
    سوال: بدون اینکه من بیام با عملیات درگ که باید برم مکان موردنظر رو پیدا کنم و اگه هم پیدا کردم احتمال داره اشتباهی محل سلولها رو مشخص کنم یا سرعت و دقت کارم کم بشه و… خود اکسل بیاد برام میانگین اونرو حساب کنه.
    ممنون

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

      درود بر شما
      از تابع offset کمک بگیرید و محدوده رو بسازید و روی اون میانگین بگیرید
      برا یآشنایی با تابع offset مقاله زیر رو ببینید:
      https://excelpedia.net/offset-function/

  • یلدا ۲۵ شهریور ۱۳۹۸ / ۱:۰۷ ب٫ظ

    سلام
    ممکنه راهنمایی کنید لطفا؟ خیلی اضطراریه
    با چه فرمولی میتونم رکوردهایی که عدد سوم بعد از اعشارشون ۵ یا ۶ هستش رو پیدا کنم؟

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

      درود بر شما

      =OR(MID(A1,FIND(".",A1)+3,1)="5",MID(A1,FIND(".",A1)+3,1)="6")
ارسال دیدگاه

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

توسط
تومان