کارول پرسید که آیا راهی در اکسل برای ایجاد لیست های کشویی وجود دارد تا لیست کشویی دوم به انتخابی که در لیست کشویی اول انجام شده است بستگی داشته باشد.
در واقع چندین روش مختلف وجود دارد که می توانید این کار را انجام دهید، از فرمول های ساده گرفته تا ماکروهای پیچیده. روشی که انتخاب می کنید مستقیماً به نوع لیست های کشویی که می خواهید ایجاد کنید بستگی دارد. در واقع سه نوع لیست کشویی وجود دارد که می توانید در اکسل ایجاد کنید:
- لیست های اعتبار سنجی اگر می خواهید ورودی را در سلول های خاصی محدود کنید، می توانید لیست های اعتبارسنجی کشویی ایجاد کنید.
- لیست ها را تشکیل می دهد. می توانید از ابزارهای Forms (برگه توسعه دهنده نوار، گروه کنترل، ابزار درج) برای ایجاد لیست های کشویی استفاده کنید. اگر می خواهید یک فرم اکسل محافظت شده ایجاد کنید، اینها عالی هستند.
- فرم های کاربری این کادرهای محاوره ای هستند که در ویرایشگر VBA ایجاد شده اند. شما یک فرم کاربر را با فراخوانی آن از یک ماکرو "اجرا" می کنید. این همه کاره ترین شکل رابط کاربری است، زیرا به شما امکان می دهد بیشترین عرض جغرافیایی را در آنچه کاربر می بیند، داشته باشید. (همچنین برای ایجاد به پیشرفته ترین دانش اکسل نیاز دارد.)
به جای بحث در مورد چگونگی ایجاد لیست های کشویی وابسته بر اساس هر یک از این نوع لیست های کشویی، ساده ترین روش را بررسی می کنم که برای اکثر افراد کافی است. اگر از تابع INDIRECT همراه با لیست های اعتبارسنجی داده ها استفاده کنید، به راحتی می توانید به نتیجه دلخواه خود برسید:

شکل 1. کادر محاوره ای Data Validation.
=INDIRECT(A3)
- در یک کاربرگ خالی در ورک بوک خود، فهرستی از مواردی که در اولین لیست کشویی قرار دارند ایجاد کنید. به عنوان مثال، فهرستی از بخش های شرکت خود ایجاد کنید، مانند فروش، تحقیقات، اجرایی، تولید و غیره (اینها باید ورودی های تک کلمه ای در فهرست باشند.)
- فهرست مواردی را که در مرحله 1 ایجاد کردید انتخاب کنید و محدوده را با نامی مانند "Departments" نامگذاری کنید.
- در همان کاربرگ، فهرستی از مواردی که می توانند در لیست کشویی ثانویه ظاهر شوند ایجاد کنید. برای هر ورودی در فهرستی که در مرحله 1 ایجاد کردید، باید یک لیست وجود داشته باشد. به عنوان مثال، می توانید فهرستی از پرسنل فروش، فهرستی از کارکنان پژوهشی و غیره ایجاد کنید.
- لیست به لیست، لیست هایی را که در مرحله 3 ایجاد کرده اید انتخاب کنید. به هر لیست یک نام تک کلمه ای بدهید که با نام های استفاده شده در لیست مرحله 1 مطابقت دارد، یعنی فروش، پژوهش، اجرایی و غیره.
- به صفحه کاری بروید که در آن می خواهید لیست های کشویی ظاهر شوند.
- سلول هایی را انتخاب کنید که کاربران باید بتوانند مواردی را از اولین فهرست شما وارد کنند - لیستی که در مرحله 1 ایجاد شده است.
- تب Data روبان را نمایش دهید.
- روی گزینه Data Validation در گروه Data Tools کلیک کنید. اکسل کادر محاوره ای Data Validation را نمایش می دهد. (شکل 1 را ببینید.)
- با استفاده از لیست کشویی Allow، لیست را انتخاب کنید.
- در کادر منبع، یک علامت مساوی به دنبال نامی که در مرحله 2 ایجاد کردید وارد کنید. به عنوان مثال، =Departments.
- روی OK کلیک کنید. اکنون مشخص کرده اید که فقط اطلاعات فهرست اول شما می تواند در سلول هایی که در مرحله 6 انتخاب کرده اید وارد شود.
- سلول هایی را انتخاب کنید که کاربران باید بتوانند موارد را از لیست های وابسته وارد کنند. برای مثال، سلول هایی را که در سمت راست سلول هایی که در مرحله 6 انتخاب کرده اید، انتخاب کنید.
- تب Data روبان را نمایش دهید.
- روی گزینه Data Validation در گروه Data Tools کلیک کنید. اکسل دوباره کادر محاوره ای Data Validation را نمایش می دهد.
- با استفاده از لیست کشویی Allow، لیست را انتخاب کنید.
- در کادر منبع، فرمولی را وارد کنید که از تابع INDIRECT استفاده می کند. اگر اولین سلول از محدوده انتخاب شده در مرحله 11 سلول B3 باشد، و شما می خواهید آن سلول اول به آنچه در سلول A3 انتخاب شده است وابسته باشد، از فرمول زیر استفاده می کنید:
- روی OK کلیک کنید.
خودشه. اکنون افراد تنها در صورتی می توانند از لیست اصلی شما انتخاب کنند که از یکی از سلول های مشخص شده در مرحله 6 استفاده کنند و در صورت انتخاب یکی از سلول های مرحله 12 از لیست های وابسته مناسب می توانند انتخاب کنند.
انواع مختلفی از این رویکرد (با استفاده از اعتبارسنجی داده ها) وجود دارد. با مراجعه به این صفحات وب می توانید اطلاعات بیشتری در مورد برخی از این رویکردها بیابید:
http://www.ozgrid.com/download/ (download the MatchingLists.zip file)
http://www.contextures.com/xlDataVal02.html