sintassi COMPRESO TRA in istruzione SE()

58693 views
Skip to first unread message

Marco

unread,
Jul 11, 2003, 4:25:17 AM7/11/03
to
Ciao a tutti
non riesco a fare una cosa banale e sto perdendo un sacco di tempo.


Una cella (A2) mi deve restituire un valore sulla base del valore di
un'altra cella (A1)

I casi sono:

Se A1 < 90 A2 = 22,00

Se A1 è compreso tra 90 e 179 A2 = 20,70

Se A1 è compreso tra 180 e 299 A2 = 17,70

Se A1 è maggiore di 300 A2 = 14,70


Ho scritto in A2:

= SE(A1<90; 22; SE(A1>90<179; 20,70; SE(A1>180<299; 17,6; 14,7)))

se A1 è 89 A2 è esatta
se A1 è 90 A2 mi ritorna = 14,70 come se fosse 300 e oltre

Dove sbaglio???
Marco


Barbara

unread,
Jul 11, 2003, 4:48:25 AM7/11/03
to

"Marco" <mar...@inwind.it> ha scritto nel messaggio
news:NvuPa.164492$Ny5.4...@twister2.libero.it...

> Ciao a tutti
> non riesco a fare una cosa banale e sto perdendo un sacco di tempo.
>
>
> Una cella (A2) mi deve restituire un valore sulla base del valore di
> un'altra cella (A1)
>
> I casi sono:
>
> Se A1 < 90 A2 = 22,00
>
> Se A1 è compreso tra 90 e 179 A2 = 20,70
>
> Se A1 è compreso tra 180 e 299 A2 = 17,70
>
> Se A1 è maggiore di 300 A2 = 14,70
>
>
> Ho scritto in A2:
>
> = SE(A1<90; 22; SE(A1>90<179; 20,70; SE(A1>180<299; 17,6; 14,7)))
>
Ciao Marco,
per evitare la confusione che si crea con tutti quei SE(), ti proporrei una
cosa tipo:
=(A1<90)*20+E(A1<180;A1>=90)*20,7+E(A1>=180;A1<300)*17,7+(A1>=300)*14,7

Comunque, nella tua formula: A1>90<179 ecc. , pensaci... cosa vuol dire? 90
è sempre <179, questa condizione non ti vincola in alcun modo A1 al 179.
Quello che vuoi esprimere tu si scrive:
E(A1>90;A1<179) (se ho capito bene, naturalmente!)

Ciao
Barbara


Marco

unread,
Jul 11, 2003, 5:06:04 AM7/11/03
to

"Barbara" <giuliano.anton...@libero.it> ha scritto nel messaggio
news:#EiW8k4R...@TK2MSFTNGP11.phx.gbl...
I valori in A1 sono quantità
I valori in A2 sono il prezzo

Il prezzo del prodotto è determinato dalla quantità

Se ordinano 100 pezzi io li devo fatturare a 20,70
se ne ordinano 250 io li devo fatturare a 17,60
l'istruzione Se funziona ( l'ho provata tempo fa ma non ricordo precisamente
la sintassi)
Il problema è fargli capire il "COMPRESO TRA"

ps. certo che 90 è sempre minore di 179, ma 91 è maggiore di 90 ma MINORE
di 179.
Io cerco il modo di dirgli che se è minore di 90 mi deve scrivere 22
se è compreso tra 90 e 179 mi deve scrivere 20.7 ecc


Barbara

unread,
Jul 11, 2003, 5:20:38 AM7/11/03
to

Ciao!

> > =(A1<90)*20+E(A1<180;A1>=90)*20,7+E(A1>=180;A1<300)*17,7+(A1>=300)*14,7
> >
> > Comunque, nella tua formula: A1>90<179 ecc. , pensaci... cosa vuol dire?
> 90
> > è sempre <179, questa condizione non ti vincola in alcun modo A1 al 179.
> > Quello che vuoi esprimere tu si scrive:
> > E(A1>90;A1<179) (se ho capito bene, naturalmente!)
> >
> > Ciao
> > Barbara
> >
> I valori in A1 sono quantità
> I valori in A2 sono il prezzo
>
> Il prezzo del prodotto è determinato dalla quantità
>
> Se ordinano 100 pezzi io li devo fatturare a 20,70
> se ne ordinano 250 io li devo fatturare a 17,60
> l'istruzione Se funziona ( l'ho provata tempo fa ma non ricordo
precisamente
> la sintassi)
> Il problema è fargli capire il "COMPRESO TRA"
>
> ps. certo che 90 è sempre minore di 179, ma 91 è maggiore di 90 ma MINORE
> di 179.
> Io cerco il modo di dirgli che se è minore di 90 mi deve scrivere 22
> se è compreso tra 90 e 179 mi deve scrivere 20.7 ecc
>
Scirvi in A2 la formula che ti ho dato prima (è la prima riga anche di
questo messaggio): funziona, fidati!
E COMPRESO TRA si scrive come ti ho fatto vedere: E(A1>90;A1<179).

Non ho scritto la formula con i SE() perché, per il mio modo di ragionare,
mi sembra più lineare quella che ti ho proposto, ma è un fatto soggettivo!
Se a te piace più con i SE, si può fare. Ma intanto prova quella che ti ho
dato.
Se qualcosa non ti torna, fammi sapere!

Ciao
Barbara


enzo

unread,
Jul 11, 2003, 5:50:29 AM7/11/03
to
Ciao Marco,
in alternativa alla soluzione di Barbara:
prepara una tabella (es. in D1:E4)
0 22,0
90 20,7
180 17,7
300 14,7

in B1 incolla la formula; =CERCA.VERT(A1;D1:E4;2)
enzo


>-----Messaggio originale---

>.
>

Marco

unread,
Jul 11, 2003, 9:58:41 AM7/11/03
to

"Barbara" <giuliano.anton...@libero.it> ha scritto nel messaggio
news:#8xX824R...@TK2MSFTNGP10.phx.gbl...
Ho provato la tua soluzione, va benissimo e ti ringrazio.
Non volevo essere scortese, ma mi ero impuntato sulla nidificazione dei SE
visto che l'avevo già fatto una volta..
comunque, l'importante è il risultato


Barbara

unread,
Jul 11, 2003, 10:42:16 AM7/11/03
to

> =(A1<90)*20+E(A1<180;A1>=90)*20,7+E(A1>=180;A1<300)*17,7+(A1>=300)*14,7
> Ho provato la tua soluzione, va benissimo e ti ringrazio.
> Non volevo essere scortese, ma mi ero impuntato sulla nidificazione dei SE
> visto che l'avevo già fatto una volta..

Non ho mai pensato che fossi scortese!
Come avrai visto, nella formula avevo scritto "20" invece di 22, scusami.
Per farmi perdonare, visto che ci tenevi... ti dò anche una versione con i
SE():
=SE(A1<90;22;SE(E(A1>=90;A1<180);20,7;SE(E(A1>=180;A1<300);17,7;14,7)))

Ciao
Barbara


Osvaldo

unread,
Jul 13, 2003, 10:48:52 AM7/13/03
to
Ho fatto il "guardone" e ringrazio tutti delle spiegazioni sulla
questione che interessa anche a me. Però quando rispondete togliete le
righe inutili del quesito, altrimenti per scorrere i post con tutti
quei >>> diventa un problema. Ciao.

fernando cinquegrani

unread,
Jul 13, 2003, 11:25:07 AM7/13/03
to
"Marco" <mar...@inwind.it> ha scritto nel messaggio news:NvuPa.164492$Ny5.4...@twister2.libero.it...

| Una cella (A2) mi deve restituire un valore sulla base del valore di
| un'altra cella (A1)
|
| I casi sono:
| Se A1 < 90 A2 = 22,00
| Se A1 è compreso tra 90 e 179 A2 = 20,70
| Se A1 è compreso tra 180 e 299 A2 = 17,70
| Se A1 è maggiore di 300 A2 = 14,70

tanto per movimentare la cosa:
=INDICE({22;20,7;17,7;14,7};CONFRONTA(A11;{0;90;180;300};1))
.f
fernando cinquegrani
Microsoft MVP
http://www.prodomosua.it


fernando cinquegrani

unread,
Jul 13, 2003, 11:28:35 AM7/13/03
to
"fernando cinquegrani" <f.cinq...@prodomosua.it> ha scritto nel messaggio news:OL$ALMVSD...@tk2msftngp13.phx.gbl...

| "Marco" <mar...@inwind.it> ha scritto nel messaggio news:NvuPa.164492$Ny5.4...@twister2.libero.it...
| | Una cella (A2) mi deve restituire un valore sulla base del valore di
| | un'altra cella (A1)
| |
| | I casi sono:
| | Se A1 < 90 A2 = 22,00
| | Se A1 è compreso tra 90 e 179 A2 = 20,70
| | Se A1 è compreso tra 180 e 299 A2 = 17,70
| | Se A1 è maggiore di 300 A2 = 14,70
|
| tanto per movimentare la cosa:
| =INDICE({22;20,7;17,7;14,7};CONFRONTA(A11;{0;90;180;300};1))

ovviamente A11 è A1:
=INDICE({22;20,7;17,7;14,7};CONFRONTA(A1;{0;90;180;300};1))
.f

genn...@gmail.com

unread,
Dec 31, 2012, 7:03:41 AM12/31/12
to
ciao Barbara
uauuuuuuuuuuuu.....eccolo....grazieeeeee del remember....sei stata chiarissima e funziona tutto....
buon anno
ciao

Scossa

unread,
Jan 1, 2013, 10:19:37 AM1/1/13
to
On 31 Dic 2012, 13:03, gennpe...@gmail.com wrote:
> Il giorno venerdì 11 luglio 2003 10:50:22 UTC+2, Barbara ha scritto:
>
>
>
>
>
>
>
>
>
> > "Marco" <marp...@inwind.it> ha scritto nel messaggio
=14,7+(A1<=300)*3+(A1<180)*3+(A1<90)*1,3

Bye!
scossa

nicholas....@gmail.com

unread,
Aug 11, 2016, 8:29:18 AM8/11/16
to
Scusate ragazzi, io ho usato questa formula molto simile a quella suggerita da
Barbara
=E(I5>=20;I5<17)*-1+E(I5<12;I5>=17)*0+E(I5>=0;I5<7)*1
Alla fine di tutto ciò però dovrei aggiungere al valore uscente dalla formula il valore di un'altra cella, come posso fare?
Grazie in anticipo

paoloard

unread,
Aug 11, 2016, 9:25:46 AM8/11/16
to


ha scritto nel messaggio
news:e57944e3-e856-429e...@googlegroups.com...
Non capisco, puoi definire meglio cosa vuoi fare?
Nella formula hai già la verifica del valore della cella I5. Vuoi aggiungere
la verifica di un'altra cella?
ciao paoloard

paoloard

unread,
Aug 11, 2016, 9:30:05 AM8/11/16
to


"paoloard" ha scritto nel messaggio news:nohucp$mv0$1...@dont-email.me...
Mah, forse.......
Se devi aggiungere un valore di una cella al risultato della formula non
devi fare altro che racchiudere la formula fra parentesi e aggiungere le
coordinate di cella:
=(E..................)+cella.
paoloard

Norman Jones

unread,
Aug 11, 2016, 9:56:36 AM8/11/16
to
Credo che sia opportuno spiegare lo scopo esatto della tua formula
perché il sezioni E(I5>=20;I5<17)*-1 e E(I5<12;I5>=17)*0 restituiranno
sempre 0 in quanto le condizioni nei primi due formule E() si escludono
a vicenda: se la prima condizione sia vera, la seconda debba per forza
essere falsa, in modo che entrambe le prime due formule E()
restituiranno sempre un valore di FALSO. Questo valore di FALSO sarà poi
costretto ad un valore di zero dalla moltiplicazione con un valore
numerico.

Quindi, come scritto,penso che la tua formula possa essere semplificata a:
E(I5>=0;I5<7)*1

Detto questo, al fine di aggiungere il valore di un'altra cella (ad
esempio A1), forse si potrebbe semplicemente utilizzare:
tua formula + A1

Chiaramente mi scappa qualcosa o ti ho capito male.





===
Regards,
Norman

paoloard

unread,
Aug 11, 2016, 12:20:15 PM8/11/16
to


"Norman Jones" ha scritto nel messaggio
news:noi06i$1kf4$1...@gioia.aioe.org...

cut

Chiaramente mi scappa qualcosa o ti ho capito male.

===
Regards,
Norman


Allora siamo in due ;-)
paoloard

Norman Jones

unread,
Aug 11, 2016, 1:08:32 PM8/11/16
to
On 110816 14.56, Norman Jones wrote:
>
> Credo che sia opportuno spiegare lo scopo esatto della tua formula
> perché il sezioni E(I5>=20;I5<17)*-1 e E(I5<12;I5>=17)*0 restituiranno
> sempre 0 in quanto le condizioni nei primi due formule E() si escludono
> a vicenda: se la prima condizione sia vera, la seconda debba per forza
> essere falsa, in modo che entrambe le prime due formule E()
> restituiranno sempre un valore di FALSO. Questo valore di FALSO sarà poi
> costretto ad un valore di zero dalla moltiplicazione con un valore
> numerico.

Se avessi bevuto più acqua con il vino, avrei forse scritto:

Credo che sia opportuno spiegare lo scopo esatto della tua formula
perché le sezioni E(I5=20;I5<17)*-1 e E(I5<12;I5=17)*0 restituiranno
sempre 0 in quanto le condizioni nelle prime due formule E() si
escludono a vicenda: se la prima condizione sia vera, la seconda debba
per forza essere falsa, in modo che entrambe le prime due formule E()
restituiranno sempre un valore di FALSO. Questo valore di FALSO sarà poi
costretto ad un valore di zero dalla moltiplicazione con un valore numerico.





===
Regards,
Norman

paoloard

unread,
Aug 12, 2016, 4:22:20 AM8/12/16
to


"Norman Jones" ha scritto nel messaggio news:noibed$72r$1...@gioia.aioe.org...
Ciao Fratello!
In questi casi, di range con rispettivi valori, io preferisco usare la
formula:
=INDICE({rng1.rng2.rng3.rng4};confronta(I5;{val1.val2.val3.val4};1))
che ha notevoli vantaggi. Per es. quello di consentire una veloce modifica
dei range (aggiungere o togliere) senza la necessità di modificare, nella
formula con E(..), ben 3 funzioni (le due che precedono e quella che si deve
inserire nel mezzo), inoltre, in caso di range estesi esegue il calcolo più
velocemente.
Vedi quanto da me suggerito al proposito in questo NG (senza, ahimè,
considerazione alcuna) :
Da: "Brunix" <brunetto....@gmail.com>
Oggetto: Re: cambiare valore cella in base a dei range
Data: martedì 2 agosto 2016 08:41

Ciao paoloard

Norman Jones

unread,
Aug 12, 2016, 5:52:49 AM8/12/16
to
Ciao Fratello!,

On 120816 9.22, paoloard wrote:
> Ciao Fratello!
> In questi casi, di range con rispettivi valori, io preferisco usare la
> formula:
> =INDICE({rng1.rng2.rng3.rng4};confronta(I5;{val1.val2.val3.val4};1))
> che ha notevoli vantaggi. Per es. quello di consentire una veloce
> modifica dei range (aggiungere o togliere) senza la necessità di
> modificare, nella formula con E(..), ben 3 funzioni (le due che
> precedono e quella che si deve inserire nel mezzo), inoltre, in caso di
> range estesi esegue il calcolo più velocemente.
> Vedi quanto da me suggerito al proposito in questo NG (senza, ahimè,
> considerazione alcuna) :
> Da: "Brunix" <brunetto....@gmail.com>
> Oggetto: Re: cambiare valore cella in base a dei range
> Data: martedì 2 agosto 2016 08:41

Avevo letto le tue risposte in quel thread e sono in pieno accordo con
te per quanto riguarda l'approccio.

Se Nicholas dovesse adottare questo approccio, credo che potesse più
facilmente evitare gli errori di logica che penso siano presente nel suo
adattamento della formula di Barbara.





===
Regards,
Norman

paoloard

unread,
Aug 12, 2016, 7:30:06 AM8/12/16
to


"Norman Jones" ha scritto nel messaggio news:nok69e$nhf$1...@gioia.aioe.org...

Ciao Fratello!,

.....credo che potesse più ...

===
Regards,
Norman


.....credo che potrebbe più ... :-))

ciao paoloard

Norman Jones

unread,
Aug 12, 2016, 8:33:32 AM8/12/16
to
Aaargh!!

Why can't everybody speak English? Ci renderebbe la vita più semplice ;-))

GRAZIE!



===
Regards,
Norman

paoloard

unread,
Aug 12, 2016, 8:43:17 AM8/12/16
to


"Norman Jones" ha scritto nel messaggio
news:nokfmp$17a6$1...@gioia.aioe.org...
La renderebbe molto ma molto più complicata a me :-)
paoloard



===
Regards,
Norman

paoloard

unread,
Aug 12, 2016, 8:49:10 AM8/12/16
to


"paoloard" ha scritto nel messaggio news:nokg94$k4b$1...@dont-email.me...



........
Why can't everybody speak English? Ci renderebbe la vita più semplice ;-))

GRAZIE!

La renderebbe molto ma molto più complicata a me :-)
paoloard


Colpa della Torre di Babele! Ah sciagurati che vollero arrivare a Dio!
Altrimenti oggi parleremmo tutti l'italiano ;-))

paoloard

Norman Jones

unread,
Aug 12, 2016, 8:57:45 AM8/12/16
to
On 120816 13.49, paoloard wrote:
>
>
> Colpa della Torre di Babele! Ah sciagurati che vollero arrivare a Dio!
> Altrimenti oggi parleremmo tutti l'italiano ;-))--


ROTFL o, nel mondo universale italian, RSPR! ;-)



===
Regards,
Norman

Norman Jones

unread,
Aug 12, 2016, 8:59:42 AM8/12/16
to
On 120816 13.57, Norman Jones wrote:
> ROTFL o, nel mondo universale italian, RSPR! ;-)


italiano ...



===
Regards,
Norman

joca...@gmail.com

unread,
Jun 14, 2018, 9:12:35 AM6/14/18
to
Posso approfittare?
a me questa formula non funziona
=SE(H7<60%;"KO";SE(E(H7>60%<80%);"Liv.1";SE(E(H7>80%<85%);"Liv.2";SE(E(H7>85%<90%);"Liv.3";SE(E(H7>90%<95%);"Liv.4";SE(E(H7>95%<100%);"Liv.5";SE(H7=100%;"Liv.6";SE(H7>100%;"Liv.7"))))))))

solo nei valori "compreso", negli altri si.

qualcuno sa dirmi perché?

Bruno Campanini

unread,
Jun 14, 2018, 10:12:26 AM6/14/18
to
joca...@gmail.com brought next idea :
Secondo te una roba così:
H7>60%<80%
cosa dovrebbe significare?

Se vuoi indicare che H7 è compreso fra 0.6 e 0.8 dovrai scrivere:
0.6<H7<0.8
0.6<=H7<=0.8
ciò è matematicamente corretto ma non è accettatto da Excel.

Excel capisce questo:
=IF(AND(H7>0.6, H7<0.8),,)

Bruno

Norman Jones

unread,
Jun 15, 2018, 3:52:29 AM6/15/18
to
Ciao jocar6369,
Oltre alla spiegazione di B runo, forse, prova invece qualcosa del genere:
=CERCA(H6;{0\0,6\0,8\0,85\0,9\0,95\1\1,001};{"KO"\"Liv.1"\"Liv.2"\"Liv.3"\"Liv.4"\"Liv.5"\"Liv.6"\"Liv.7"})



===
Regards,
Norman

Ammammata

unread,
Jun 15, 2018, 5:02:50 AM6/15/18
to
Il giorno Thu 14 Jun 2018 03:12:33p, ** ha inviato su
microsoft.public.it.office.excel il messaggio news:a8bc818b-28c7-47ba-b334-
76f937...@googlegroups.com. Vediamo cosa ha scritto:

> "Liv.3";SE(E(H7>90%<95%);"Liv.4";SE(E(H7>95%<100%)

dopo che avrai corretto la sintassi come suggerito da Bruno, fai attenzione
che con questi parametri il valore esattamente preciso 95% non rientra né
nel primo nè nel secondo caso

uno dei due deve avere anche l'uguale =

H7 <= 95% nel primo (liv.3)

oppure

H7 >= 95% nel secondo (liv.4)

stesso discorso per gli altri punti di discriminazione: 60 80 etc
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
>>>>> http://www.bb2002.it :) <<<<<
........... [ al lavoro ] ...........

Morr.o

unread,
Sep 1, 2022, 9:56:20 AMSep 1
to
weeeee come si usa exelll weee forza napoli

Reply all
Reply to author
Forward
0 new messages