Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

funzione MIN con presenza di valori uguali a zero

2,233 views
Skip to first unread message

SiNi

unread,
Sep 23, 2009, 12:46:44 PM9/23/09
to
Salve a tutti.
Ho il seguente problema: ho 3 valori in 3 celle non contigue per esempio: A1
B2 B5
Io dovrei fare in modo di trovare il minimo tra questi valori presenti nelle
celle sapendo per� che ci potrenbbe essere come valore anche lo zero (che
come logico dovrebbe essere ignorato)

Quindi se A1 = 4 B2= 0 B5=2 il risultato dovrebbe essere 2
e cmq se in due celle i valori sono 0 per esempio A1=0 B2=1 B5=0 il
risultato dovrebbe essere 1.

Qualcuno ha un'idea?
Ho guardato anche qui: http://support.microsoft.com/kb/60116/it
ma non fa al caso mio perch� i valori non sono contigui.

Un ciao a tutti e grazie.
SiNi

ivano

unread,
Sep 23, 2009, 2:21:14 PM9/23/09
to

"SiNi" <a...@a.it> ha scritto nel messaggio
news:Oj0Cx1G...@TK2MSFTNGP02.phx.gbl...

Ciao,
una prima idea:
=MIN(SE(B5=0;"";B5);SE(B2=0;"";B2);SE(A1=0;"";A1))
ctrl+maiusc+invio
ivano

SiNi

unread,
Sep 24, 2009, 2:27:36 AM9/24/09
to
Ciao Ivano,
intanto grazie, mi sembra un'ottima idea, pero' mi restituisce " #NOME?"
Hai qualche idea?

Grazie ancora!

Nur

unread,
Sep 24, 2009, 3:41:18 AM9/24/09
to

"SiNi" <a...@a.it> ha scritto nel messaggio
news:Oj0Cx1G...@TK2MSFTNGP02.phx.gbl...
Ciao SiNi,
un'altra idea... un po ' strana.
Seleziona le tue celle non contigue (con Ctrl), poi men� > inserisci > nome
> definisci...
e assegna il nome 'celle'.
Quindi prova:
=PICCOLO(celle;CONTA.NUMERI(celle)+2-RANGO(0;celle))

Va in errore se nessuna delle celle � uguale a 0.
Per risolvere (nel caso l'evenienza ci sia):
=SE(MIN(celle)=0;PICCOLO(celle;CONTA.NUMERI(celle)+2-RANGO(0;celle));MIN(celle))
Non l'ho testata molto, prova a vedere come va.

[Parentesi per ivano: interessante il comportamento delle funzioni con un
range multiarea, mi sa che non ci avevo mai fatto caso]

Ciao, Nur


SiNi

unread,
Sep 24, 2009, 4:38:44 AM9/24/09
to
Ciao Nur,

Grazie per l'aiuto.
Funziona, il problema � che ho una serie di dati (praticamente � un listino
con 3 fornitori ed io devo trovare il prezzo piu' conveniente anche quando
c'� uno zero come prezzo).
La tua formula funziona...� che dovrei assegnare circa 250 nomei alle
celle... ;-)
E' possibile trovare una soluzione?

Grazei ancora!

SiNi

ivano

unread,
Sep 24, 2009, 4:51:55 AM9/24/09
to

"SiNi" <a...@a.it> ha scritto nel messaggio

news:uvF4vJPP...@TK2MSFTNGP06.phx.gbl...

...nemmeno io, prima d'ora...
:-)
ivano

ivano

unread,
Sep 24, 2009, 4:51:07 AM9/24/09
to

"SiNi" <a...@a.it> ha scritto nel messaggio

news:OKSjeAOP...@TK2MSFTNGP04.phx.gbl...

Ciao,
l'unico dubbio che avrei � sulla natura degli apici, indicati come argomento
nelle funzioni SE.
Io ho inserito due doppi apici (quelli del tastino MAIUSC 2)...e non 4 apici
singoli (del tastino MAIUSC ?)
ivano

Nur

unread,
Sep 24, 2009, 5:06:16 AM9/24/09
to

"SiNi" <a...@a.it> ha scritto nel messaggio
news:uvF4vJPP...@TK2MSFTNGP06.phx.gbl...

> Ciao Nur,
>
> Grazie per l'aiuto.
> Funziona, il problema � che ho una serie di dati (praticamente � un
> listino con 3 fornitori ed io devo trovare il prezzo piu' conveniente
> anche quando c'� uno zero come prezzo).
> La tua formula funziona...� che dovrei assegnare circa 250 nomei alle
> celle... ;-)

Ciao SiNI,
non ho capito.
Il nome da assegnare � *uno*. Le celle da selezionare, invece, sono le tue
250.

In ogni caso, queste celle come sono disposte?
Cosa c'� in mezzo tra una cella che ti interessa e un'altra?
Parli di un listino. Prova a indicarci la struttura esatta del tuo file.
La soluzione potrebbe essere pi� semplice di quello che pensiamo.
Basta una qualsiasi 'logica' che ti consenta di intercettare la posizione
delle celle, per semplificare il problema.

Ciao, Nur


Ignazio

unread,
Sep 24, 2009, 5:28:08 AM9/24/09
to
"ivano" <chiapp...@hotmail.com> ha scritto nel messaggio
news:3AB09F9A-256A-4312...@microsoft.com...

Ciao Ivano,
vista la formula, la prima cosa che ho pensato � "perch� matriciale? ... non
dovrebbe funzionare senza che sia matriciale?".
Comunque, per studiarla l'ho incollata sul foglio excel ... ma basta che
anche solo una delle 3 celle contiene 0 mi d� l'errore #VALORE! ... e non
riesco a capirne il motivo.
A te non succede?

--
Ciao,
Ignazio
RIO: www.riolab.org


Ignazio

unread,
Sep 24, 2009, 6:22:20 AM9/24/09
to
"Ignazio" <i_putign...@SeScriviAvirgilio.it> ha scritto nel messaggio
news:eGznWlPP...@TK2MSFTNGP05.phx.gbl...

Forse ho capito il motivo dell'errore.

Se in 3 celle scrivo:
A1: 1
A2: 2
A3: a
e poi scrivo la formula:
=MIN(A1:A3)
ottengo come risultato 1 (il testo viene ignorato)

Se invece scrivo la formula:
=MIN(1;2;"a")
ottengo l'errore #VALORE!

Nur

unread,
Sep 24, 2009, 7:08:36 AM9/24/09
to

"Ignazio" <i_putign...@SeScriviAvirgilio.it> ha scritto nel messaggio
news:%23U2EpDQ...@TK2MSFTNGP04.phx.gbl...

> Forse ho capito il motivo dell'errore.
>
> Se in 3 celle scrivo:
> A1: 1
> A2: 2
> A3: a
> e poi scrivo la formula:
> =MIN(A1:A3)
> ottengo come risultato 1 (il testo viene ignorato)
>
> Se invece scrivo la formula:
> =MIN(1;2;"a")
> ottengo l'errore #VALORE!
>

Ciao Ignazio (ciao tutti),
ho fatto anch'io delle verifiche perch� non sopporto non capire le cose :-)

Sono arrivata alla conclusione che MIN *ignora* valori di testo, valori
logici e celle vuote, *solo se* i suoi argomenti sono matrici o riferimenti.

Prendiamo i valori del tuo esempio:
In A1: 1
In A2: 2
In A3: a

Non solo MIN(A1:A3) ignora la "a".
ma anche MIN(A1;A2;A3).
Invece MIN(A1;A2;"a") restiuirebbe #VALORE!

Ricordando che:
=MIN(SE(A1:A3<>0;A1:A3))
(matriciale)
restituiva il valore minimo del range 'escluso lo 0'.

all'inizio avevo pensato di modificare la formula di Ivano cos�:
=MIN(SE(B5<>0;B5);SE(B2<>0;B2);SE(A1<>0;A1))
Invece, no. Questa restituisce 0. (In presenza di celle a 0).

Del resto, era una speranza ingenua la mia, visto che anche:
=MIN(SE(A1:A3<>0;A1:A3;""))
restituirebbe il valore minimo eccetto lo 0 (cio� quello che vorremmo)

Quindi immagino che la differenza del comportamento di MIN sia dato dal
'tipo' dei suoi argomenti.

Scusami (scusatemi) se mi sono dilungata...
E' solo perch� mi piace parlare :-)

Ciao, Nur


SiNi

unread,
Sep 24, 2009, 8:30:14 AM9/24/09
to
Ciao Nur,

vado a spiegare il dilemma...

Dunque ho una serie di articoli (in tutto + di 250) che prendo da 3
fornitori diversi.
Nella colonna A c'� il mio articolo, nella colonna B la descrizione.
Nelle colonne "S", "Y" e "AC" ci sono i prezzi netti dei 3 fornitori.
Colonna S fornitore Alpha,
Colonna Y fornitore Beta,
Colonna AC forn. Pippo.

Io volevo fare in modo che nella colonna K ci sia quella "benedetta" formula
che mi estrae il prezzo minore di quella riga, tralasciando il prezzo nel
caso sia ZERO.
Quindi questa formula deve essere ripetuta in tutta la colonna K per i 250
articoli e pi�.

Grazie ancora...

Scossa

unread,
Sep 24, 2009, 8:46:54 AM9/24/09
to
On 24 Set, 14:30, "SiNi" <a...@a.it> wrote:
> Dunque ho una serie di articoli (in tutto + di 250) che prendo da 3
> fornitori diversi.
> Nella colonna A c'è il mio articolo, nella colonna B la descrizione.

> Nelle colonne "S", "Y" e "AC" ci sono i prezzi netti dei 3 fornitori.
> Colonna S fornitore Alpha,
> Colonna Y fornitore Beta,
> Colonna AC forn. Pippo.
>
> Io volevo fare in modo che nella colonna K ci sia quella "benedetta" formula
> che mi estrae il prezzo minore di quella riga, tralasciando il prezzo nel
> caso sia ZERO.
> Quindi questa formula deve essere ripetuta in tutta la colonna K per i 250
> articoli e più.
>

Se i prezzi per ogni codoce sono tutti sulla stessa riga, per esempio:

A2:A250 i codici
B2:B250 le descr.
S2:S250 il prezzo forn. 1
Y2:Y250 il prezzo forn. 2
AC2:AC250 il prezzo forn. 3

puoi usare l'intersezione dei range:

in K2:: =MIN(S2:AC2 S:S; S2:AC2 Y:Y;S2:AC2 AC:AC)
da incollare fino a K250

Fai sapere se hai risolto, grazie.

Bye!
Scossa

Scossa

unread,
Sep 24, 2009, 8:53:57 AM9/24/09
to
On 24 Set, 14:46, Scossa <scossa...@gmail.com> wrote:
> On 24 Set, 14:30, "SiNi" <a...@a.it> wrote:

> in K2:: =MIN(S2:AC2 S:S; S2:AC2 Y:Y;S2:AC2 AC:AC)

Scusate ... non avevo considerato il discorso dello 0 ...ma credo che
come spunto su cui lavorare possa essere utile lo stesso.

Bye!
Scossa

Scossa

unread,
Sep 24, 2009, 9:18:11 AM9/24/09
to

=PICCOLO((S2:AC2 S:S; S2:AC2 Y:Y;S2:AC2 AC:AC);1+(SE(S2=0;1)+SE
(Y2=0;1)+SE(AC2=0;1)))

Bye!
Scossa

SiNi

unread,
Sep 24, 2009, 9:33:25 AM9/24/09
to
Che posso dire...Grazie!

A dire il vero non ci sarei mai e sottolineo MAI...arrivato!!!

Ringrazio anche tutti coloro che si sono prodigati per l'aiuto!

SiNi

SiNi

unread,
Sep 24, 2009, 9:54:01 AM9/24/09
to
Scossa, scusa una domanda...

il tuo discorso funziona se tutte le colonne (S, Y, AC) c'� un valore, anche
il solo zero.
Ma nel caso in cui in una colonna non ci sia il valore oppure in tutte e 3
le colonne ci sia lo ZERO. la funzione restituisce #NUM!

E' possibile rimediare a ci�?

Grazie.

"Scossa" <scos...@gmail.com> ha scritto nel messaggio
news:589bef04-c34e-497f...@m11g2000vbl.googlegroups.com...

ivano

unread,
Sep 24, 2009, 10:42:28 AM9/24/09
to

"Ignazio" <i_putign...@SeScriviAvirgilio.it> ha scritto nel messaggio
news:eGznWlPP...@TK2MSFTNGP05.phx.gbl...

Perch� matriciale? boh...
Avevo visto l'errore #VALORE! e ho premuto d'istinto ctrl+maiusc+invio e
l'errore era scomparso...
ovvero ho visto il valore corretto: non Zero non Errore. Oggi poi ho
riprovato e non riesco a riprodurre gli stessi effetti.
ivano

Nur

unread,
Sep 24, 2009, 10:46:16 AM9/24/09
to
"SiNi" <a...@a.it> wrote:
> Ciao Nur,
>
> vado a spiegare il dilemma...
>
> Dunque ho una serie di articoli (in tutto + di 250) che prendo da 3
> fornitori diversi.
> Nella colonna A c'è il mio articolo, nella colonna B la descrizione.

> Nelle colonne "S", "Y" e "AC" ci sono i prezzi netti dei 3 fornitori.
> Colonna S fornitore Alpha,
> Colonna Y fornitore Beta,
> Colonna AC forn. Pippo.
>
> Io volevo fare in modo che nella colonna K ci sia quella "benedetta"
> formula
> che mi estrae il prezzo minore di quella riga, tralasciando il prezzo
> nel
> caso sia ZERO.
> Quindi questa formula deve essere ripetuta in tutta la colonna K per i
> 250
> articoli e più.

>
> Grazie ancora...
>
> > In ogni caso, queste celle come sono disposte?
> > Cosa c'è in mezzo tra una cella che ti interessa e un'altra?

> > Parli di un listino. Prova a indicarci la struttura esatta del tuo
> > file.
> > La soluzione potrebbe essere più semplice di quello che pensiamo.

> > Basta una qualsiasi 'logica' che ti consenta di intercettare la
> > posizione
> > delle celle, per semplificare il problema.
> >
> > Ciao, Nur
> >

Ciao,
sto scrivendo da un cellulare, quindi non sono proprio certa, ma, se
sono sulla stessa riga, prova anche:
=SE(SOMMA(S2;Y2;AC2)=0;0;PICCOLO((S2;Y2;AC2);1+(S2=0)+(Y2=0)+(AC2=0)))

Sottolineo da 'provare', mi raccomando, non l'ho scritta su excel.

Ciao, Nur,

ivano

unread,
Sep 24, 2009, 10:57:42 AM9/24/09
to

"SiNi" <a...@a.it> ha scritto nel messaggio
news:uIvw75RP...@TK2MSFTNGP05.phx.gbl...


> Scossa, scusa una domanda...
>
> il tuo discorso funziona se tutte le colonne (S, Y, AC) c'� un valore,
> anche il solo zero.
> Ma nel caso in cui in una colonna non ci sia il valore oppure in tutte e 3
> le colonne ci sia lo ZERO. la funzione restituisce #NUM!
>
> E' possibile rimediare a ci�?
>
> Grazie.
>

Ciao,
io proverei a riflettere anche su:
=MIN(SE(INDICE(S1:AC1;{0;6;9})=0;"";INDICE(S1:AC1;{0;6;9})))
ctrl+maiusc+invio
ivano

ivano

unread,
Sep 24, 2009, 11:16:16 AM9/24/09
to

"Nur" <news...@gmail.com> ha scritto nel messaggio
news:1306728679275495768.05...@msnews.microsoft.com...

Ciao,
la funzione è corretta...rimane in imbarazzo con la presenza di celle
vuote...
ivano

Scossa

unread,
Sep 24, 2009, 11:24:28 AM9/24/09
to
On 24 Set, 15:54, "SiNi" <a...@a.it> wrote:
> Scossa, scusa una domanda...

>
> > =PICCOLO((S2:AC2 S:S; S2:AC2 Y:Y;S2:AC2 AC:AC);1+(SE(S2=0;1)+SE
> > (Y2=0;1)+SE(AC2=0;1)))
>
=SE(((S3=0)+(Y3=0)+(AC3=0))=3;"NON DISP";PICCOLO((S3:AC3 S:S; S3:AC3
Y:Y;S3:AC3 AC:AC);1+((S3=0)+(Y3=0)+(AC3=0))))

ma ovviamente (S3:AC3 S:S) = S3 per cui è decisamente
migliore la soluzione di NUR (la classe non è acqua :-)) ).

Comunque una o l'altra devi sostituire le celle vuote con ZERO
altrimenti non funziona ne una nè l'altra

Bye!
Scossa


r

unread,
Sep 24, 2009, 11:34:02 AM9/24/09
to
"SiNi" ha scritto:

> Salve a tutti.
> Ho il seguente problema: ho 3 valori in 3 celle non contigue per esempio: A1
> B2 B5
> Io dovrei fare in modo di trovare il minimo tra questi valori presenti nelle

> celle sapendo però che ci potrenbbe essere come valore anche lo zero (che

> come logico dovrebbe essere ignorato)
>
> Quindi se A1 = 4 B2= 0 B5=2 il risultato dovrebbe essere 2
> e cmq se in due celle i valori sono 0 per esempio A1=0 B2=1 B5=0 il
> risultato dovrebbe essere 1.
>
> Qualcuno ha un'idea?
> Ho guardato anche qui: http://support.microsoft.com/kb/60116/it

> ma non fa al caso mio perchè i valori non sono contigui.


>
> Un ciao a tutti e grazie.
> SiNi

non ho letto tutto ... scusate quindi se ... comunque
con i dati in a1:a8

=MIN(SE(A1:A8<>0;A1:A8;MAX(A1:A8)))
da confermare come matriciale
saluti
r

--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm

Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-eccezioni-e-alternative.html

SiNi

unread,
Sep 24, 2009, 11:39:16 AM9/24/09
to
Ciao Ivano,

sembra corretta.
Il problema � che dovrei fare ctrl+maiusc+invio per tutte le celle.
Poi se avessi anche altri fogli...la cosa sarebbe un po lunga, quindi
sarebbe pi� comoda una formula copia e incolla.

Grazie cmq per il tuo aiuto.
SiNi

r

unread,
Sep 24, 2009, 12:07:01 PM9/24/09
to

"r" ha scritto:

> "SiNi" ha scritto:
>
> > Salve a tutti.
> > Ho il seguente problema: ho 3 valori in 3 celle non contigue per esempio: A1
> > B2 B5
> > Io dovrei fare in modo di trovare il minimo tra questi valori presenti nelle
> > celle sapendo però che ci potrenbbe essere come valore anche lo zero (che
> > come logico dovrebbe essere ignorato)
> >
> > Quindi se A1 = 4 B2= 0 B5=2 il risultato dovrebbe essere 2
> > e cmq se in due celle i valori sono 0 per esempio A1=0 B2=1 B5=0 il
> > risultato dovrebbe essere 1.
> >
> > Qualcuno ha un'idea?
> > Ho guardato anche qui: http://support.microsoft.com/kb/60116/it
> > ma non fa al caso mio perchè i valori non sono contigui.
> >
> > Un ciao a tutti e grazie.
> > SiNi
>
> non ho letto tutto ... scusate quindi se ... comunque
> con i dati in a1:a8
>
> =MIN(SE(A1:A8<>0;A1:A8;MAX(A1:A8)))
> da confermare come matriciale
> saluti

su intervalli *spezzati
=MIN(SE(E(A1;A3;A5);(A1;A3;A5);MAX(A1;A3;A5)))

ivano

unread,
Sep 24, 2009, 12:14:00 PM9/24/09
to

"SiNi" <a...@a.it> ha scritto nel messaggio

news:#NJyv0SP...@TK2MSFTNGP06.phx.gbl...

Puoi benissimo utilizzare il copia incolla anche con le formule
matriciali...!
il ctrl+maiusc+invio lo devi fare solo per la prima o per eventuali
modifiche alla formula.
ivano

ivano

unread,
Sep 24, 2009, 12:23:30 PM9/24/09
to

"r" <r...@discussions.microsoft.com> ha scritto nel messaggio
news:03A6DD85-3C99-4FDB...@microsoft.com...

Ciao,
non funziona con una o più celle a zero.

ivano

r

unread,
Sep 24, 2009, 7:00:04 PM9/24/09
to
"ivano" ha scritto:

vero ... dalla fretta non l'avevo provata ... la prima mi sembra funzionante
ma probobabilmente con celle contigue esiste altra sol. più elegante ...

anche questa mi sembra comunque poco conveniente ...
per comodità usato solo 2 celle
volendo assegnare un nome a MAX(A1;A2) ... vabeh

=MIN(SE(A1<>0;A1;MAX(A1;A2));SE(A2<>0;A2;MAX(A1;A2)))

SiNi

unread,
Sep 25, 2009, 2:27:08 AM9/25/09
to
Ciao!
Ti ringrazio dell'informazione...non lo sapevo!
Buon lavoro!

SiNi

0 new messages