Verificare se una cella Excel è vuota o piena per applicare formula

Giorgio Borelli

Simbolo ExcelUn'esigenza molto sentita dagli utilizzatori del foglio di calcolo di casa Microsoft, il noto Excel, è quella di applicare formule a celle solo se determinate celle siano piene e non vuote. Inutile applicare una fromula se la cella quella che fornisce il dato è vuota. Ovviamente per verificare se la cella è piena o vuota in Excel, dovremmo avvalerci di una espressione condizionale, ma nulla di particolarmente complicato, basta davvero poco, andiamo a scopire come fare.

Supponiamo di trovarci nella situazione rappresentata in figura:

formula potenza quadrato excelOssia nella colonna A inseriamo il valore, ed in quella B, una semplicissima formula di elevamento al quadrato (ossia il valore della cella adiacente a sx per se stessa "=A2*A2").

Il punto su cui concentrarci non è tanto la formula o la sua complessita, ma se ricopiassimo la formula in una o più delle celle sottostanti della colonna B, come facciamo a verificare la presenza di un valore nella prima colonna (quella adiacente a sx) in modo da applicare la formula Excel solo quando la cella e piena? Diversamente la colonna B deve presentare una cella vuota e non deve applicare la formula.

Ottenere questo comportamento è molto semplice, dobbiamo avvalerci di una espressione condizionale, ovvero un "if else" in un linguaggio di programmazione, l'equivalente Excel risulterebbe così:

=SE(A2<>"";A2*A2;"")

La formula Excel di cui sopra che andremo a scrivere poi nella barra della formula, và letta in questo modo: "Se la cella A2 è diversa da vuota (stringa vuota) allora applica la formula A2*A2, diversamente scrivi una stringa vuota."

In maniera pratica, se le celle della colonna A sono piene, ossia viene scritto al loro interno un valore (numerico), nella cella adiacente della colonna B verrà applicato il valore della formula (in questo caso il quadrato), diversamente se la cella è vuota nella cella adiacente verra scritta una stringa vuota.

In modo ancora più compatto e forse anche più corretto ed elegante possiamo scrivere la condizione di verifica di una cella excel vuota o piena per applicare una formula o meno anche in questo modo

=SE(A2<>"";A2*A2;)

Cosa cambia rispetto alla formula precedente? Non scriviamo nella condizione il terzo parametro, ovvero tradotto in codice se la cella Excel è diversa da vuota applica la formula diversamente non fare nulla.

Semplice no? Se qualcuno desidera aggiungere qualcosa su "Come verificare se una cella Excel è vuota o piena per applicare una formula", può farlo liberamente tramite lo spazio dei commenti, ogni vostro intervento sarà gradito.

Categorie: Office | Excel

Tags: ,

Commenti (29) -

Ch&#232;ri&#232; Ligniere
Chèriè Ligniere says:

Sig. Borelli non ho parole, mi ha risolto un problema che studiavo da giorni.
Veramente bravo grazie
Chèriè di Mestre

Rispondi

Ma prego Chèriè,
torni pure quando vuole, è sempre la benvenuta, Giorgio.

Rispondi

Ch&#232;ri&#232; Ligniere
Chèriè Ligniere says:

La ringrazio ancora Sig. Borelli,  ora come già detto dovrei aggiungere alla formula che sotto riporto, un SE il risultato  supera i 500 allora inserisci alla cella la cornice.
Riporto la formula: =SE(A2<>"";(A2-A1)*(8370);"")

praticamente è una formatazione condizionale.
Grazie ancora.
Chèriè

Rispondi

Per applicare una formattazione condizionale alle celle di Excel deve procedere in questo modo:

- selezioni la cella o le celle interessate alla formattazione, o nulla per applicarla a tutte le celle del foglio
- vada nella scheda Home-> clicchi su Formattazione Condizionale
- dal menù selezioni la voce "Regole evidenziazione celle" e poi "maggiore di"
- a questo punto si apre una nuova finestra, nel primo campo metterà 500, nel secondo (un menù a discesa) selezioni la voce "Formato personalizzato"
- le si aprirà la finestra di Formattazione celle di Excel, selezioni il bordato o quello che ritiene più idoneo alla formattazione del suo foglio di calcolo.

Spero che questo basti, saluti Giorgio.

Rispondi

Ch&#232;ri&#232; Ligniere
Chèriè Ligniere says:

E' da ieri che ci provo, quando inserisco la formula condizionale, tutte le celle della colonna si incorniciano (e questo non va bene)
poi inserisco un numero inferiore di 500 allora sparisce la cornice (questo va bene)
Mi chiedo,  ma perché devo tenermi tutta la colonna incorniciata se non c'è alcun numero?
Ho capito ora il problema: nelle celle ci sono le formule precedenti =SE(E296<>"";(E296-E295)*(8370);"")
ho fatto una prova in una colonna vergine e tutto funziona bene.
Come risolvere?  
Ringrazio Chèriè

Rispondi

Vai in Home->Formattazione Condizionale->Nuova Regola.
Nella finestra che si apre dal riquadro "Selezionare un tipo di regola", scegli la voce "Utilizza una formula per determinare le celle da formattare", a questo punto nella textbox sottostante alla voce "Formatta i valori per cui questa formula restituisce vero" inserisci la seguente formula:
="(E296-E295)*(8370)>500"
Infine dal bottone formato scegli il bordato o la formattazione che intendi dare alle celle e confermi con OK.

Adatta questo suggerimento al tuo foglio e alle celle coinvolte, questo dovrebbe bastare, saluti Giorgio.

Rispondi

Ch&#232;ri&#232; Ligniere
Chèriè Ligniere says:

Sig. Borelli tutto bene, ringrazio molto.
Chèriè

Rispondi

Probabilmente per la nuova regola di formattazione condizionale in excel è servita una espressione in AND, ma credo che ci siamo capiti Smile

l'importante è aver risolto, prego, saluti Giorgio.

Rispondi

Ch&#232;ri&#232; Ligniere
Chèriè Ligniere says:

Sig. Borelli come forse ricorderà ho tre colonne con numeri e ai lati due colonne strette grigie che le contengono.
Vorrei automatizzare anche queste colonne grigie con: =SE(in D6 c'è un numero)allora formata in grigio chiaro.
Invio a parte un copia incolla.
Ringrazio infinitamente.
Chèriè Ligniere Vart          

Rispondi

Sig. Chèriè deve procedere con la formattazione condizionale con la creazione di una nuova regola condizionale così come le ho indicato l'ultima volta. Ne faccio un breve riepilogo:

- Selezionare la prima cella alla quale vuole applicare la condizione di formattazione (ad es. C6)
- Andare sulla scheda Home->Formattazione Condizionale->Nuova Regola
- Scegliere la voce utilizza Utilizza una formula per determinare le celle da formattare
- Dal bottone formato può impostare la formattazione desiderata
- IMP: nel riquadro della formula deve scrivere invece la seguente: =SE($D6>0;$D6<>"")
- Confermi il tutto

A questo punto la cella C6 sarà formattata se e solo se è maggiore vi è un numero > 0 e se è diversa da cella vuota (espressione condiz in and, devono essere entrambe vere).
Adesso, per applicarle la stessa formattazione a tutte le celle che le interessano deve invece procedere così:

- Vada in Home->Formattazione Condizionale->Gestisci regole->Questo foglio di lavoro (menù a tendina in alto)
- Seleziona la regola precedentemente creata e nel box si applica a inserisci: $C6 : $C24 (per applicarle dalla cella C6 a C24, se le serve sino alla cella 100 metterà C6 : C100)
- Infine Applica e conferma

Questo è quanto, spero basti, la saluto Giorgio.

Rispondi

Buonasera ho un problema di celle vuote.
Stavo leggendo il post ma il mio problema è diverso.
Le spiego ho una mole di dati i quali presentano in una colonna i comuni e nell'altra i corrispondenti valori ma il problema è che non tutti i comuni hanno valori nel nuovo foglio difatti dovrei avere in corrispondenza di tutti i comuni i valori corrispondenti e quindi anche quelli con valore uguale a zero (che però mancano nel foglio iniziale).
Come posso risolvere?
Grazie  

Rispondi

Gentile Mari, dice bene, il suo problema è diverso da quello descritto in questo articolo.
Lei ha bisogno di applicare una formula a tutta la colonna Excel, pertanto la invito a leggere quest'altro post:
www.informaticando.net/.../...utta-la-colonna.aspx

Può benissimo scrivere nella formula (da applicare poi a tutta la colonna) un qualcosa del genere: "Se il comune non ha alcun valore allora metti zero".

Spero che questo era quello che cercava, se ha ancora bisogno non esiti a commentare nuovamente, magari in quell'altro articolo su Excel più attinente, saluti Giorgio.

Rispondi

Buongiorno,
Ho un piccolo problema che magari lei può risolvermi.
Vorrei creare un codice che riconosce la presenza di un colore in una riga e riporti in un'altra tabella questo valore sotto forma di un altro colore.
Per semplificare, tabella 5 righe e 3 colonne. Le 3 colonne hanno un valore diverso le une con le altre. Se ad ogni riga segnaliamo colorando la cella la scelta di una delle tre colonne, come faccio a riportare questa scelta su una tabella nuova segnando la scelta con un nuovo colore??

Spero mi possa aiutare. Grazie mille.

Enrico.

Rispondi

Buongiorno a te Enrico,
che io sappia non vi è una funzione predefinita in Excel che faccia un controllo sul colore presente in una cella.

Per gestire correttamente questo controllo, deve agire tramite codice inserendo un modulo VBA (Visual Basic for Applications) e controllare con una condizione if il valore del colore della cella tramite la proprietà ColorIndex della cella stessa.

Mi spiace, ma non vedo altre soluzioni.

Rispondi

salve sig. Giorgio Borrelli,
la mia domanda è la seguente: cercavo appunto un modo di applicare la condizionesulle celle vuote  a formule che prendono dati da tre colonne e siccome i dati nelle tre colonne sono dati random a volte può capitare che una stessa formula abbia più valori appartenenti a celle vuote.Come faccio a dare la condizione dentro una unica formula su più celle vuote appartenenti a tre colonne differenti per esempio A,B,C ? (spero di essermi spiegato)

Rispondi

Salve a te Luca,
se ho capito bene non penso sia difficile, basta usare gli operatori booleani, nel tuo caso OR, che è vero quando almeno una condizione è vera, quindi rifacendoci all'esempio dell'articoloper la tua formula Excel dovresti scrivere qualcosa del genere:
=SE(O(A1="";B1="";C1="");"";A2*A2)
che tradotto in pseudo linguaggio significa: se una delle A1,B1 o C1 è vuota (="") allora scrivi una stringa vuota, altrimenti fai il quadrato della cella A2.
Se fa delle prove ed adatta questo esempio di OR in Excel alle sue esigenze, sono certo che riuscirà ad ottenere il comportamento voluto; diversamente non esiti a commentare nuovamente, vedrò di esserle utile.

Rispondi

salve sig.Giorgio Borrelli,
Infatti penso che mi abbia risolto un problemone; il mio intento era quello di creare la condizione che se almeno uno degli elementi presi dentro la formula appartensse a una cella vuota, excel avrebbe dovuto restituire una cella vuota .( mentre lui di default le calcola come celle in cui il valore all'interno è =0 e questo spesso comporta che in tabelle enormi tipo 20x20 può succedere che all'interno si becchino valori che sembrano esatti ma in realtà non lo sono con errori enormi ) per farla breve ho applicato la forma suggerita da lei del tipo :

=SE(E(K62<>"";K68<>"");(K62-K68);"")

ovvero fai il calcolo solo se entrambi i valori non sono nulli altrimenti ridammi una cella vuota.

Grazie mille

Rispondi

Complimenti per la comprensibilità, sto implementando il mio foglio x calcolare le presenze nelle nostre 2 case vacanze a Roma, e le tue spiegazioni sono state utilissime. Se vuole fare un soggiorno a Roma ci sarà uno sconto speciale solo a Lei riservato.

Rispondi

Ohhhh Magari , una vacanzina ci vorrebbe proprio Smile

Grazie molte, questi commenti fanno sempre gran piacere e gratificano il proprio lavoro. Felice di esserti stato utile Alberto, spero in futuro di scriverne altri.

Grazie per l'invito, se vengo nella capitale lo terrò sicuramente in considerazione.
Torna pure a commentare quando vuoi, saluti Giorgio.

Rispondi

Gualtiero
Gualtiero says:

Nella colonna D2 ho un valore così come nella colonna E2 per cui in F2 metto il risultato
=SE(D2<>"";D2-E2;"") ed è tutto OK.
Se però il valore della colonna D2 è nullo, come faccio a eseguire ugualmente il calcolo che mi darà, in questo caso, un valore negativo ?
Grazie anticipatamente

Rispondi

Ciao Gualtiero,
la tua domanda è molto semplice, partiamo però dalla condizione espressa nella tua formula Excel posta in F2, tu scrivi:
Se D2 è diversa da cella vuota allora fai la sottrazione D2-E2, altrimenti scrivi una stringa vuota "".
Basta modificarla in questo modo:
=SE(D2<>"";D2-E2;ASS(D2-E2))
dove al posto della stringa vuota nell'ultimo parametro ho messo il valore assoluto della differenza con la funzione ASS, quindi anche in caso di valore nullo o vuoto in D", in F" scriverà sempre il valore di E2, quindi nella formula avresti anche potuto scrivere più semplicemente il valore di E2 senza il valore assoluto.

Ciao ciao Giorgio Wink

Rispondi

Gualtiero
Gualtiero says:

ho inserito una nuova formula che funziona perfettamente ed è : =SE(O(D2="";D2<>"";E2="";E2<>"");(D2-E2);"")
Solo che se il saldo tra le due celle è 0 mi scrive 0,00
ed io non vorrei scritto nulla

Rispondi

Potresti aggiungere la condizione che la differenza deve essere esguita solo se D2>E2 (strettamente maggiore) in modo tale che il risultato (saldo) non sarà mai uguale a zero o negativo.
Spero ti sia di aiuto, ciao.

Rispondi

Gualtiero
Gualtiero says:

NO, il risultato può essere anche negativo perchè ho solo il valore nella E2. IL problema è che se non ho nessun valore in d2 e in E2 non deve scrivere in F2 il valore 0,00
Grazie

Rispondi

Caro Gualtiero,
la logica condizionale è sempre la stessa, basta saperci giocare ed adattarla alle proprie esigenze, nel tuo caso nessuno ti vieta di annidare un'ulteriore condizione (SE) all'interno della tua formula Excel, io la scriverei cosi:
=SE(D2<>"";D2-E2;SE(D2-E2=0;"";D2-E2))

Vedi il secondo "SE" all'interno del terzo parametro del primo "SE", non ho fatto altro che verificare che se la differenza è uguale a zero allora scrivo "" (stringa vuota) diversamente fà la sottrazione che può essere anche negativa.

Questa formula è testata e funzionante, se ti và e ritieni che hai trovato informazioni utili, un mi piace sulla pagina fb sarebbe gradito, ciao.

Rispondi

Gualtiero
Gualtiero says:

Grazie infinite sig.Giorgio Borrelli,
ho inserito le modifiche da Lei apportate e tutto funziona perfettamente.
Ancora un grazie sentito per la sua disponibilità

Rispondi

Bene Gualtiero,
felice di esserti stato utile, alla fine un if annidato in una formula Excel non è nulla di complicato.

Prego, con una 'r' sola lo preferisco cmq, mi chiamo Borelli con una 'r', ma ci sono abituato Smile

Torna pure a commentare quando vuoi, saluti Giorgio.

Rispondi

Buonasera,

la mia necessità, per un file per la registrazione degli interventi di soccorso di una associazione, è questo:

- In una cella scrivo un valore che identifica il mezzo sul posto. Il valore può essere vario: A4... A5... ecc... quindi credo che il riferimento "diverso da zero" possa andare bene.

La mia necessità è che nella cella sottostante o laterale (poi vedo come impaginarlo) compaia l'orario in cui io inserisco il valore A4-A5 che ovviamente non cambierò più.

Ho provato con la sua formula e va bene ma se la metto su caselle adiacenti indicando altri mezzi mi cambia tutti gli orari.

Sarebbe così gentile da aiutarmi? Mi scusi se non uso termini prettamente tecnici e corretti.

Grazie mille!

Roberto

Rispondi

Gentile Roberto,
nella cella excel adiacente o sottostante per ottenere l'orario corrente, devi usare la funzione =OGGI()
Ma questo credo che tu l'abbia fatto già, per applicare la formula a tutte le colonne adiacenti puoi seguire queste metodologie:
www.informaticando.net/.../...utta-la-colonna.aspx
Ad ogni cella deve corrispondere la formula nella casella adiacente, altrimenti è normale che ti sballi l'orario.

Spero di aver capito bene e di esserti stato d'aiuto, se dovesse servire commenta pure nuovamente, ciao.

P.S. se usi caratteri alfanumerici come "A4" o "A5" per indicare i mezzi, il riferimento come lo chiami tu deve essere diverso da stringa vuota ( ...<>"" ) e non diverso da zero Smile

Rispondi

Aggiungi Commento

biuquote
  • Commento
  • Anteprima
Loading