سبد خرید
0

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

بازگشت به فروشگاه

لیست قابل جستجو در اکسل

لیست فروریز قابل جست و جو
۴.۴/۵ - (۸ امتیاز)

ایجاد لیست قابل جستجو در اکسل

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

فرض کنید لیستی داریم از اسامی استان های ایران و میخواهیم با تایپ قسمتی از نام یک استان، لیست محدودتری برای انتخاب داشته باشیم.

منطق کلی کار این هست که باید لیستی از سلول هایی که شامل عبارت مورد نظر ما هستن رو ایجاد کنیم و به عنوان ورودی لیست دیتاولیدیشن قرار بدیم. برای انجام این کار، طبق مراحل زیر پیش میریم:

گام اول: پیدا کردن عبارت مورد نظر برای ایجاد لیست قابل جست و جو

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

پس با فرض اینکه لیست مورد نظر قراره در سلول D1 ایجاد بشه، فرمول زیر رو مینویسیم. (شکل ۱)

=FIND ($D$1 , A2)

پیدا کردن عبارت مورد نظر در سلول های لیست

شکل ۱- پیدا کردن عبارت مورد نظر در سلول های لیست برای ایجاد لیست قابل جست و جو

همونطور که میبینیم، در صورتی که عبارت مورد نظر پیدا بشه، خروجی عدد خواهد بود و در غیر اینصورت خطا.

گام دوم: شماره گذاری موارد پیدا شده

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

=IF ( ISNUMBER ( FIND ($D$1,A2) ) ,MAX ($B$1:B1) +1 ,”” )

در واقع تابع Isnumber چک میکنه که آیا خروجی تابع Find عدد هست یا نه. اگه عدد بود، ماکزیمم محدوده بالای سرشو باضافه ۱ میکنه، اگر هم عدد نبود (خطا بود) خالی میذاره. همونطور که در شکل ۲ میبینیم، مقابل دو استان که شامل عبارت “رد” هستن، یعنی اردبیل و کردستان، به ترتیب شماره ۱ و ۲ نمایش داده می شه.

ایجاد شماره پشت سر هم برای سلول هایی که شامل عبارت مورد نظر هستند

شکل ۲- ایجاد شماره پشت سر هم برای سلول هایی که شامل عبارت مورد نظر هستند

گام سوم: لیست کردن موارد پیدا شده

حالا کافیه که سلول های مشخص شده رو پشت سر هم لیست کنیم. برای این کار میتونیم از Backward Vlookup استفاده کنیم. یا اینکه از ترکیب Match و Index استفاده کنیم:

=IFERROR ( INDEX ($A$2:$A$32, MATCH ( ROW(A1) , $B$2:$B$32, 0)) , “”)

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

شکل ۳- فراخوانی استان هایی که شامل عبارت مورد جستجو هستن

این فرمول شماره های ایجاد شده (که به ترتیب هستن) رو فراخوانی میکنه و محتوای موجود در سلول روبروی اونها رو نمایش میده. که در واقع خواسته ما هم همینه و میخوایم لیست استانهایی که شامل عبارت مورد جستججو هستن رو پشت سر هم داشته باشیم.

گام چهارم: نام گذاری پویا برای محدوده لیست

مرحله بعد ایجاد یک محوده نامگذاری پویا هست که بتونیم به دیتاولیدیشن اختصاص بدیم.

از تب Formula  گزینه Name Manager  رو کلیک میکنیم و یک نام به عنوان List ایجاد میکنیم و فرمول زیر رو در اون مینویسیم. مطابق شکل ۴.

=OFFSET ( Sheet2!$C$2,0,0, COUNTIF ( Sheet2!$C$2:$C$32 , “?*” ) ,1)

برای درک بهتر محدوده های نامگذاری داینامیک، مقاله مربوط به Offset رو مطالعه کنید.

نکته:
تابع COUNTIF( Sheet2!$C$2:$C$32 , “?*” ) تعداد سلول های پر که داده نمایش میدن رو شمارش میکنه و کاری به سلول هایی که با فرمول پر شدن ولی خالی نمایش داده میشن نداره.

 

نامگذاری محدوده بصورت داینامیک

شکل ۴- لیست فروریز قابل جست و جو – نامگذاری محدوده بصورت داینامیک

گام پنجم: ایجاد لیست کشویی

کافیه که نام ایجاد شده رو به Data Validation اختصاص بدیم. برای این کار روی سلول D1 کلیک کرده و از تب Data گزینه Data Validation رو انتخاب میکنیم. از تب Settings گزینه List رو انتخاب میکنیم و نام تعیین شده که در گام چهارم فرمول نویسی کردیم رو تخصیص میدیم. مطابق شکل ۵

تخصیص محدوده نامگذاری شده به دیتا ولیدیشن

شکل ۵- تخصیص محدوده نامگذاری شده به دیتا ولیدیشن

قبل از اینکه Ok رو بزنیم، به تب Error Alert رفته و تیک گزینه اخطار رو برمیداریم و بعد Ok رو میزنیم. مطابق شکل ۶

برداشتن تیک خطا دهی

شکل ۶- لیست فروریز قابل جست و جو – برداشتن تیک خطا دهی

حالا کافیه عبارت مورد نظر رو در سلول D1 تایپ کنیم و بعد لیست فروریز رو باز کنیم. می بینیم که  فقط سلول هایی که شامل اون عبارت هستن در لیست نمایش داده میشه. به تصویر زیر دقت کنید:

لیست فرو ریز قابل جستجو در اکسل

با این ۶ گام و با استفاده سلول های کمکی و بدون نیاز به کد VBA تونستیم یک لیست فروریز قابل جستجو تهیه کنیم که میتونه در ورود داده خیلی به ما کمک کنه. حالا میتونیم داده های مرجع رو در یک شیت قرار بدیم و لیست رو در شیت های دیگه که سلول های کمکی استفاده شده هم دیده نشه.

دانلود فایل اکسل لیست قابل جست و جو

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

آواتار
145

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

دیدگاه کاربران
  • saeid ۳۰ مهر ۱۴۰۱ / ۱۲:۴۶ ب٫ظ

    سلام تشکر وبابت آموزش های عالی

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

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

      درود بر شما
      در دیتاولیدیشن و فعلا تا الان این امکان وجود نداره

  • m ۱۱ شهریور ۱۴۰۱ / ۲:۲۷ ب٫ظ

    با سلام
    اگر علاوه بر سلول d1 در سولهای d2 تا d10 هم بخواهیم همینطور دیتا ولیدیشن قابل جستجو بگذاریم چکار باید بکنیم؟

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

      درود بر شما
      باید از ترکیب تابع cell و indirect استفاده کنید
      در کامنت های همین پست نمونه گذاشته شده

  • مهدی ۲۵ بهمن ۱۴۰۰ / ۱۲:۲۷ ب٫ظ

    سلام خسته نباشید من میخوام برای فاکتور فروش اینو انجام بدم ولی این برای یک سلول هست میخوام برای هر ردیف فاکتور باشه چیکار باید بکنم دقیق میشه توضیح بدید چون یه جوابی داده بودید نفهمیدم((درود بر شما
    خواهش میکنم
    شرط فرمول رو بجای اینکه بگید مستقیم از سلول خاصی (که دیتاولیدیشن داره) بخونه از این بخونه:
    INDIRECT(CELL(“address”))

    این تابع ادرس سلول انتخاب شده هست))
    اینو کامل بگید

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

      درود بر شما
      کامله دیگه!
      کامل نوشتم فرمول رو…
      اون قسمت فرمول که شرط هست یعنی سلول D1 رو بردارید این فمرول رو بجاش بذارید
      اگر با تابع cell هم اشنا نیستید این مقاله رو بخونید
      https://excelpedia.net/cell-function/

  • مسعود ۲۱ بهمن ۱۴۰۰ / ۸:۵۱ ب٫ظ

    ضمن عرض سلام و وقت بخیر، من یک فایل مرجع دارم از اسم و نام مدرسه دانش آموزان. با توجه به اینکه دانش آموزان میرن امتحان میدن و من اسماشونو حفظ نیستم، می خواستم بدونم راهکاری هست توی اکسل که نام دانش آموزان و نمرشوشون رو وارد کنم و بتونه براساس اون فایل مرجع جستجو کنه و براساس اسم هنرستانشون این دانش آموزان و نمره ها رو برام مرتب کنه. ممنون.

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

      درود
      بله جستجو با روش های مختلف ممکنه
      بستگی به شرایط و دانش کاربر، روش جستجو رو باید مشخص کنید

  • Hsh ۱۳ آبان ۱۴۰۰ / ۱۰:۵۸ ب٫ظ

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

    • آواتار
      حسنا خاکزاد ۱۶ آبان ۱۴۰۰ / ۱۰:۲۶ ق٫ظ

      درود بر شما
      باید هر دو منطق “لیست وابسته” و “لیست قابل جستجو ” رو ترکیب کنید
      یعنی کاری کنید که لیست هایی که با تیبل درست کردید، داینامیک و بر اساس محتوای سلول تغییر کنن

  • آواتار
    مصطفی قربانی ۲۱ خرداد ۱۴۰۰ / ۱۱:۱۷ ب٫ظ

    درود و خسته نباشید
    آموزش خیلی خوبی بود.

    سوالی دارم: من یک table دارم که در یکی از ستون هاش میخوام از یک لیست کشویی با قابلیت جستجو استفاده کنم.
    از این روش آموزشی شما که استفاده میکنم با گسترش table دیگه نمیتونم از قابلیت جستجو استفاده کنم.

    چه راهکاری برای این مشکل دارید
    ممنون میشم راهنمایی کنید من رو

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

      درود بر شما
      از ترکیب Cell(“address”) و indirect استفاده کنید
      و شرط رو روی این ترکیب بذارید که هربار سلول جاری رو در نظر بگیره

  • مهمان دنیا ۱۵ خرداد ۱۴۰۰ / ۱:۵۵ ب٫ظ

    سلام من می خوام که این لیست در سطرهای یک جدول تکرار کنم و در هر سطر یک داده را جستجو کنم ممنون می شوم راهنمایی کنید چیکار کنم؟وقتی به سطر دوم می رود کار نمی کند و تمام سطرها مقدار اولیه را نگهداری می کنند.

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

      درود بر شما
      خواهش میکنم
      شرط فرمول رو بجای اینکه بگید مستقیم از سلول خاصی (که دیتاولیدیشن داره) بخونه از این بخونه:
      INDIRECT(CELL(“address”))

      این تابع ادرس سلول انتخاب شده هست

      • آواتار
        مصطفی قربانی ۲۲ خرداد ۱۴۰۰ / ۰:۴۰ ق٫ظ

        من متوجه نشدم!

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

          باید راجع به توابعی که اشاره شد مطالعه کنید
          باید کارکردشون رو خوب درک کنید
          داخل سایت سرچ کنید مقالات وجود دارن

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

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

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

      درود
      باید ببینید دستگاهتون خروجی اکسل میده؟

  • بهمن ۲۰ دی ۱۳۹۹ / ۹:۳۳ ق٫ظ

    سلام
    وقت بخیر
    بسیار عالی و کاربردی بود ممنونم

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

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

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

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

      پیوت تیبل هم میتونه کمک کنه بهتون

ارسال دیدگاه

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

توسط
تومان