Menu a tendina con Excel

samuele agnolin
  • 31 maggio 2017
  • livello: base   3 minuti

Come fare per inserire in una cella di Excel un menu a tendina (o elenco a discesa) da cui scegliere uno tra i valori predefiniti?

Utilizziamo il Convalida Dati voce Elenco.

Questo il primo risultato di esempio: nella cella C2 c’è un elenco a tendina da cui possiamo scegliere tra le voci “Donna” e “Uomo”.tendina due valori

Questo il secondo risultato di esempio: nella cella C3 c’è un menu a tendina con un elenco di province.

tendina valori da elenco

Nel video ti mostro come creare le due tendine.

Se non hai tempo o voglia di vederti il video, qui sotto ti riporto le parti più importanti del video.

Ecco i passaggi per creare il primo elenco: “Donna”, “Uomo”.



Menu a tendina con inserimento manuale dei valori

Le voci della tendina sono solo due quindi possiamo scrivere le due voci direttamente nel convalida dati.

 A  Ci si posiziona sulla cella nella quale inserire l’elenco a discesa (o si seleziona l’intervallo di celle nel caso lo si volesse inserire su più celle) e si richiama il comando Convalida dati dal menu Dati

dati convalida dati voce menu

 B  Nei criteri di convalida della prima scheda “Impostazioni” scegliamo “Elenco”.

convalida dati elenco

 C  Nel parametro origine del convalida dati scriviamo i valori che vogliamo far comparire nella tendina, intervallati dal punto e virgola. Confermiamo con il tasto OK.

voci elenco



2. Menu a tendina con valori da elenco esistente

Vediamo ora il caso in cui si ha già l’elenco dei valori scritto in un qualche intervallo.

L’elenco non deve avere duplicati altrimenti essi vengono ripetuti nella tendina.

Per eliminare i doppioni ci si posiziona nell’elenco, in questo caso delle province, si va su Dati – Rimuovi duplicati. Se hai bisogno di vedere nel dettaglio i passaggi puoi guardare il video presente poco sopra o leggere il tutorial sul rimuovi duplicati.

I primi due passagi per creare la tendina da un elenco di voci già scritte sono uguali a quelli necessari per inserire i valori manuali nel menu a tendina:

 A  Ci posizioniamo sulla cella nella quale inserire l’elenco a discesa e richiamare il comando Convalida dati dal menu Dati

dati convalida dati voce menu

 B  Nei criteri di convalida della prima scheda “Impostazioni” scegliamo “Elenco”.

convalida dati elenco

 C  Nel campo origine questa volta non andiamo a scrivere manualmente le voci ma andiamo a selezionare un intervallo nel quale le voci sono già scritte. Confermiamo poi con il tasto OK.

origine da intervallo

L’intervallo, nelle versioni recenti di Excel, può anche trovarsi su un foglio diverso da quello dove stiamo creando la tendina.

Eventuali modifiche dell’intervallo impostato come origine vengono mostrate nella tendina. Ad esempio l’ordinamento impostato nell’elenco di origine determinerà l’ordine di visualizzazione delle voci nella tendina.

E’ possibile consentire l’inserimento di un valore non presente nell’elenco di origine?

Sì. Possiamo permette che l’utente inserisca un valore che non appartiene all’elenco utilizzando la terza scheda del comando “Convalida dati”.

inserimento valore non presente in elenco di origine

Scegliendo uno stile diverso da “Interruzione” (nell’immagine è stato scelto “Avviso”) si può mostrare un messaggio che avvisa l’utente del fatto che il testo inserito non appartiene a nessuna delle celle di origine specificate (o a nessuno dei valori scritti manualmente nel caso fossimo nella situazione descritta dal punto 1. di questo articolo) ma che consente l’eventuale conferma da parte dell’utente.

Per una descrizione più dettagliata delle varie impostazioni si veda l’articolo dedicato al “Convalida dati“.



3. Menu a tendina doppio

Come creare un menu a tendina doppio con dei valori dinamici che cambiano a seconda del valore scelto in un’altra tendina?

Per inserire un elenco a discesa, chiamato spesso menu a tendina, che abbia voci dinamiche bisogna utilizzare la funzionalità NOMI, la funzione INDIRETTO e la funzionalità CONVALIDA DATI.

Questo il risultato finale…

excel tendina doppia

E questi i 4 passaggi per ottenerlo:

 1  Prepariamo la prima tendina
Ci posizioniamo nella cella, in questo esempio B3, richiamiamo dalla scheda Dati il convalida dati, scegliamo Elenco e poi nell’origine scriviamo Frutta;Verdura.

convalida dati origine

 2  Selezioniamo le tre celle della frutta e attribuiamo loro un NOME
Selezioniamo le celle F3:F5. Clicchiamo nella cella del nome (in alto a sinistra, sopra ai numeri di riga), scriviamo frutta e diamo invio.

definizione nome frutta

Abbiamo così etichettato con “frutta” le celle F3:F5. Ogni volta che usiamo in una formula o in una funzionalità la scritta “frutta” è come se scrivessimo F3:F5. Scrivere CONTA.VALORI(frutta) significherà scrivere CONTA.VALORI(F3:F5)

 3  Selezioniamo le tre celle della verdura e attribuiamo loro un NOME
Selezioniamo le celle G3:G5. Clicchiamo nella cella del nome, scriviamo verdura e diamo invio
Abbiamo così etichettato con “verdura” le celle G3:G5

definizione nome verdura

 4  Costruiamo la seconda tendina
Nell’origine dati scriviamo =INDIRETTO($B$3)

funzione indiretto

Che cosa significa?
La funzione INDIRETTO legge il contenuto di B3 e tratta quel contenuto come se fosse un riferimento ad una cella.
Pertanto è come se nell’origine del nostro Convalida ci fosse scritto =Frutta oppure =Verdura.

origine dati con nome

Ma avendo noi associato il NOME frutta all’intervallo di celle F3:F5 e il NOME Verdura a G3:G5 è come se nell’origine del Convalida ci fosse scritto =F3:F5 (nel caso nella prima tendina sia stato scelto Frutta) oppure =G3:G5 (se in B3 è stato scelto Verdura).

origine dati con intervallo

Il gioco è fatto! :-)

Tutti i passaggi sono riassunti nel seguente screenshot:

tendina doppia collegata




Se l’articolo ti è piaciuto e hai una voglia incredibile di condividerlo…:-) beh condividilo pure sui social, grazie 😉

9 Comments

You can post comments in this post.


  • Interessante, ma se mi servisse una tendina con valori presi da un elenco aperto? Con questo metodo, se faccio una modifica all’origine cambiando un valore, gli elenchi collegati non vengono aggiornati…

    Cheope 2 anni ago Reply


    • Ciao Cheope. Se cambiamo un valore esistente dell’origine dati la nostra modifica ha effetto anche sull’elenco.

      Forse con “elenco aperto” tu ti riferisci alla possibilità di aggiungere dei valori in coda a quelli già esistenti nell’elenco di origine?

      Se è così ci sono due strade per creare un elenco dinamico.

      La prima, veloce ma non precisa, è quella di indicare nell’origine dati una colonna intera. Selezionando ad esempio la colonna E, nell’origine dati verrà scritto =$E:$E

      La seconda strada, più precisa e interessante, è quella che utilizza i NOMI e la funzione SCARTO. Questi in sintesi i passaggi necessari:

      1: Scheda Formule, Gestione nomi, Nuovo…
      2: Nome: origine_convalida – Riferito a: =SCARTO(Foglio1!$E$1;0;0;CONTA.VALORI(Foglio1!$E:$E))
      3: Nel Convalida dati Elenco, Origine: =origine_convalida

      Il punto 2 utilizza la funzione SCARTO, la quale fornisce come risultato un intervallo di celle. Nell’esempio parte dalla cella E1 e legge un numero di celle pari al numero fornito dal CONTA.VALORI. Quindi se ho scritto dei valori da E1 a E5 il CONTA.VALORI restituisce 5 e quindi il nostro elenco avrà ampiezza 5, prenderà da E1 a E5.

      Spero di aver capito la tua richiesta, se così non fosse fammi sapere.

      Samuele 2 anni ago Reply


      • Grazie Samuele. Molto interessante. Avevo scoperto per caso l’inghippo di scegliere un’intera colonna come sorgente dati. Ora però ho due fogli, uno in cui definisco un’anagrafica ditte e un secondo dove ho una tendina con in nomi delle ditte (prese dal primo foglio, definite con nome) a cui aggiungo ulteriori dati. Se per disgrazia cambio il nome di una ditta nel primo foglio, che ho già scelto nel secondo foglio, il nuovo nome non viene aggiornato e resta il valore sbagliato. Why? Grazie!

        Cheope 1 anno ago Reply


        • Ciao Cheope. Non c’è nessun legame tra le celle in cui hai già scelto il nome della ditta e l’elenco di origine della tendina. I dati quindi non possono aggiornarsi in automatico come tu vorresti.

          La soluzione potrebbe essere una macro che intercetta l’evento di modifica dell’origine dati e va a fare una sostituzione automatica.

          Se hai tempo e voglia di girarmi un file excel in cui mi schematizzi su poche righe la tua situazione, posso darci un’occhiata e prepararti appena posso la soluzione… samuele@amicoexcel.it

          Samuele 1 anno ago Reply


  • Salve,

    effettuando dei menù concatenati a cascata appena arrivo all’ultimo mi appare un messaggio del tipo “errore nell’origine”. Eppure sono assolutamente convinta di selezionare la cella giusta. Saprebbe gentilmente darmi qualche suggerimento?

    grazie mille,

    Francesca

    francesca bigazzi 9 mesi ago Reply


  • Salve,
    esiste una formula da inserire direttamente nella cella per indicare i valori e far apparire il menu a discesa?
    Genero il file excel da codice, e mi sarebbe molto utile impostare direttamente nella cella una cosa del tipo: =”valore1″;”valore2″;”valore3″ e poi avere come risultato una cella a scelta multipla, come negli esempi sopra.

    Se si utilizza la funzionalità CONVALIDA DATI > ELENCO > etc nella cella interessata non risulta nessuna formula esplicita.

    Grazie in anticipo
    Michele

    Michele 6 mesi ago Reply


  • Ciao Samuele e, innanzitutto, grazie per il tutorial.
    Ti chiedo: creato un menu a tendina, posso fare in modo che ogni volta che popolo una data cella con un contenuto “X”, tale contenuto venga eliminato (solo dalla tendina o direttamente anche dall’elenco) per la cella successiva?
    Sto cercando, in pratica, un modo per ridurre di volta in volta la lista delle opzioni disponibili.
    Spero di essere stato chiaro.
    Grazie in anticipo e ancora complimenti.
    Saluti,
    Mauro

    Mauro 3 mesi ago Reply


  • Buongiorno Samuele,
    Sto cercando di creare un foglio Excel ma per il momento non ho risolto il problema.
    Il quesito è il seguente:
    Nel menù a tendina ho tre variabili, A, B, C; nella colonna accanto in automatico devono apparire i loro valori (A=10; B=20; C=30).
    Selezionando nel menù B, nelle colonna accanto deve apparire automaticamente 20 e via dicendo.
    Grazie,
    Fabio

    Fabio 1 mese ago Reply


    • Ciao Fabio.

      Io utilizzerei la funzione SE.

      Cella tendina, supponiamo A1. Cella valori 10, 20 o 30 supponiamo B1.

      In B1 sciverei: =SE(A1=”A”;10;SE(A1=”B”;20;30))

      Spero di esserti stato di aiuto.

      samuele 1 mese ago Reply


Inserisci un commento