سبد خرید
0

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

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

نحوه ایجاد لیست های وابسته در اکسل

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

ایجاد لیست کشویی وابسته در اکسل

حتما تا حالا شده که برای طراحی یک فرم، دیتابیس و … لیست هایی داشته باشید که بخواید به هم وابسته باشن. مثلا توی یک سلول، از یک لیست اسم استان و انتخاب میکنید و میخواید داخل سلول بعدی، شهرهای مربوط به همون استان رو ببینید. به این مسئله، لیست های به هم وابسته یا related list گفته میشه. بعبارتی، محتوای لیست دوم، کاملا به انتخاب لیست اول وابسته است. تو این آموزش میخوام در مورد ایجاد لیست کشویی وابسته در اکسل صحبت کنیم.

فرض کنید دو ستون داریم (H و I) از شهر و استان و میخوایم طوری فرمول نویسی کنیم که با انتخاب هر استان، سلول روبروش، شهرهای فقط مربوط به همون استان نمایش داده بشه.

لیست های بهم وابسته

شکل ۱- ایجاد لیست کشویی وابسته در اکسل -لیست های بهم وابسته

مرحله اول: ایجاد لیست اول (نام استان)

روی سلول 2H قرار گرفته و از قسمت Data Validation/ List محدوده A1:E1 رو به عنوان نام استان ها تخصیص میدیم.

مرحله دوم: نامگذاری محدوده ها

محدوده زیر هر استان رو انتخاب کرده و نامگذاری میکنیم. نام هر محدوده رو معادل نام استان میذاریم. به شکل ۲ توجه کنید. محدوده A2:A5 انتخاب شده و نام “تهران” تخصیص داده شده. برای آشنایی با نحوه نامگذاری محدوده ها پست مربوط به نامگذاری محدوده ها رو مطالعه کنید.

نامگذاری محدوده های مربوط به هر استان بصورت جداگانه

شکل ۲- نامگذاری محدوده های مربوط به هر استان بصورت جداگانه

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

محدوده های نامگذاری شده شهرهای هر استان

شکل ۳- محدوده های نامگذاری شده شهرهای هر استان

مرحله سوم: ارجاع به محدوده ها

حالا کافیه با استفاده از تابع Indirect بصورت غیر مستقیم به محدوده های نامگذاری شده ارجاع بدیم. روی سلول I1 قرار گرفته و از تب Data/ Data Validation/ List رو انتخاب میکنیم و مطابق شکل4 در قسمت Source فرمول زیر رو می نویسیم. Validation رو به سلول های دیگه هم انتقال میدیم.

=Indirect($H2)

فرمول نوشته شده در سلول I2

شکل ۴- ایجاد لیست کشویی وابسته در اکسل – فرمول نوشته شده در سلول I2

شرح راه حل مسئله ایجاد لیست کشویی وابسته

تابع Indirect بصورت غیر مستقیم به محدوده یا نام محدوده اشاره میکنه. الان تابع Indirect نگاه میکنه ببینه در سلول H2 چی نوشته. H2 هم که شامل نام یک محدوده در اکسل هست. پس اون محدوده رو در لیست قرار میده. دقت کنید که داده ای که در لیست اول قرار میگیره باید عینا مطابق باشه با اسم محدوده های نامگذاری شده. برای همین اسم محدوده ها رو معادل استان ها گذاشتیم که براحتی بتونیم استفاده کنیم.

حالا ممکنه این سوال پی بیاد که چطور میشه لیست رو داینامیک کرد؟؟ یعنی به محض اضافه کردن یک شهر برای هر استان، محدوده اون خود به خود آپدیت بشه؟

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

در واقع در نهایت پنج Table داریم که نام آنها به نام استان ها تغییر کرده.

 

دانلود فایل این آموزش

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

آواتار
145

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

دیدگاه کاربران
  • شبنم ۲۵ شهریور ۱۳۹۸ / ۴:۳۹ ب٫ظ

    سلام وقت بخیر من تو اکسل به یه مشکل خوردم میخواستم راهنماییم کنید با تشکر.
    جدولی طراحی کردم که درون ۳ تا فرمول جدا جدا تعریف شده برای ۳ مشخصات جدا میخواستم ببینم میشهطوری تعریف کرد که هر ۳ تا فرمول و مشخصات خالص داخل یه جدول تعریف شه ؟
    به طور مثال مثلا دمای ۱۴ و وقتی انتخاب می کنیم فرمول مخصوصش محاسباتشو انجام بده و تو ردیف خودش نمایش بده و وقتی یه دما دیگه بدیم جداگانه عدد فرمول جدید و نشون بده ….

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

      درود بر شما
      سوال خیلی واضح نیست
      اما بصورت کلی میتونید با توجه به تغییر هر سلول با استفاده از if و یا choose میتونید نوع محاسبات رو تغییر بدید

  • احمد ۲۴ شهریور ۱۳۹۸ / ۱۰:۴۸ ق٫ظ

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

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

      درود بر شما
      مشکل فارسی یا انگلیسی نیست
      احتمالا اسپیس داره یا اینکه خطایی وجود داره در نام مورد نظر

      در همین آموزش هم مشاهده میکنید که اسم ها فارسی هستن

    • REZAEI.M ۲۲ آبان ۱۳۹۸ / ۵:۵۲ ب٫ظ

      سلام و وقت بخیر بجای فاصله بین کلمات از _ استفاده کنید .

  • علی ۱۱ مرداد ۱۳۹۸ / ۱۲:۳۲ ب٫ظ

    سلام من تو محیط vba یه userform دارم که داخلش دوتا کمبوباکس هست چطور میتونم اینارو وابسته بهم کنم…مثلا استان رو انتخاب کنم و شهر های همان استان رو نشون بده

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

      سلام، در رویداد Change کمبوباکس اول با استفاده از حلقه For اطلاعات مربوط به مقدار انتخاب شده در کمبوباکس اول رو به کمبوباکس دوم Add Item کنید و قبلش کمبوباکس دوم رو Clear کنید که اطلاعات قبلیش پاک بشه.

  • سپهر ۱۲ تیر ۱۳۹۸ / ۱۱:۰۲ ب٫ظ

    سلام.
    بنده برای یک دسته اطلاعات (که در قسمتی از سطر اول شیت قرار داره) میخوام لیست کشویی درست کنم و اجبارا بین اون سلولهایی که میخوام برای Data validation استفاده کنم،یکی در میان سلول خالی وجود داره که متاسفانه نباید حذفشون کنم.یا استفاده از انتخاب چندگانه (Ctrl+ Select) هم امتحان کردم،ولی بخاطر اینکه بنده ۲۷ سلول برای انتخاب دارم،فقط اجازه انتخاب محدوده سلولها (از ابتدا تا شماره ۲۷) رو بهم میده که در اینصورت اون سلولهای خالی که مورد نیاز نیست هم به Data validation اضافه میکنه.چه راه حلی برای این مشکل پیشنهاد میکنید بنده اون سلولهای خالی رو از لیست کشویی حذف کنم و نمایش داده نشه؟ ممنون

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

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

  • حاجی ۸ تیر ۱۳۹۸ / ۵:۴۱ ب٫ظ

    سلام ممنون از آموزشتون اگر بخواهیم این کشوها را به ۳ یا ۴ کشور وابسته به هم تغییر بدیم چکار کنیم مثلاً
    نام شهر: آمل -بابل
    نام واحد: دبیرخانه-آموزش-کارگزینی
    نام کارمند: احمدی-رجبی-بشیری

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

      سلام، به هر تعداد لیست وابسته که بخواید ایجاد کنید باید از تکنیک بالا که نامگذاری انجام میده و در Data Validation قرار داده میشه استفاده کرد.

  • saeed ۴ خرداد ۱۳۹۸ / ۴:۳۹ ب٫ظ

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

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

      درود بر شما
      سوالتون اصلا واضح نیست
      بصورت کلی برای فراخوانی داده ها، بسته به ساختار و نیاز از توابع index/ lookup و . .. باید استفاده کنید

      • saeed ۵ خرداد ۱۳۹۸ / ۴:۰۰ ب٫ظ

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

  • عادل ۲ خرداد ۱۳۹۸ / ۰:۳۵ ق٫ظ

    باسلام
    موقع نوشتن فرمول زیر در مکان مربوط به آن با خطا مواجه میشم لطف میکنید راهنمایی کنید.
    میخوام برنامه ای بنویسم که موقع تغیرر سلول اول سلول وابسته به آن ( لیست کشویی) تغییر رنگ پیدا کنه
    =ISERROR(VLOOKUP(B4,INDEX(I6:J7,,MATCH($A$4,I5:J5)),1,0

    باتشکر
    لطفا در صورت امکان جواب را ایمیل کنید.

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

      درود بر شما
      برای تغییر رنگ باید از Conditional formatting استفاده کنید
      حالا با توجه به سوال و منطق، باید فرمول مناسب رو بنویسید

  • محمدجواد ۳۱ اردیبهشت ۱۳۹۸ / ۴:۴۳ ب٫ظ

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

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

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

  • مهدی ۲۸ اردیبهشت ۱۳۹۸ / ۱۱:۲۵ ق٫ظ

    سلام
    خیلی ممنون از مطالبتون . عالی هستن
    فقط یه سوال آیا امکان داره در حال ثبت مطلبی همواره کنار مطلب به فاطله مثلا یک ستون بتونیم داده هایی که ثبت میکنیمو با تغییرات ثبتی ببینیم و همواره با ثبت ها حرکت کند . مثلا ما ۱۰۰ تا داده ثبت کردیم اما تیتر همه ی ۱۰۰ تا فقط ۲۵ مورده که داده ها از این ۲۵ مورد کسر می شن. همچین کشویی یا ریلی داریم که بتونیم موقع ثبت از آخرین تغییرات مربوز به اون ثبت هم باخبر بشیم

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

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

  • AliModami ۲ اردیبهشت ۱۳۹۸ / ۳:۴۲ ب٫ظ

    درود بر شما
    این مطلب آموزشیتون خیلی عالی بود و از اونجا که من DVD آموزشی شما رو قبلا خریداری کردم، برام یه جورایی جنبه مرور رو داشت.
    در نظر بگیرید که میخوام لیستی شامل استانها داشته باشم که با کلیک بر روی سلول کناریش، اسم شهرهای اون استان مورد نظر رو بهم نشون بده.
    من ۳۰ تا ستون در نظر گرفتم که در سطرهای آن اسامی شهرهاشونو نوشتم.
    مشکل من اینه که میخوام بجای اینکه از حالت Region (محدوده انتخاب داده) استفاده کنم، از قابلیت های Table استفاده کنم. (چون ممکنه بعدها اسم یه شهر به Table اضافه بشه و نمیخوام که دوباره کاری بشه و برم دوباره از اول محدوده ها رو دستکاری کنم)
    هر کاری که می کنم، نمیتونم دو تا لیست ها رو به همدیگه وابسته کنم.
    فکر می کنم یه نکته خیلی ظریفی این وسط باشه که من تو همونجاش مشکل دارم.
    اگه امکانش هست، همین آموزش رو در حالت استفاده از Table بزارین؟
    از توجه و از زحمات شما بی نهایت سپاسگزارم.

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

      درود بر شما
      ساختار به این صورت خواهد بود:

      =INDIRECT("Table1[Column1]")
ارسال دیدگاه

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

توسط
تومان