Crea controlli avanzati con la convalida dei dati

By | 18 Aprile 2019

Controlli avanzati con la convalida dei datiÈ possibile creare controlli avanzati con la convalida dei dati? Sì, ma è necessario conoscere formule e funzioni e strumenti di Excel come la gestione dei nomi. La convalida dei dati permette di creare controlli evoluti come elenchi dinamici o concatenati, controlli multipli su stringhe alfanumeriche, controlli di esclusione o inclusione e molto altro. In questo post vediamo una ventina di esempi di controlli avanzati.

Cos’è la convalida dei dati?

Nel post “La convalida dei dati in Excel” abbiamo riassunto le caratteristiche della convalida dei dati, un classico strumento di Excel con cui possiamo creare controlli automatici sull’inserimento di valori nelle celle del foglio di calcolo.

I controlli automatici creati con la convalida si basano sull’impostazione di criteri che definiscono con precisione quando il valore che si vuole inserire rispetta le regole imposte oppure no.

Oltre a creare il controllo automatico, lo strumento permette di definire e personalizzare:

  1. il messaggio di input del controllo, restituendo alla selezione della cella una finestra apposita che possiamo usare per comunicare le regole del controllo e per fornire istruzioni, ma che possiamo usare anche in assenza di controlli per scopi informativi;
  2. il messaggio di errore del controllo, che compare quando si cerca di inserire valori non accettabili, offrendo informazioni sul controllo e indicazioni su come rispettarlo. Attraverso le impostazioni di questa scheda è possibile modificare il comportamento del controllo stesso, permettendo anche l’inserimento di valori non validi.

Quali controlli possiamo installare?

I controlli di base sono quelli preimpostati e selezionabili attraverso la scheda “impostazioni”. Dal menu a tendina “Consenti” possiamo scegliere una tra le seguenti voci:

  1. Numero intero, il controllo verificherà la presenza di numeri interi di valori compresi o non compresi tra due limiti, uguali o diversi da uno o più valori definiti, maggiori o minori di un valore preciso, e altro ancora;
  2. Decimale, il controllo verificherà la presenza di numeri decimali con le stesse modalità espresse nel punto precedente;
  3. Data, il controllo verificherà la presenza di date con le stesse modalità espresse nel primo punto;
  4. Ora, il controllo verificherà la presenza di orari con le stesse modalità espresse nel primo punto;
  5. Lunghezza testo, il controllo verificherà la presenza di testo con le stesse modalità espresse nel primo punto;
  6. Elenco, il controllo verificherà la presenza di valori che corrispondano a uno dei valori di una lista predefinita;
  7. Personalizzato, il controllo verificherà che il valore dia soluzione “vero” a una formula logica;
  8. Qualsiasi valore, voce predefinita, quando non è ancora stato creato un controllo, è anche la scelta che elimina il controllo esistente.

Una volta selezionato il tipo di dato, compariranno nella finestra altri menu a tendina o caselle di testo con cui definire con maggior precisione le regole che stiamo creando. Per esempio possiamo impostare una regola che permetta l’inserimento di un dato numerico maggiore di un valore preciso, oppure una data compresa tra due date definite, o un valore lungo meno di 8 caratteri. E così via.

convalida dei dati

Controlli avanzati con la convalida dei dati

Se la convalida si fermasse a questo, sarebbe uno strumento limitato. Invece la convalida accetta l’inserimento di:

  1. formule e funzioni nei campi della definizione delle regole al posto dei valori,
  2. riferimenti a celle delle pagine di Excel, che possono contenere valori, o formule e funzioni,
  3. riferimenti a nomi definiti in Excel, da noi o da strumenti avanzati, che possono indicare valori, intervalli di celle o elenchi.

Questo permette di usare strumenti potenti e rodati come funzioni e gestione dei nomi per realizzare controlli più evoluti.

Nel post precedente abbiamo citato diversi esempi di come si possono impostare controlli avanzati e dinamici, ma viste le richieste ricevute, ti propongo quest’ampia serie di esempi di controlli avanzati.

Esempi di controlli evoluti realizzati con la convalida dei dati

Elenco qui di seguito una serie di controlli più o meno avanzati realizzati con la convalida dei dati e gli altri strumenti di Excel:

  1. Inserire un testo

Se invece di imporre un controllo che permetta l’inserimento di numeri o date, volessimo limitare l’inserimento a stringhe di testo? Si può realizzare usando la funzione VAL.TESTO() impostata direttamente nel campo formula dell’opzione “Personalizzato” del menu “Consenti” della scheda “impostazioni”.

È sufficiente aggiungere: =VAL.TESTO(CellaInserimconControllo)

La funzione verifica appunto se il valore è una stringa di testo e in caso positivo restituisce un valore Vero. CellaInserimconControllo è l’indicazione della cella in cui vuoi installare il controllo (es: A4) che puoi scrivere direttamente, o selezionare con il puntatore del mouse, o indicare scrivendo un nome impostato in precedenza con la gestione dei nomi o da strumenti come tabelle Excel.

Se non conosci la gestione dei nomi o vuoi approfondire l’argomento ti invito a leggere la guida relativa.

Controlli analoghi possono essere realizzati usando le altre funzioni “informative”, come VAL.NUMERO(), VAL.ERRORE(), VAL.VUOTO(), eccetera che verificano la tipologia di valore e restituiscono valore vero o falso a seconda della corrispondenza.

  1. Controlli sui testi

È possibile controllare che un testo inizi o finisca con un certo carattere o stringa. Per esempio se inserisci la formula =SINISTRA( CellaInserimconControllo; 7) = “Stringa”, puoi imporre l’inserimento di valori che iniziano con “Stringa”. Sinistra() è la funzione che estrae una porzione di stringa a partire da sinistra.

In modo analogo usando le altre funzioni di Excel per la gestione dei testi, come SINISTRA(), DESTRA(), LUNGHEZZA(), STRINGA.ESTRAI(), TROVA() è possibile impostare controlli che verifichino porzioni del testo, perfino i singoli caratteri, o la presenza di stringhe specifiche, non solo all’inizio o alla fine, ma in qualunque posizione.

Per esempio, con =SINISTRA(DESTRA(CellaInserimconControllo); 3); 1)= “F” possiamo verificare se il terzultimo carattere del testo è “F”. Le possibilità sono molteplici e permettono di controllare codici aziendali alfanumerici anche carattere per carattere, se necessario.

  1. Controlli multipli

Possiamo inserire come formula del controllo “Personalizzato” espressioni anche molto grandi e complesse che devono restituire un valore vero e falso. Se l’espressione è vera il controllo riconoscerà valido il valore che si vuole inserire, altrimenti bloccherà l’inserimento.

Possiamo inserire controlli multipli usando formule, grazie alle funzioni logiche E(), O(), NON(), eccetera, che permettono di valutare e connettere più espressioni. Per esempio se proviamo a inserire la formula: =O(CellaInserimconControllo =”SI”; CellaInserimconControllo =”NO”), il controllo risultante permetterà solo l’inserimento di SI o NO.

La più utilizzata di queste funzioni logiche è in realtà E(), usata appunto per impostare controlli multipli nella stessa espressione da inserire come formula nel controllo “Personalizzato”. La sintassi è: =E( Espressione1 ; Espression2 ; …. ; EspressionN ), restituirà un valore vero se tutte le espressioni sono a loro volta vere.

Con espressione intendo una formula con funzione che restituisce di base un valore logico vero o falso, o una comparazione tra formule o formule e valori, che può essere vera o falsa. Se vuoi far restituire a una formula vero o falso comparala con qualcosa (=, <, >, ecc), oppure inseriscila come argomento in funzioni che restituiscono vero o falso (es: val.errore()) .

Controlli della convalida

  1. Il valore deve contenere un testo preciso

Talvolta è opportuno installare un controllo che vada a cercare la presenza di singoli caratteri o stringhe all’interno di un testo o un alfanumerico, come per esempio la @ e un punto (.) per verificare che il valore inserito sia probabilmente un indirizzo email.

Per farlo possiamo utilizzare le funzioni TROVA() e VAL.NUMERO(), la prima individua il carattere o la stringa e il secondo trasforma il numero restituito in vero o falso. Per esempio =VAL.NUMERO(TROVA(“@”; CellaInserimconControllo)) darà risultato vero, quindi accetterà inserimenti di testi che contengono la @.

Spesso questo controllo rimanda a una cella esterna per il carattere o la stringa da cercare, In questo modo =VAL.NUMERO( TROVA(CellaconValore;CellaInserimconControllo)). Naturalmente la formula va inserita sempre nel campo “Formula” del controllo “Personalizzato” del menu “Consenti” della scheda “impostazioni”.

  1. Non deve contenere un testo preciso

Se invece vogliamo che il nostro testo non contenga un carattere o una stringa specifica, allora possiamo utilizzare la stessa coppia di formule, ma insieme alla funzione NON(), funziona logica che inverte il risultato vero e falso.

Per esempio =NON(VAL.NUMERO(TROVA(“@”; CellaInserimconControllo))) non permette di inserire testi che contengono il carattere @. Questo può essere utile in molti modi, anche per escludere l’utilizzo di punteggiatura e di caratteri speciali.

Naturalmente per bloccare l’impiego di più stringhe o caratteri dobbiamo replicare la formula usando la funzione E(). Per esempio =E(NON(VAL.NUMERO(TROVA(“@”; CellaInserimconControllo))); NON(VAL.NUMERO(TROVA(“.”; CellaInserimconControllo)))) esclude sia punti che @ dal testo inserito.

Questo sistema funziona per alcuni caratteri o stringhe, ma se abbiamo liste intere di “esclusioni” allora è opportuno passare a strumenti diversi.

Controlli avanzati della convalida dei dati

  1. Deve o non deve contenere uno dei valori della lista

Quando abbiamo una “lista di esclusione” o viceversa una “lista di inclusione” le soluzioni più comode sono due: la funzione MATR.SOMMA.PRODOTTO() oppure le formule matriciali.

La prima soluzione, la funzione MATR.SOMMA.PRODOTTO() è concepita per restituire somme di prodotti numerici in matrici o intervalli di dati, ma in generale è uno strumento utile in situazioni in cui abbiamo liste e matrici di numeri.

Per esempio, possiamo usarla con le funzioni TROVA() e VAL.NUMERO() per elaborare i dati numeri restituiti da TROVA() se appunto trova uno o più stringhe della lista indicata. In questo modo: =MATR.SOMMA.PRODOTTO( –VAL.NUMERO( TROVA( listacaratteridaescludere; CellaInserimconControllo )))=0 generiamo un controllo che esclude la presenza di caratteri e stringhe nella lista indicata (“listacaratteridaescludere”).

Se viene trovato almeno uno degli elementi della lista nel testo che stiamo inserendo, allora il risultato di MATR.SOMMA.PRODOTTO() sarà diverso da 0. Come puoi vedere abbiamo usato una comparazione per restituire un valore vero o falso.

Possiamo usare lo stesso metodo per includere uno o più caratteri di una lista, in questo modo: =MATR.SOMMA.PRODOTTO( – – VAL.NUMERO( TROVA( listacaratteridaescludere; CellaInserimconControllo )))<>0. È importante sottolineare che questo controllo garantisce la presenza di almeno uno dei caratteri, non di tutti, neppure di un numero preciso.

La lista dei valori o caratteri da escludere o includere deve essere inserita nel foglio, magari in una pagina a parte e nominata in modo chiaro per facilitare l’inserimento, oppure indicata con un riferimento classico (es: A5:A25).

  1. Esclude i caratteri della lista

La soluzione più efficace per escludere liste di caratteri, stringhe o valori sono le formule matriciali, cioè formule che eseguono calcoli su più elementi di una matrice contemporaneamente per restituire uno o più valori contemporaneamente. Non spiegherò qui le formule matriciali, ti rimando ai post dedicati, ma soprattutto perché quando le inserisci nei controlli non è necessario farlo con Ctrl+Maius+Invio in quanto la convalida gestisce autonomamente la matrice.

Per esempio questa formula: =CONTA.NUMERI( TROVA( listacaratteridaescludere; CellaInserimconControllo))=0, utilizza le funzioni CONTA.NUMERI() e TROVA() per cercare i caratteri o le stringhe della lista e contare quante volte vengono individuati. La comparazione a 0 fa restituire vero o falso e quindi imposta il controllo per escludere gli elementi della lista.

Come sempre devi inserirlo nel campo “Formula” del controllo “Personalizzato” del menu “Consenti” della scheda “impostazioni”. Se invece vuoi installare la formula in una cella della pagina e inserire nel campo “Formula” del controllo solo il riferimento o il nome che hai assegnato, dovrai ricordarti di farlo con Ctrl+Maius+Invio o non funzionerà correttamente.

Un esempio classico di controllo con Conta.Numeri() e Trova() è questo: =E(VAL.TESTO(CellaInserimconControllo); CONTA.NUMERI(TROVA(listacaratterispecialidaescludere; CellaInserimconControllo))=0), che verifica che l’inserimento sia un testo esente da caratteri presenti in una lista di esclusione.

Naturalmente lo stesso metodo può essere utilizzato per includere uno o più valori della lista, in questo modo, per esempio: =CONTA.NUMERI( TROVA( listacaratteridaescludere;  CellaInserimconControllo))>0.

Controlli di comando

  1. Testo senza caratteri numerici

I controlli con liste di esclusione/inclusione possono essere usati in molti modi diversi, con limiti che dipendono più dalla nostra fantasia che dallo strumento. Per esempio la formula che segue imposta un controllo che verifica che il valore che stiamo inserendo è testo e allo stesso tempo non contenga caratteri numerici.

In questo modo: =E( VAL.TESTO( CellaInserimconControllo); CONTA.NUMERI( TROVA( numerida0a9; CellaInserimconControllo))=0). La prima espressione verifica se il valore è un testo, la seconda verifica se sono presenti caratteri numerici. Questi sono stati posizionati su pagina in una lista in un intervallo di celle, poi nominato “numerida0a9”.

Se la formula non viene inserita nel campo “Formula” del controllo “Personalizzato” del menu “Consenti” della scheda “impostazioni”, ma su pagina, allora è necessario ricordare di inserirla come una formula matriciale con Ctrl+Maius+Invio.

  1. Controlli multipli complessi

Possiamo usare le formule viste finora con la funzione E() per creare controlli multipli complessi, come per esempio =E( SINISTRA( CellaInserimconControllo;2)=”AC”; LUNGHEZZA( CellaInserimconControllo)>=9; CONTA.SE( numerida0a9; DESTRA(CellaInserimconControllo;1))=1); VAL.NUMERO(TROVA(“ST”; CellaInserimconControllo)). Questa espressione determina un controllo che accetta inserimenti di valori che iniziano con “AC”, lunghi almeno 9 caratteri, che finiscono con un numero e contengono la stringa “ST”. Il nome “numerida0a9” è riferito a un intervallo di dieci celle che contengono le singole cifre numeriche di base.

Oppure per esempio, =E( VAL.TESTO( CellaInserimconControllo); LUNGHEZZA(CellaInserimconControllo)>9; VAL.NUMERO( TROVA(“@”;CellaInserimconControllo)); VAL.NUMERO( TROVA(“.”;CellaInserimconControllo)); O( DESTRA( CellaInserimconControllo; 2)=”it”; DESTRA( CellaInserimconControllo; 3)=”com”)). Questa espressione genera un controllo che permette l’inserimento di una stringa di testo di lunghezza maggiore di 9 caratteri, che contiene @ e punto e che termina con “it” o “com”.

Questi vogliono essere esempi di quanto i controlli creati con formule e funzioni possono essere precisi e complessi nella definizione di un controllo multiplo che garantisca il corretto inserimento da parte dell’operatore.

Esempi di controlli avanzati con la convalida dei dati

  1. Controlli particolari sulle date

Nella maggior parte dei casi i controlli su date sono soddisfatti dalle opzioni di base, che prevengono prevalentemente errori di distrazione, rese dinamiche da funzioni relative alle date come, per esempio, OGGI().

Talvolta è però utile andare oltre, per esempio limitando l’immissione delle date ai giorni feriali, come in questo modo: =GIORNO.SETTIMANA(CellaInserimconControllo;2)<6. Non è l’unico modo, ma forse è il più semplice grazie alla funzione GIORNO.SETTIMANA().

Oppure a controlli che si appoggiano anche ad altre celle di inserimento o altri valori, per esempio in questo modo: =O( E( DESTRA(CellaDiversa;3)=”STD”; CellaInserimconControllo>     OGGI+40; CellaInserimconControllo< OGGI+60); E( DESTRA(CellaDiversa;3)=”TP2”; CellaInserimconControllo> OGGI+20; CellaInserimconControllo< OGGI+40) ).

Questa espressione imposta un doppio controllo multiplo basato sul valore di una cella differente da quella del controllo, di solito un altro campo del record che si sta inserendo, andando di conseguenza ad accettare intervalli di dati diversi.

  1. Controlli che si appoggiano ai dati già inseriti

L’esempio precedente dimostra tra l’altro che i controlli si possono appoggiare senza difficoltà anche su altri valori oltre a quello oggetto del controllo, come altri valori del record che si sta inserendo, valori dello stesso campo inseriti in precedenza o altri valori predisposti specificatamente (costanti, valori di configurazione, valori elaborati dalla base dati, eccetera) e di solito inseriti sulla pagina o in pagina apposita a nominati per richiamarli in modo semplice.

Per esempio, =SOMMA(Tabella[Giacenza])+ CellaInserimconControllo <=Limite imposta un controllo che valuta i dati precedenti inseriti fissando un limite (es: 100mila pezzi, capacità massima di un magazzino). Questo limite può essere inserito direttamente nella formula o inserito a parte sulla pagina, come costante o valore calcolato con formule e funzioni.

Oppure = CellaInserimconControllo >=MAX(Tabella [DataInserim]) imposta un controllo che verifica che la data che stiamo inserendo sia sempre maggior o uguale dell’ultima data inserita.

O per esempio, =E( CellaInserimconControllo>= MEDIA(Tabella[MisCampione])– 2*DEV.STD.P(Tabella[Misura]); CellaInserimconControllo<= MEDIA(Tabella[MisCampione])+ 2*DEV.STD.P(Tabella[Misura])) genera un controllo che verifica se il valore che stiamo inserendo è entro l’intervallo di + o – 2 volte la deviazione standard.

I controlli di questo tipo che si appoggiano alle funzioni di elaborazione di dati numerici e non, possono diventare molto complessi e precisi. Per esempio puoi andare a predisporre controlli che si appoggiano su porzioni dei dati di uno o più campi della base dati, valutati tramite funzioni condizionali (es: Somma.Più.SE()), funzioni di database o ricerca, o funzioni matriciali.

Controlli alternativi

  1. Solo valori univoci

Un classico controllo che si appoggia sui dati già inseriti, che prima o poi tutti utilizziamo, è quello che verifica che il valore sia univoco, cioè che non sia già presente tra i valori del campo specifico di tutti i record della tabella.

Per esempio: =CONTA.SE( Tabella[COD]; CellaInserimconControllo)=0 controlla che il valore che vuoi inserire nella cella (CellaInserimconControllo) non sia già presente nel campo “COD” della tabella Excel di nome “Tabella”.

La funzione CONTA.SE() conta i valori e restituisce un numero, ma comparando il risultato con 0 verifichiamo se il valore indicato è presente o meno. Anche in questo caso la formula va inserita nel campo “Formula” del controllo “Personalizzato” del menu “Consenti” della scheda “impostazioni”.

Un esempio di controllo multiplo che richiede l’univocità è questo: =E( VAL.NUMERO(CellaInserimconControllo); CONTA.SE( Tabella[Indice]; CellaInserimconControllo)=0) che verifica che il valore inserito sia un numero e sia unico in relazione ai valori precedenti inseriti.

Conta.Se() potrebbe essere utilizzato anche per limitare l’inserimento a una lista precisa di valori o stringhe, in questo modo =CONTA.SE(ListaValori;B4)>0, ma non fa altro che ricalcare l’opzione “Elenco” senza offrire la lista delle alternative delle cella.

  1. Deve essere inserito un valore

Per costringere a inserire un valore, con qualunque controllo abbiamo impostato, è sufficiente togliere la spunta alla voce “ignora celle vuote” della scheda “impostazioni” della finestra “Convalida dati”. In modo analogo possiamo inserire in ogni controllo la necessità di inserire un valore con questa formula: =NON(VAL.VUOTO(CellaInserimconControllo)).

La cito, ma in entrambi i casi questa possibilità non serve a molto, soprattutto perché non viene percepita dall’operatore se non quando entra in modalità inserimento (digitando o premendo F2) e non cerca di uscirne con invio.

Di solito se un operatore non vuole inserire nulla in un campo non lo seleziona, né lo attiva, e se vuole uscirne senza inserire nulla di solito utilizza Esc, che non permette l’attivazione del controllo. Quindi se hai bisogno di far inserire tassativamente un valore, o utilizzi una macro in Vba, o aggiungi note che evidenziano la tua necessità.

  1. Elenchi dinamici

Gli elenchi della convalida sono utilizzati non solo per facilitare l’inserimento di valori, ma anche per creare facilmente controlli su pagina, senza dover utilizzare i più performanti ma complicati controlli ActiveX (caselle di riepilogo e caselle combinate), per esempio per controllare dashboard, report o altro ancora.

Una volta che iniziamo a usare i controlli anche in questo modo, in breve tempo sentiamo la necessità di rendere gli elenchi dinamici. Ma “dinamici” assume significati diversi a seconda della situazione.

Per esempio dinamici può significare:

posso aggiungere elementi alla lista senza dover reimpostare il controllo?

Come abbiamo già detto nel post precedente, si può fare facilmente usando nel controllo riferimenti o nomi relativi a intervalli più ampi, o meglio ancora trasformando l’elenco in tabella Excel (Ctrl+T), uno strumento dinamico che si adatta agli inserimenti successivi. Di conseguenza quando andrai ad aggiungere un altro valore la tabella lo integrerà e se utilizzerai la notazione delle tabelle Excel (NomeTabella[NomeCampo]) questa indicherà la lista via via sempre aggiornata. Non è l’unico modo, ma è quello più comodo e semplice.

Naturalmente questo richiede di aggiungere manualmente i valori nuovi alla lista prima dell’inserimento.

Posso aggiungere in automatico i valori alla lista, via via che li inserisco nella tabella o nella maschera di inserimento?

Certo, si può fare utilizzando le funzioni SCARTO() e CONTA.VALORI(), la gestione dei nomi di Excel e le tabelle Excel, riferendoci alla tabella dei dati invece che a un elenco a parte, e modificando l’impostazione del controllo. In questo modo:

  1. premi Ctrl+Alt+F3 per richiamare la finestra “Nuovo Nome”,
  2. inserisci nella finestra il nome che preferisci,
  3. al posto del riferimento, inserisci la formula =SCARTO(Cellacon1oRecord;0;0;CONTA.VALORI(Tabella[CampoElenco]);0); Cellacon1oRecord è il campo relativo del primo record della tabella Excel con i dati che inserisci, “Tabella” è il nome della tabella Excel, “CampoElenco” è il campo della tabella Excel da cui vogliamo estrarre l’elenco dei valori univoci;
  4. premi OK
  5. seleziona la cella o l’intervallo in cui vuoi inserire il controllo
  6. clicca sul comando “Convalida dati” della scheda “Dati” della barra multifunzione,
  7. seleziona “Elenco” dal menu “Consenti” della scheda “Impostazioni”,
  8. inserisci il nome esatto che hai creato, in questo modo: =NuovoNome,
  9. se vuoi vai alla scheda “Messaggio di input” e imposta un messaggio personalizzato;
  10. vai alla scheda “Messaggio di Errore” e imposta il tuo messaggio,
  11. poi seleziona “Avviso” dal menù “Stile”,
  12. premi OK e hai finito.

Come vedi è un poco complicato, ma in sostanza:

  1. il nome che hai assegnato si riferirà all’elenco univoco dei valori che hai inserito finora,
  2. il controllo mostrerà il menu a tendina con l’elenco,
  3. se dovrai inserire un nuovo nome la finestra di blocco ti permetterà di farlo,
  4. e in automatico l’elenco si aggiornerà con il nome aggiunto.

Controlli radar

E se invece con “dinamico” intendi altro? Per esempio:

Posso creare elenchi concatenati che mostrano valori diversi a seconda del valore di un’altra cella o campo?

La risposta è sì, certo, lo abbiamo già visto nel post precedente. Possiamo realizzare anche menu dinamici codipendenti o concatenati.

In sintesi per farlo devi:

  1. preparare in una pagina apposita le liste necessarie, cioè la lista principale i cui valori devono essere i titoli delle altre liste secondarie,
  2. dare un nome agli intervalli di cella di ogni lista, i nomi assegnati alle liste secondarie devono corrispondere ai titoli delle liste e quindi ai valori della lista primaria,
  3. realizzare il primo controllo/menu su pagina come già visto, indicando il nome dell’elenco principale (es: =Nome1aLista),
  4. poi realizzare il secondo controllo/menu come già visto, inserendo non un nome, ma la formula =INDIRETTO(RifCella1oMenu); RifCella1oMenu è il riferimento della cella del primo controllo/menu (es: Indiretto(b5)).

Un esempio classico di impiego è quello di maschere di inserimento o controllo in cui abbiamo un elenco regioni e poi un elenco provincie e poi un elenco comuni, cap, eccetera. Naturalmente puoi replicare la concatenazione più volte a seconda delle necessità

Note aggiuntive

Penso sia utile ricordare questi aspetti della convalida dei dati che ne facilitano l’utilizzo:

  1. puoi replicare il controllo copiando la cella che lo contiene in qualunque modo tu lo faccia (es: trascinamento, da comando menu contestuale, ecc); copiare solo formati non copierà i controlli;
  2. puoi cancellare/rimuovere un controllo tramite la finestra relativa, o usando il pulsante “Cancella tutto”, o impostando la scelta “qualsiasi valore” nel menu “Consenti”; puoi farlo anche usando il comando “cancella tutto” della scheda “Home” della barra multifunzione, oppure incollando una cella senza controllo su quella esistente; attenzione copiare solo i formati non cancellerà i controlli;
  3. la voce “Ignora celle vuote” della scheda “Impostazioni” non applica i controlli alle celle senza contenuto;
  4. la voce “Applica le modifiche a tutte le altre celle con le stesse impostazioni” della scheda “Impostazioni” si utilizza per propagare la modifica a tutte le celle che contengono lo stesso controllo;
  5. il comando “Cerchia dati non validi” del menu “Convalida dati” usa i controlli applicati a dati già inseriti nelle celle per evidenziare con cerchi rossi i valori non validi; utile per eseguire i controlli su dati preesistenti; il comando “Rimuovi tutti i cerchi” rimuove l’evidenziazione precedente;
  6. sebbene è consigliabile usare i controlli per bloccare gli inserimenti, puoi modificare la tassatività del controllo per permettere l’inserimento dalla scheda “Messaggio di errore”, menu “Stile”; la voce “Avviso” permetterà l’inserimento dopo conferma tramite pulsante della finestra di errore, mentre la voce “Informazione” lo inserirà subito dando comunicazione dell’invalidità tramite finestra di errore.

Conclusioni

Questa serie di esempi di controlli avanzati vuol essere solo un assaggio delle possibilità che la convalida dei dati offre quando viene utilizzata insieme a formule e funzioni e a strumenti come nomi e tabelle Excel.

La convalida è uno strumento classico, ma potente e flessibile che può essere impiegato per il controllo degli inserimenti, per il data cleaning, per la creazione di controlli interattivi su pagina, per la creazione di messaggistica e altro ancora.

I limiti di tutto ciò, in primo luogo dei controlli automatici di convalida dipendono dai limiti degli strumenti, sì, ma soprattutto dalle nostre competenze. Per questo ti invito a studiare e approfondire l’argomento.

Grazie dell’attenzione e a presto ;D

 

 

PS: Se questo post ti è piaciuto o ti è stato utile, condividilo con gli amici sui social.

Puoi farlo attraverso i pulsanti qui di seguito. Grazie

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.