Datavalidering med dynamiske lister

with Ingen kommentarer

Datavalidering med dynamiske lister

Jeg har en kolonne med bilmerker, og så har jeg modellene i kolonnen ved siden av.
Først velger jeg Ford i nedtrekkmenyen i A-kolonnen. Da ønsker jeg at nedtrekkmenyen i B-kolonnen kun skal inneholde modellene fra Ford.

Eksemplet kan overføres til så mye annet. Jeg velger Avdeling, og vil ha alle ansatte i denne avdelingen. Eller jeg velger Fylke og vil ha frem alle Kommuner i dette Fylket.

Abonner på ExcelGurus Youtube-kanal
(Artikkelen fortsetter under videoruten. Excelboken som benyttes i videoen kan du laste ned i bunnen av artikkelen)

Funksjonaliteten jeg er ute etter:

I figur 1 har jeg valgt Ford, og da får jeg bare opp modeller fra Ford i bedtrekksmenyen i B-kolonnen:

Datavalidering med dynamiske lister
Fig.1

Fig. 1

Her har jeg valgt Mazda, og da vises bare CX3 og CX5 i listen

Datavalidering med dynamiske lister
Fig.2

For å få til dette, benytter vi oss av muligheten til å sette datavalidering med navngitte lister. Vi markerer modellene til Ford, høyreklikker og velger Definer Navn. Navnet vi setter må være eksakt likt bilmerket disse modellene tilhører, altså Ford.

Datavalidering med dynamiske lister
Fig.3

Så gjør vi det samme for Mazda og Opel. Da har vi tre definerte områder med navnene til de forskjellige bilmerkene.

Neste steg er å få en nedtrekksmeny i B-kolonnen hvor vi skal kunne velge modellene som tilhører bilmerket. Da markerer vi området B2-B10 (eller så lang du ønsker at listen skal være) i fanen Velg, og velger Data->Datavalidering i menyen (Fig.4):

Datavalidering med dynamiske lister
Fig.4

Tillatt

Der setter vi at vi skal tillate verdier fra Liste, og så kommer vi til det virkelig lure 🙂 Vi setter =INDIREKTE(A2) som Kilde. A2 setter vi fordi det er første linje i listen vi har markert. Den vil endre seg til A3 og A4 når vi beveger oss nedover i listen.

Kilde

“Kilde” kan være et navngitt område, og ved å skrive INDIREKTE(A2), sier vi at listenavnet skal være verdien som står i A2, i dette tilfellet Opel. På denne måten bruker vi navnet på bilmerket som listenavn som denne datavalideringen skal benytte. Eureka!

Forskjellen på =A2 og =Indirekte(A2)

Hvis vi under Kilde skriver bare A2, vil datavalideringen bruke verdien i A2 som liste, og det eneste vi vil få opp i listen er “Opel”. Når vi bruker =INDIREKTE(A2), brukes verdien i A2 som listenavnet datavalideringen skal bruke.

Last ned regnearket her: DatavalideringMedDynamiskeLister.xlsx (323 downloads)