Vincenzo Fatone
Blog personale e non solo
Blog personale e non solo
Nel post precedente ho mostrato la funzione logica SE e la sua applicazione in un ipotetico calcolo di commissioni su una soglia predefinita.
Oggi vi voglio mostrare un altro esempio ed esplorare altre possibili applicazioni, soprattutto usando altri operatori logici.
Qui sotto potete vedere l’immagine del foglio di lavoro con l’esempio odierno.
La prima cosa da notare è che nella colonna D sono presenti soltanto due aliquote, di conseguenza la condizione a cui fare riferimento è la presenza o meno del valore percentuale nelle celle di tale colonna.
Attivate E4 ed iniziamo ad inserire la nostra funzione SE.
L’obiettivo è quello di calcolare il prezzo unitario più il valore dell’IVA ed ottenere l’importo, altrimenti riportare soltanto il prezzo unitario.
Inserite la funzione SE cliccando sul pulsante Somma automatica sulla Ribbon. Nella casella del test inseriremo questa notazione: D4<>”" (la cella D4 è diversa da valore nullo).
Tale notazione indica che nella cella deve essere verificata la presenza di un qualsiasi valore. Ho scelto questa impostazione perché, a puro scopo di esempio, potrebbe essere riportata una percentuale diversa da 20%. Il caso sarebbe insolito, ma lo scopo didattico mi porta a mostrarvi un ventaglio di possibilità maggiori.
Nella casella Se_vero selezionare, di conseguenza, la cella C4, inserire l’asterisco e selezionare la cella D4, inserire il simbolo di somma e selezionare ancora C4. C4*D4+C4. Si calcola l’IVA e di somma al prezzo unitario per ottenere l’importo di quel prodotto.
Nella casella Se_falso selezionare C4 perché venga riportato soltanto il prezzo unitario nel caso non vi sia alcuna aliquota nella colonna preposta.
Il risultalto completo dell’operazione, visualizzabile nel suo intero sulla barra della formula, è =SE(D4<>”";C4*D4+C4;C4).
Il significato, in linguaggio naturale: se il contenuto della cella D4 è diverso da un valore nulla, moltiplica il P.U. per l’aliquota e sommalo al P.U., altrimenti riporta soltanto il P.U.. Normalmente questa “traduzione” di una formula o funzione aiuta a comprendere meglio ciò che questa fa.
Come dicevo nel post precedente, la parte fondamentale è la logica di base ad essere importante. I calcoli, naturalmente, dipendono dai risultati che volete ottenere con tale funzione.
In questo esempio è possibile approcciarsi anche in modo diverso.
Il test potrebbe anche assumere questa notazione: D4=”".
In questo modo si inverte il test e, di conseguenza, andranno invertiti i contenuti delle caselle Se_vero e Se_falso.
La funzione risultante sarà: =SE(D4=”";C4;C4*D4+C4).
Due modi di procedere, entrambi corretti. L’utente può, quindi, scegliere il modo di operare più semplice secondo il suo punto di vista. L’importante è che la logica di base rimanga coerente.
Ancora una volta invito gli eventuali utenti alle prime armi a contattarmi in caso di difficoltà, o che volessere porre delle domande, attraverso i commenti al post o scrivendomi una mail tramite il form alla pagina contatti.
18 novembre 2009 - 16:55
Buongiorno, ho un problema con una formula, usando la funzione “se” devo inserire un numero, funziona tutto, però il numero che ho inserito nella formula mi compare anche sul foglio. come devo fare per renderlo invisibile? grazie
18 novembre 2009 - 19:50
=SE(E1=1;C1*0,4+15;C1*0,8+20), questa è la formula che voglio inserire, ma dal foglio non voglio che si vedano il “15″ e il “20″. grazie
19 novembre 2009 - 08:08
Buon giorno Laura, e benvenuta sul sito.
Immagino che tu intenda che non vuoi che si veda la formula quando un qualsiasi utente visualizza il foglio di lavoro, così da non sapere quali sono gli argomenti che la compongono, ma che visualizzino soltanto il risultato del calcolo.
Nella versione 2007 di Excel è necessario che tu applichi la proprietà Nascosta alla cella. Seleziona la cella, per esempio la F1, vai alla scheda Home e attiva il comando per accedere alla scheda Protezione della finestra Formato celle cliccando sul pulsante di fianco alle scritte “Allineamento” o “Carattere” nei riquadri della Ribbon. Nella scheda Protezione trovi l’opzione Nascosta che deve essere attivata. Premi sul pulsante OK ed esci dalla finestra.
A questo punto vai sulla scheda Revisione e clicca sul comando Proteggi foglio ed inserisci una password. Una volta inserita ti verrà chiesto di reinserirla per conferma. Appena clicchi sul pulsante OK nella finestra, nella barra della formula non sarà più visualizzata la formula, ma soltanto il risultato nella cella, F1 che avevo preso ad esempio.
Naturalmente, se le formule da nascondere sono più d’una, prima attivi l’opzione Nascosta a tutte le celle che ti interessanto e poi attivi la protezione del foglio.
Nella versione 2003 i comandi sono in posizione diversa, ma hanno stesso nome e stessa funzione. Se hai bisogno delle indicazioni, scrivimi.
21 novembre 2009 - 17:12
Anzitutto grazie per avermi insegnato “Proteggi foglio”, ora le scrivo la formula: =SE(BT4=1;BA4*0,8+20;SE(BU4=1;BA4*0,4+15)), dove BA4 è il risultato della differenza tra due numeri. Cosa succede nella cella in cui vado a scrivere la formula (BG4)? mi viene fuori Falso oppure il 20 o il 15. Vorrei che in BG4 non ci fosse nulla fino a quando non scrivo 1 in BT4 o BU4, penso di essere stata chiara? Grazie comunque.
21 novembre 2009 - 18:45
Buona sera Laura.
Prego. E’ stato un piacere.
La funzione restituisce falso nel momento in cui BT4 e BU4 sono entrambe vuote.
E’ sufficiente completarla in questo modo: =SE(BT4=1;BA4*0,8+20;SE(BU4=1;BA4*0,4+15;”")). In quella postata manca la dichiarazione per l’argomento “Se_falso” della seconda funzione SE che mette un valore nullo in caso manchino i dati di BT4 e BU4.
Comunque credo ci sia ancora qualcosa che non va. Intendo che, in questo modo, se in entrambe le celle, BT4 e BU4, si trovasse contemporaneamente il valore 1, verrebbe svolta comunque l’operazione della prima funzione SE, quindi calcolata col valore 20.
Se si vuole, invece, che il calcolo con il valore 20 sia eseguito soltanto quando il valore 1 è presente nella cella BT4, e solo in questo caso, e il calcolo con il valore 15 quando 1 è presente nella cella BU4, allora sarà necessario fare una cosa diversa.
Si deve inserire una funzione E nel test delle due funzioni SE e porre le opportune condizioni:
=SE(E(BT4=1;BU4=”");BA4*0,8+20;SE(E(BU4=1;BT4=”");BA4*0,4+15;”"))
In questo modo, quando BT4 ha il valore 1 e BU4 è vuota, il calcolo viene effettuato con il valore 20.
Nel caso il valore 1 sia presente nella cella BU4, ma non nella cella BT4, il calcolo sarà eseguito con il valore 15.
Se non sono presenti valori, o se sono presenti in entrambe le celle, la cella BG4 rimane vuota.
Tutto ciò, naturalmente, se ho interpretato bene ciò che si vuol ottenere. Altrimenti è stato solo un esercizio divertente.
Spero di aver indicato in modo sufficientemente chiaro le diverse possibilità. In caso contrario mi trovi qui.
P.S. uno dei commenti che mi hai postato è la copia della mia prima risposta. Non l’ho postata per evitare duplicati inutili.
9 dicembre 2009 - 13:31
Grande, ha centrato perfettamente il mio problema, nella mia ignoranza non sapevo dell’ esistenza della funzione ” E “, la ringrazio di cuore e le auguro Buon Natale e Felice 2010!!
9 dicembre 2009 - 15:00
Molto bene Laura. Ne sono felice.
Facendo le prove ho notato quel problemino e mi è sembrato logico proporre una soluzione.
Molte grazie per gli auguri. Buon Natale e felice anno nuovo.
30 giugno 2010 - 16:20
Vista la tua competenza in materia…
Ho scritto la funzione sottoriportata, ma vorrei che non fosse riportato alcun valore negativo. Al suo posto uno 0 sarebbe l’ideale
=SE(J2>36<45;0;(D3-45))
30 giugno 2010 - 19:25
Ciao Gianni, e ben venuto sul mio blog.
Se ho capito il tuo problema, la funzione che hai scritto non è sufficiente. Prova con questa:
=SE(E(J2>36;J2<45);0;D3-45)
In questo modo, però, ogni numero scritto in J2 superiore a 45 ti darà sempre la sottrazione di D3-45, a meno che tu non la cambi o che sia un risultato di una formula. Comunque darà sempre un risultato positivo.
Spero di aver colto il tuo problema, in caso contrario dammi qualche informazione in più e vedo di trovare una soluzione.
Ciao
Vincenzo
2 luglio 2010 - 19:15
grazie per il benvenuto, sopratutto grazie per la tua competenza.
al momento sto testando il foglio ai vari “scenari”; sembra che funzioni…ti faccio sapere
3 luglio 2010 - 10:39
Buongiorno Gianni,
mi fa piacere che funzioni. Fammi sapere se si adatta a tutte le situazioni in cui devi applicarla.
A presto e buon week end.
4 luglio 2010 - 15:21
testando testando nascono problemi. In effetti la tua funzione andava bene…poi sono nati altri problemi.
In sintesi (estrema) la differenza tra due numeri da un risultato che andrebbe “scomposto” in base a parametri predefiniti. Mi servirebbe per gestire una fattura dell’ente che mi eroga l’acqua.
Hai mai testato o creato qualcosa di simile?
Forse sbaglio funzione (mi perdo nella nidificazione).
5 luglio 2010 - 07:41
Buongiorno Gianni.
Rispondendo alla tua domanda, no, non ho mai creato un’applicazione del genere. Però, come tu dici, i parametri per la “scomposizione” del risultato sono definiti, quindi basta applicarli.
Sarebbe utile avere il file su cui stai facendo i test, magari al netto di dati sensibili o riservati, s’intende. E, naturalmente, i parametri per la scomposizione del risultato.
Prova a mandarmi questo materiale e vedo come posso aiutarti.
A presto e buona giornata.