- Dettagli
- Scritto da Alessandra
- Pubblicato: 24 Giugno 2011
- Visite: 93186
Oggi torniamo sugli elenchi a tendina in un foglio Excel: vogliamo fare in modo che siano dinamici, ossia che se si sceglie un valore dal primo elenco, dal secondo sia possibile scegliere solo i valori relativi al primo valore scelto.
Facciamo un esempio per chiarire meglio
Immaginiamo di voler scegliere da un elenco a discesa la città da visitare e da un altro una possibile attrazione turistica di quella città.
La prima cosa da fari è preparare un foglio di “appoggio” con i dati che si serviranno per comporre gli elenchi a tendina, qualcosa come quello che vedete nella figura sotto.
In pratica, i valori della Riga 1 andranno a costituire i valori mostrati dal primo elenco a tendina, mentre quelli delle tre colonne saranno mostrati dal secondo elenco a discesa, i valori mostrati dipendono da quanto scelto nella prima tendina. Se, ad esempio, dal primo elenco si sceglie Roma, nel secondo si potrà scegliere una delle voci Colosseo, San Pietro, Piazza Navona, Piazza di Spagna. Mentre, se dal primo elenco si sceglie Firenze, nel secondo si vedranno i valori Duomo, Battistero, Santa Maria Novella e così via.
La prima cosa da farsi è assegnare un nome alle celle della prima riga ossia quelle che forniscono i valori per la prima tendina. Nel nostro caso assegneremo il nome Città all’intervallo A1:C1.
Dobbiamo poi creare i tre intervalli che corrispondono ai monumenti delle tre città. Il nome di ciascun intervallo deve essere quello della relativa città, ossia uno dei possibili valori della prima tendina. Noi creeremo gli intervalli in modo statico, nulla vieta di farlo in modo dinamico come abbiamo spiegato in un post precedente, l’unico vincolo è che i nomi degli intervalli siano gli stessi valori mostrati nel primo elenco a discesa.
Noi avremo i seguenti intervalli:
- Roma > A2:A5
- Firenze > B2:B4
- Venezia>C2:C5
Fatto questo siamo pronti per creare i nostri elenchi a tendina, nello stesso foglio o in un altro foglio.
Selezionate le celle in cui deve essere presente il primo elenco a discesa e, se usate Excel 2003, scegliete Dati > Convalida, mentre se usate Excel 2007 o 2010 portatevi alla scheda Dati e, nel gruppo, Strumenti dati, scegliete Convalida dati. In entrambi i casi, vedrete la finestra Convalida dati.
Dall’elenco Consenti, scegliete Elenco, quindi nella casella origine scrivete =Città che è il nome dell’intervallo che contiene i nomi delle città. Premete Ok per confermare.
A questo punto selezionate l’intervallo che deve contenere il secondo elenco a discesa e avviate la convalida dei dati. Questa volta l’origine dell’elenco sarà =Indiretto(A2) dove A2 è il nome della prima cella dell’intervallo in cui è presente il primo elenco a discesa.
La funzione INDIRETTO permette di trasformare il valore della cella mostrata come argomento in un riferimento di intervallo. In partica, se nella cella A2, ci sceglie Firenze, =Indiretto(A2) restituisce il riferimento all’intervallo Firenze che è quello che contiene i monumenti della città di Firenze. Quando si chiude la finestra Convalida dati con la funzione Indiretto, si ottiene un messaggio di errore. Non preoccupatevi. È dovuto al fatto che la cella A2 è vuota e quindi non è possibile creare un riferimento ad un intervallo dal contenuto della cella.
Si otterrà qualcosa di simile alla figura che segue.
Commenti
avrei una domanda da porre: è possibile ( ed eventualmente come ) mettere in rapporto i valori di due menù a comparsa? Mi spiego meglio: se ( ad esempio ) nella cella A1 ho un menù a comparsa con 3 voci diverse ( A, B e C ), come posso metterli in relazione con i valori della cella B1 dove è presente un altro menù a comparsa con 3 valori differenti ( 1, 2 e 3 ), quando A=1, B=2 e C=3 ? Cioè, come posso fare affinché selezionando A sulla cella B1 appaia 1 automaticamente , selezionando B appaia 2 e selezionando C appaia 3?
Grazie per l'aiuto!!!
Se capisco bene.... ti serve CERCA.VERT
Poniamo che:
- nella colonna A ci siano un centinaio di città.
- nella colonna B ci siano altrettanti monumenti.
- ci fosse una colonna (nei dati) che a fianco ad ogni monumento abbia due celle: una con anno di realizzazione ed una con la descrizione del monumento.
Ho fatto la stessa cosa potendo scegliere:
- città
- monumento
- anno di costruzione del monumento
Come potrei avere in automatico il riempimento della casella con la descrizione?
ho provato a metere assieme gli elenchi dinamici e la funzione indiretto, ma non funziona!
Fatta la stessa cosa con un elenco definito, invece funziona.
Ma hai seguito la procedura proposta o stai provando a fare qualcosa di diverso?
Se provi a scaricare il file esempio allegato funziona. Quello ti può aiutare
L'elenco dinamico è corretto, infatti se faccio un convalida dati utilizzando l'elenco dinamico (quindi passandogli il nome direttamente), questo funziona correttamente, mentre se cerco di passarlo con INDIRETTO, pur esponendo il valore corretto (ho provato in una casella accanto), non mi legge alcun valore dell'intervallo che mi serve...
Idee/soluzioni ?
Grazie
" indiretto(a2)" mi da solamente la cella vuoto è non mi fa selezionare nulla ,anche se nel primo menu ho già slezionata una voce .
Grazie
Come fare per non dover scrivere in tutte le convalida un nuovo"Origine" che cambia di riga in riga: =indiretto(A2), =indiretto(A3), =indiretto(A4). .. selezionando la colonna tutte le righe prendono il primo elemento (A2)...
Se devo scrivere la convalida per ogni riga sarà un macello... ho 3 collone e dovrei utilizzare circa 2.000 righe
Seleziona l'intervallo che ti interessa e scrivi la formula, COME SE la scrivessi solo per la prima delle celle che hai selezionato. Excel la aggiornerà per tutte le altre
No, non è possibile. Quello che puoi fare è andare nella scheda Messaggio di errore della finestra Concalida dati e scegliere come stile Avviso o Informazione.
Excel ti avviserà che la voce scritta non è fra quepermetterà di tenerla ugualmente.
Ad esempio se nell'elenco ho 200,300,400 e in fase di scelta vorrei inserire 250 (o un qualsiasi altro numero) che non è presente, come posso forzare la formula?
Grazie
Cosa bisogna fare quando il nome di un intervallo di dati è simile ad un riferimento di cella e quindi Excel restituisce il messaggio di errore:"Il nome è in conflitto con un nome incorporato di Excel"?
Grazie mille
Senza codice vba non è possibile
RSS feed dei commenti di questo post.