Skapa en dynamisk beroende rullgardinslista i Excel på ett enkelt sätt

  • Dela Detta
Michael Brown

Handledningen visar hur du skapar en Excel-lista som är beroende av en annan cell med hjälp av nya dynamiska array-funktioner.

Det är lätt att skapa en enkel rullgardinslista i Excel, men att skapa en rullgardinslista med flera nivåer har alltid varit en utmaning. I den ovan länkade handledningen beskrivs fyra olika tillvägagångssätt, alla med ett galet antal steg, en massa olika formler och en handfull begränsningar som rör inmatningar med flera ord, tomma celler osv.

Det var den dåliga nyheten, men den goda nyheten är att dessa metoder var utformade för Excel före dynamiska versioner. Införandet av dynamiska matriser i Excel 365 har förändrat allt! Med de nya funktionerna för dynamiska matriser är det bara några minuter, om inte några sekunder, att skapa en nedrullningslista med flera beroende enheter. Inga tricks, inga förbehåll, inget nonsens, bara snabba, enkla och lätt att följa.

    Anteckningar:

    • Det här nya dynamiska array-sättet för att skapa rullgardinslistor fungerar bara i Excel 365 och Excel 2021. I Excel före dynamiska Excel måste du göra det på det gamla vanliga sättet som beskrivs i Skapa en beroende rullgardinslista i Excel 2019 - 2007.
    • Den här lösningen gäller för en enda rad. Om du vill kopiera dina picklistor neråt flera rader följ sedan instruktionerna i rullgardinslistan Beroende för flera rader.
    • Hur man gör en dynamisk rullgardinslista i Excel

      Det här exemplet visar hur man generellt skapar en rullgardinslista i Excel med hjälp av de nya dynamiska arrayfunktionerna.

      Anta att du har en lista med frukt i kolumn A och exportörer i kolumn B. En ytterligare komplikation är att fruktnamnen inte är grupperade utan utspridda i kolumnen. Målet är att placera de unika fruktnamnen i den första rullgardinsmenyn och beroende på användarens val visa de relevanta exportörerna i den andra rullgardinsmenyn.

      Du kan skapa en dynamisk beroende rullgardinslista i Excel genom att utföra följande steg:

      1. Få objekt för huvudlistan

      Till att börja med ska vi extrahera alla olika fruktnamn från kolumn A. Detta kan göras genom att använda UNIQUE-funktionen i dess enklaste form - ange fruktlistan som första argument ( matris ) och utelämna de övriga valfria argumenten som standard fungerar bra för oss:

      =UNIK(A3:A15)

      Formeln går till G3, och när du trycker på Enter-knappen hamnar resultatet automatiskt i nästa cell.

      2. Skapa den viktigaste rullgardinsmenyn

      Om du vill skapa din primära rullgardinslista konfigurerar du en regel för Excel-datavalidering på följande sätt:

      • Välj en cell där du vill att rullgardinsmenyn ska visas (D3 i vårt fall).
      • På den Uppgifter på fliken Verktyg för data grupp, klicka på Validering av data .
      • I Validering av data gör följande:
        • Under Tillåt , välj Lista .
        • I Källa anger du referensen till det spillområde som anges i formeln UNIQUE. Skriv hashtaggen direkt efter cellreferensen, till exempel så här: =$G$3#

          Detta kallas för en referens till ett spillområde, och syntaxen hänvisar till hela området oavsett hur mycket det expanderar eller krymper.

        • Klicka på OK för att stänga dialogrutan.

      Din primära rullgardinslista är klar!

      3. Få objekt för den beroende rullgardinslistan.

      För att få fram poster till den sekundära rullgardinsmenyn filtrerar vi värdena i kolumn B baserat på det värde som valts i den första rullgardinsmenyn. Detta kan göras med hjälp av en annan dynamisk arrayfunktion som heter FILTER:

      =FILTER(B3:B15, A3:A15=D3)

      Där B3:B15 är källdata för den beroende rullgardinsmenyn, A3:A15 är källdata för den huvudsakliga rullgardinsmenyn och D3 är den huvudsakliga rullgardinscellen.

      För att kontrollera att formeln fungerar korrekt kan du välja ett värde i den första rullgardinslistan och se vilka resultat som returneras av FILTER. Perfekt! :)

      4. Gör den beroende rullgardinsmenyn

      För att skapa den andra rullgardinslistan konfigurerar du datavalideringskriterierna precis som du gjorde för den första rullgardinslistan i steg 2. Men den här gången hänvisar du till det spillområde som returneras av FILTER-funktionen: =$H$3#

      Så är det! Din Excel-beroende rullgardinslista är redo att användas.

      Tips och anteckningar:

      • För att ha nya poster inkluderade i rullgardinslistan automatiskt Du kan också inkludera några tomma celler i dina formler, vilket visas i det här exemplet.
      • Om det finns luckor i dina ursprungliga uppgifter kan du Filtrera bort blanketter. genom att använda den här lösningen.
      • Till alfabetiskt sortera en rullgardins objekt, omsluta dina formler i funktionen Sortera enligt det här exemplet.

      Hur man skapar flera beroende rullgardinslistor i Excel

      I det föregående exemplet skapade vi en rullgardinslista som är beroende av en annan cell. Men vad händer om du behöver en hierarki i flera nivåer, dvs. en tredje rullgardinslista som är beroende av den andra listan, eller till och med en fjärde rullgardinslista som är beroende av den tredje listan. Är det möjligt? Ja, du kan skapa hur många beroende listor som helst (ett rimligt antal, förstås :).

      I det här exemplet har vi placerat stater/provinser i kolumn C och vill nu lägga till en motsvarande rullgardinsmeny i G3:

      Så här gör du för att skapa en rullgardinslista med flera beroende objekt i Excel:

      1. Skapa den första rullgardinsmenyn

      Huvudlistan skapas med exakt samma steg som i det föregående exemplet (se steg 1 och 2 ovan). Den enda skillnaden är den referens för spillintervallet som du anger i Källa box.

      Den här gången är UNIQUE-formeln i E8 och den huvudsakliga rullgardinslistan kommer att vara i E3. Så du väljer E3, klickar på Validering av data , och ange denna referens: =$E$8#

      2. Konfigurera den andra listrutan

      Som du kanske har märkt innehåller kolumn B nu flera förekomster av samma exportörer. Men du vill ju bara ha unika namn i rullgardinslistan, eller hur? För att utesluta alla dubbla förekomster, sveper du in funktionen UNIQUE runt din FILTER-formel och skriver in den här uppdaterade formeln i F8:

      =UNIQUE(FILTER(B3:B15, A3:A15=E3))

      Där B3:B15 är källdata för den andra rullgardinsmenyn, A3:A15 är källdata för den första rullgardinsmenyn och E3 är den första rullgardinscellen.

      Använd sedan följande referens för spillintervallet för kriterierna för datavalidering: =$F$8#

      3. Skapa den tredje rullgardinsmenyn

      För att samla in objekt till den tredje rullgardinslistan använder du formeln FILTER med flera kriterier. Det första kriteriet kontrollerar hela fruktlistan mot det värde som valts i den första rullgardinslistan (A3:A15=E3) medan det andra kriteriet testar listan över exportörer mot urvalet i den andra rullgardinslistan (B3:B15=F3). Den fullständiga formeln går till G8:

      =FILTER(C3:C15, (A3:A15=E3) * (B3:B15=F3))

      Om du kommer att lägga till fler beroende rullgardinsalternativ (fjärde, femte osv.) kommer kolumn C sannolikt att innehålla flera förekomster av samma objekt. För att förhindra att dubbletter hamnar i förberedelsetabellen, och därmed i det tredje rullgardinsalternativet, ska du använda formeln FILTER i funktionen UNIQUE som vi gjorde i föregående steg:

      =UNIQUE(FILTER(C3:C15, (A3:A15=E3) * (B3:B15=F3)))

      Det sista du behöver göra är att skapa ytterligare en regel för datavalidering med följande Källa referens: =$G$8#

      Din rullgardinslista med flera beroende enheter är redo att användas!

      Tips. På samma sätt kan du få objekt för efterföljande rullgardinsmenyer Om du antar att kolumn D innehåller källdata för din fjärde rullgardinslista kan du ange följande formel i H8 för att hämta motsvarande objekt:

      =UNIQUE(FILTER(D3:D15, (A3:A15=E3) * (B3:B15=F3) * (C3:C15=G3)))

      Hur man gör en expanderbar rullgardinslista i Excel

      När du har skapat en rullgardinsmeny kan din första fråga vara vad som händer när du lägger till nya objekt i källdata. Kommer rullgardinsmenyn att uppdateras automatiskt? Om dina originaldata är formaterade som en Excel-tabell, så ja, en dynamisk rullgardinsmeny som diskuterades i de tidigare exemplen kommer att expandera automatiskt utan att du behöver anstränga dig, eftersom Excel-tabeller är expanderbara till sin natur.

      Om du av någon anledning inte kan använda en Excel-tabell kan du göra din rullgardinslista expanderbar på det här sättet:

      • Till inkludera nya uppgifter automatiskt när den läggs till i källförteckningen, lägg till några extra celler till de matriser som refereras i formlerna.
      • Till utesluta tomma celler , konfigurera formlerna så att de ignorerar tomma celler tills de fylls.

      Med dessa två punkter i åtanke kan vi finjustera formlerna i vår tabell för dataförberedelse. Reglerna för datavalidering kräver inga justeringar alls.

      Formel för den huvudsakliga rullgardinsmenyn

      Med fruktnamnen i A3:A15 lägger vi till 5 extra celler i matrisen för att ta hänsyn till eventuella nya poster. Dessutom bäddar vi in FILTER-funktionen i UNIQUE för att extrahera unika värden utan blanksteg.

      Mot bakgrund av ovanstående har formeln i G3 följande form:

      =UNIQUE(FILTER(A3:A20, A3:A20""))

      Formel för den beroende rullgardinsmenyn

      Formeln i G3 behöver inte justeras särskilt mycket - det räcker med att utöka matriserna med några fler celler:

      =FILTER(B3:B20, A3:A20=D3)

      Resultatet är en fullt dynamisk expanderbar beroende rullgardinslista:

      Hur man sorterar en rullgardinslista i alfabetisk ordning

      Vill du ordna din rullgardinslista i alfabetisk ordning utan att behöva använda källdata? Det nya dynamiska Excel har en särskild funktion för detta också! I din tabell för dataförberedelse kan du helt enkelt lägga SORT-funktionen runt dina befintliga formler.

      Reglerna för datavalidering konfigureras precis som i de tidigare exemplen.

      Sortera från A till Z

      Eftersom den stigande sorteringsordningen är standardalternativet kan du bara bädda in dina befintliga formler i matris argumentet för SORT, utan att ta hänsyn till alla andra argument som är valfria.

      För huvudfältet (formeln i G3):

      =SORT(UNIK(FILTER(A3:A20, A3:A20"")))

      För beroende rullgardinsmeny (formeln i H3):

      =SORT(FILTER(B3:B20, A3:A20=D3))

      Klart! Båda rullgardinslistorna sorteras i alfabetisk ordning från A till Z.

      Sortera från Z till A

      För att sortera i fallande ordning måste du ange det tredje argumentet ( sort_order ) i SORT-funktionen till -1.

      För huvudfältet (formeln i G3):

      =SORT(UNIK(FILTER(A3:A20, A3:A20"")), 1, -1)

      För beroende rullgardinsmeny (formeln i H3):

      =SORT(FILTER(B3:B20, A3:A20=D3), 1, -1)

      Detta kommer att sortera både uppgifterna i förberedelsetabellen och posterna i rullgardinslistorna från Z till A:

      Så skapar du en dynamisk rullgardinslista i Excel med hjälp av de nya dynamiska array-funktionerna. Till skillnad från de traditionella metoderna fungerar det här tillvägagångssättet perfekt för poster med ett eller flera ord och tar hand om alla tomma celler. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!

      Arbetsbok för övning för nedladdning

      Excel-beroende rullgardinslista (.xlsx-fil)

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.