نحوه ایجاد یک لیست کشویی وابسته (آبشاری) در اکسل

  • این را به اشتراک بگذارید
Michael Brown

فهرست مطالب

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

امروز، ما قصد داریم این ویژگی را عمیقاً بررسی کنیم و یاد بگیریم که چگونه لیست‌های کشویی آبشاری ایجاد کنیم که بسته به مقدار انتخاب شده در اولین کرکره، انتخاب‌ها را نمایش می‌دهد. به عبارت دیگر، ما یک لیست اعتبارسنجی داده اکسل را بر اساس مقدار یک لیست دیگر ایجاد می کنیم.

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

    ایجاد یک مولتی لیست های کشویی وابسته به سطح در اکسل آسان است. تنها چیزی که نیاز دارید چند محدوده نامگذاری شده و فرمول INDIRECT است. این روش با تمام نسخه های Excel 365 - 2010 و قبل از آن کار می کند.

    1. ورودی‌های فهرست‌های کشویی را تایپ کنید

    ابتدا، ورودی‌هایی را که می‌خواهید در فهرست‌های کشویی نمایش داده شوند، تایپ کنید، هر فهرست در یک ستون جداگانه. برای مثال، من یک فهرست کشویی آبشاری از صادرکنندگان میوه ایجاد می‌کنم و ستون A از برگه منبع من ( میوه ) شامل موارد اولین کرکره است و 3 ستون دیگر موارد را برای کرکره‌های وابسته فهرست می‌کنند.<1

    2. محدوده های نام گذاری شده ایجاد کنید

    اکنون باید نام هایی را برای لیست اصلی خود و برای هر یک از لیست های وابسته ایجاد کنید. می‌توانید این کار را با افزودن یک نام جدید در پنجره Name Manager (برگه Formulas > Name Manager > New) یا تایپ کردنعلامت) و ارجاعات ردیف مطلق (با $) مانند = Sheet2!B$1.

    در نتیجه، لیست کشویی وابسته B1 در سلول B2 ظاهر می شود. منوی کرکره ای وابسته به C1 در C2 نمایش داده می شود و غیره ستون)، سپس از مختصات ستون مطلق (با $) و ردیف نسبی (بدون $) مانند = Sheet2!$B1 استفاده کنید.

    برای کپی کردن یک سلول کشویی در هر جهت، از یک مرجع نسبی (بدون علامت $) مانند = Sheet2!B1 استفاده کنید.

    2.3. یک نام برای بازیابی ورودی های منوی وابسته ایجاد کنید

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

    شما یک نام اکسل جدید ایجاد می کنید. با این فرمول:

    =INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))

    Where:

    • exporters_tbl - نام جدول (ایجاد شده در مرحله 1)؛
    • fruit - نام سلول حاوی اولین لیست کشویی (ایجاد شده در مرحله 2.2)؛
    • fruit_list - نامی که به ردیف سرصفحه جدول اشاره می کند (ایجاد شده درمرحله 2.1).

    من به آن نام صادرکننده_لیست دادم، همانطور که در تصویر زیر می بینید.

    خب ، شما قبلاً بخش عمده کار را انجام داده اید! قبل از رسیدن به مرحله نهایی، ممکن است ایده خوبی باشد که مدیر نام (Ctrl + F3) را باز کنید و نام ها و مراجع را تأیید کنید:

    3. راه اندازی Excel Data Validation

    این در واقع ساده ترین بخش است. با وجود دو فرمول نام‌گذاری‌شده، اعتبارسنجی داده‌ها را به روش معمول تنظیم می‌کنید ( برگه داده > تأیید اعتبار داده ).

    • برای اولین بار فهرست کشویی، در کادر منبع، =fruit_list (نام ایجاد شده در مرحله 2.1) را وارد کنید.
    • برای لیست کشویی وابسته، =exporters_list <9 را وارد کنید> (نام ایجاد شده در مرحله 2.3).

    انجام شد! منوی کشویی آبشاری پویا شما تکمیل شد و به‌طور خودکار به‌روزرسانی می‌شود و تغییراتی را که در جدول منبع ایجاد کرده‌اید منعکس می‌کند.

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

    ردیف های خالی را حذف کنید کرکره آبشاری پویا

    اگر می‌خواهید هر خط خالی را در کادرهای کشویی خود پاک کنید، باید یک قدم بیشتر بردارید و فرمول INDEX / MATCH مورد استفاده برای ایجاد لیست کشویی پویا وابسته را بهبود ببخشید.

    ایده استفاده از آن است2 توابع INDEX، که در آن اولی سلول سمت چپ بالا و دومی سلول سمت راست پایین محدوده یا تابع OFFSET با INDEX و COUNTA تودرتو را برمی‌گرداند. مراحل دقیق به شرح زیر است:

    1. دو نام اضافی ایجاد کنید

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

    • نامی به نام col_num برای ارجاع به شماره ستون انتخابی:

      =MATCH(fruit,fruit_list,0)

    • نامی به نام entire_col برای ارجاع به ستون انتخابی (نه شماره ستون، بلکه کل ستون):

      =INDEX(exporters_tbl,,col_num)

    در فرمول های بالا، exporters_tbl نام جدول منبع شما، fruit نام سلول حاوی اولین کشویی، و fruit_list نامی است که به ردیف سرصفحه جدول ارجاع می دهد.<1

    2. مرجع نامگذاری شده را برای منوی کشویی وابسته ایجاد کنید

    بعد، از یکی از فرمول های زیر برای ایجاد یک نام جدید استفاده کنید (بیایید آن را exporters_list2 بنامیم) تا در لیست کشویی وابسته استفاده شود:

    =INDEX(exporters_tbl,1,col_num) : INDEX(exporters_tbl, COUNTA(entire_col), col_num)

    =OFFSET(INDEX(exporters_tbl,1,col_num),0,0,COUNTA(entire_col))

    3. Apply Data Validation

    در نهایت، سلول حاوی منوی بازشوی وابسته را انتخاب کنید و با وارد کردن = exporters_list2 (نام ایجاد شده در مرحله قبل) در Source ، Data Validation را اعمال کنید. کادر.

    تصویر صفحه زیر منوی کشویی پویا به دست آمده را در اکسل نشان می دهد که در آن تمام خطوط خالی از بین رفته اند!

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

    به این ترتیب یک لیست اعتبارسنجی داده اکسل را بر اساس مقادیر یک لیست دیگر ایجاد می کنید. لطفاً کتاب‌های نمونه ما را دانلود کنید تا لیست‌های کشویی آبشاری را در عمل ببینید. ممنون که خواندید!

    کتاب کار برای دانلود تمرین کنید

    نمونه کشویی آبشاری 1- نسخه آسان

    نمونه کشویی آبشاری 2 - نسخه پیشرفته بدون جاهای خالی

    <1 نام را مستقیماً در Name Box .

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

    برای دستورالعمل‌های گام به گام دقیق، لطفاً نحوه تعریف نام در اکسل را ببینید.

    چیزهایی که باید به خاطر بسپارید:

    1. موارد زیر در اولین لیست کشویی ظاهر می شود باید ورودی های یک کلمه ای باشد، به عنوان مثال. زردآلو ، انبه ، پرتقال . اگر آیتم‌هایی متشکل از دو، سه یا چند کلمه دارید، لطفاً به نحوه ایجاد یک کشویی آبشاری با ورودی‌های چند کلمه‌ای مراجعه کنید.
    2. نام لیست‌های وابسته باید دقیقاً با ورودی منطبق در اصلی یکسان باشد. فهرست به عنوان مثال، لیست وابسته ای که باید هنگام انتخاب " Mango " از اولین لیست کشویی نمایش داده شود، باید Mango نامگذاری شود.

    پس از اتمام ، ممکن است بخواهید Ctrl+F3 را فشار دهید تا پنجره Name Manager باز شود و بررسی کنید که آیا همه لیست ها دارای نام ها و مراجع صحیح هستند یا خیر.

    3 . اولین لیست کشویی (اصلی) را بسازید

    1. در همان صفحه گسترده یا در صفحه گسترده دیگری، یک سلول یا چندین سلول را انتخاب کنید که می خواهید لیست کشویی اصلی شما در آنها ظاهر شود.
    2. به تب داده بروید، روی Data Validation کلیک کنید و با انتخاب List در زیر، یک لیست کشویی بر اساس محدوده نامگذاری شده به روش معمول تنظیم کنید. اجازه و وارد کردن نام محدوده درکادر منبع .

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

    در نتیجه، یک منوی کشویی در کاربرگ خود خواهید داشت که شبیه این است:

    4. فهرست کشویی وابسته را ایجاد کنید

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

    =INDIRECT(A2)

    جایی که A2 سلولی است که اولین سلول شما (اصلی) است. لیست کشویی.

    اگر سلول A2 در حال حاضر خالی باشد، پیام خطا را دریافت خواهید کرد " منبع در حال حاضر به یک خطا ارزیابی می شود. آیا می خواهید ادامه دهید. ? "

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

    5. سومین لیست کشویی وابسته را اضافه کنید (اختیاری)

    در صورت نیاز، می توانید سومین لیست کشویی آبشاری اضافه کنید که به انتخاب در منوی کشویی دوم یا به انتخاب های اول بستگی دارد. دو کرکره.

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

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

    به عنوان مثال، اگر می خواهید لیستی از مناطق را در ستون C نمایش دهید بسته به اینکه کدام کشور در ستون B انتخاب شده است، لیستی از مناطق را برای هر کدام ایجاد می کنید. کشور و نام آن را پس از نام کشور، دقیقاً همانطور که کشور در لیست های کشویی دوم نشان داده می شود، نامگذاری کنید. به عنوان مثال، فهرستی از مناطق هند باید به نام "هند"، فهرستی از مناطق چین - "چین" و غیره باشد.

    بعد از آن، شما یک سلول را برای کرکره سوم انتخاب می کنید (C2 در ما Case) و Excel Data Validation را با فرمول زیر اعمال کنید (B2 سلولی است با دومین منوی کشویی حاوی لیستی از کشورها):

    =INDIRECT(B2)

    اکنون، هر بار که هند را در فهرست کشورها در ستون B انتخاب می‌کنید، گزینه‌های زیر را در پنجره کشویی سوم خواهید داشت:

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

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

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

    1. مجموعه‌های اضافی از محدوده‌های نام‌گذاری شده ایجاد کنید، و آن‌ها را برای ترکیب‌های کلمه در دو فهرست کشویی اول خود نام‌گذاری کنید. به عنوان مثال، شما انبه، پرتقال و غیره را دارید در لیست اول و هند، برزیل و غیره را در لیست دوم دارید.سپس محدوده‌های نام‌گذاری شده را ایجاد می‌کنید MangoIndia ، MangoBrazil ، OrangesIndia ، OrangesBrazil ، و غیره. این نام‌ها نباید دارای زیرخط یا هر کاراکتر اضافی دیگری باشند. .

  • Apply Excel Data Validation را با فرمول INDIRECT SUBSTITUTE که نام ورودی های دو ستون اول را به هم متصل می کند و فاصله ها را از نام ها حذف می کند. به عنوان مثال، در سلول C2، فرمول اعتبارسنجی داده ها به این صورت خواهد بود:
  • =INDIRECT(SUBSTITUTE(A2&B2," ",""))

    که در آن A2 و B2 به ترتیب شامل اولین و دومین کشویی می شوند.

    در نتیجه، سومین قطره شما خواهد بود. فهرست -پایین، مناطق مربوط به میوه و کشور انتخاب شده در 2 لیست کشویی اول را نشان می دهد.

    این ساده ترین راه برای ایجاد کادرهای کشویی آبشاری در اکسل است. با این حال، این روش تعدادی محدودیت دارد.

    محدودیت های این رویکرد:

    1. موارد موجود در لیست کشویی اولیه شما باید تک کلمه ای باشند. ورودی های. نحوه ایجاد لیست‌های کشویی آبشاری با ورودی‌های چند کلمه‌ای را ببینید.
    2. اگر ورودی‌های فهرست کشویی اصلی شما حاوی کاراکترهایی باشد که در نام محدوده مجاز نیستند، مانند خط فاصله ( -)، آمپرسند (&) و غیره. راه حل این است که یک کشویی آبشاری پویا ایجاد کنید که این محدودیت را نداشته باشد.
    3. منوی کشویی ایجاد شده به این روش به طور خودکار به روز نمی شوند، یعنی شما باید محدوده های نامگذاری شده را تغییر دهیدهر بار که مواردی را در فهرست های منبع اضافه یا حذف می کنید، ارجاع دهید. برای غلبه بر این محدودیت، سعی کنید یک لیست کشویی آبشاری پویا ایجاد کنید.

    لیست های کشویی آبشاری را با ورودی های چند کلمه ای ایجاد کنید

    فرمول های INDIRECT که در مثال استفاده کردیم در بالا فقط می تواند موارد یک کلمه ای را مدیریت کند. به عنوان مثال، فرمول =INDIRECT(A2) به طور غیرمستقیم به سلول A2 اشاره می کند و محدوده نامگذاری شده را دقیقاً با همان نامی که در سلول ارجاع داده شده است نمایش می دهد. با این حال، فضاها در نام‌های اکسل مجاز نیستند، به همین دلیل است که این فرمول با نام‌های چند کلمه‌ای کار نمی‌کند.

    راه‌حل این است که از تابع INDIRECT در ترکیب با SUBSTITUTE استفاده کنید، همانطور که هنگام ایجاد یک 3rd انجام دادیم. کشویی.

    فرض کنید در بین محصولات خربزه آبی دارید. در این مورد، فهرستی از صادرکنندگان هندوانه را با یک کلمه بدون فاصله نام ببرید - هندوانه .

    سپس، برای دومین کشویی، Excel Data Validation را با فرمول زیر اعمال کنید. فاصله از نام سلول A2:

    =INDIRECT(SUBSTITUTE(A2," ",""))

    چگونه از تغییرات در لیست کشویی اولیه جلوگیری کنیم

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

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

    =IF(B2="", Fruit, INDIRECT("FakeList"))

    جایی که B2 شامل دومین کرکره است، " Fruit " نام لیستی است که در اولین منوی کشویی ظاهر می شود و " FakeList " هر نام جعلی است که وجود ندارد.

    اکنون، اگر هر موردی در لیست کشویی دوم انتخاب شود، هیچ انتخابی در دسترس نخواهد بود. کاربر روی فلش کنار لیست اول کلیک می کند.

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

    مزیت اصلی یک لیست کشویی وابسته به اکسل پویا این است که شما آزاد هستید لیست های منبع را ویرایش کنید و جعبه های کشویی شما به سرعت به روز می شوند. البته، ایجاد فهرست‌های کشویی پویا کمی به زمان بیشتر و فرمول‌های پیچیده‌تری نیاز دارد، اما من معتقدم که این سرمایه‌گذاری ارزشمندی است زیرا پس از راه‌اندازی، کار کردن با چنین منوهای کشویی واقعاً لذت بخش است.

    همانند تقریباً با هر چیزی در اکسل، شما می توانید به چندین روش به یک نتیجه برسید. به طور خاص، می‌توانید با استفاده از ترکیبی از توابع OFFSET، INDIRECT و COUNTA یا یک فرمول سازگارتر INDEX MATCH، یک کشویی پویا ایجاد کنید. دومی روش ترجیحی من است زیرا مزایای متعددی را ارائه می دهد که ضروری ترین آنها عبارتند از:

    1. شما باید فقط 3 محدوده نامگذاری شده ایجاد کنید، مهم نیست که چگونهموارد زیادی در لیست های اصلی و وابسته وجود دارد.
    2. فهرست های شما ممکن است حاوی موارد چند کلمه ای و هر کاراکتر خاصی باشد.
    3. تعداد ورودی ها می تواند در هر ستون متفاوت باشد.
    4. ترتیب مرتب سازی ورودی ها مهم نیست.
    5. در نهایت، حفظ و اصلاح فهرست های منبع بسیار آسان است.

    باشه، نظریه کافی است، بیایید به تمرین برسیم.

    1. داده های منبع خود را در یک جدول سازماندهی کنید

    طبق معمول، اولین کاری که باید انجام دهید این است که تمام انتخاب های لیست های کشویی خود را در یک کاربرگ یادداشت کنید. این بار، داده های منبع را در جدول اکسل ذخیره خواهید کرد. برای این کار، پس از وارد کردن داده‌ها، همه ورودی‌ها را انتخاب کنید و Ctrl + T را فشار دهید یا روی تب Insert > Table کلیک کنید. سپس نام جدول خود را در کادر نام جدول تایپ کنید.

    راحت ترین و بصری ترین روش این است که موارد را برای اولین کشویی به عنوان سرصفحه جدول و موارد برای کشویی وابسته به عنوان داده های جدول. تصویر زیر ساختار جدول من را با نام exporters_tbl نشان می‌دهد - نام میوه‌ها سربرگ جدول هستند و فهرستی از کشورهای صادرکننده تحت نام میوه مربوطه اضافه شده است.

    <1

    2. نام‌های اکسل را ایجاد کنید

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

    2.1. یک نام برای ردیف سرصفحه جدول اضافه کنید (کرکره اصلی)

    برای ایجاد یکنام جدیدی که به سرفصل جدول اشاره دارد، آن را انتخاب کنید و سپس روی Formulas > Name Manager > New کلیک کنید یا Ctrl + F3 را فشار دهید.

    Microsoft Excel از سیستم مرجع جدول داخلی برای ایجاد نام الگوی table_name[#Headers] استفاده خواهد کرد.

    به آن مقداری بدهید نام معنی دار و آسان برای به خاطر سپردن، به عنوان مثال fruit_list ، و روی OK کلیک کنید.

    2.2. یک نام برای سلول حاوی اولین لیست کشویی ایجاد کنید

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

    به عنوان مثال، اولین جعبه کشویی من در سلول B1 در برگه 2 قرار دارد، بنابراین من یک نام برای آن ایجاد می کنم، چیزی ساده و خود توضیحی مانند میوه :

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

    لطفاً حتماً چند پاراگراف زیر را با دقت بخوانید زیرا این نکته بسیار مفیدی است که نمی خواهید از دست بدهید. . از کارن برای ارسال آن بسیار سپاسگزاریم!

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

    برای کپی کردن صحیح فهرست‌های بازشو در ستون‌های (یعنی سمت راست)، از ستون نسبی (بدون $) استفاده کنید.

    مایکل براون یک علاقه‌مند به فناوری است که علاقه زیادی به ساده‌سازی فرآیندهای پیچیده با استفاده از ابزارهای نرم‌افزاری دارد. او با بیش از یک دهه تجربه در صنعت فناوری، مهارت های خود را در Microsoft Excel و Outlook و همچنین Google Sheets و Docs تقویت کرده است. وبلاگ مایکل اختصاص داده شده است تا دانش و تخصص خود را با دیگران به اشتراک بگذارد و نکات و آموزش هایی را برای بهبود بهره وری و کارایی ارائه دهد. چه یک حرفه ای با تجربه باشید و چه مبتدی، وبلاگ مایکل، بینش های ارزشمند و توصیه های عملی را برای استفاده حداکثری از این ابزارهای نرم افزاری ضروری ارائه می دهد.