Discussione:
Trovare nominativo più vecchio
(troppo vecchio per rispondere)
Pico1965
2016-03-23 08:29:38 UTC
Permalink
Salve a tutti.
Ho di nuovo bisogno del vostro aiuto.
Colonna A nominativo
Colonna B data di nascita.

Vorrei trovare il nominativo della persona più vecchia.

Con MIN(b2:b1000) trovo la data più vecchia

Avevo pensato ad un cerca.vert ma dato che il dato cercato è nella colonna precedente a quella utilizzata per la ricerca non funziona.

Allora ho provato:
CERCA(MIN(b2:b1000);B2:B1000;A1:A1000)

ma non funzia nemmeno forse perché il confronto è fra date

Come risolvo?

Grazie
Norman Jones
2016-03-23 09:26:05 UTC
Permalink
Ciao Pico,
Post by Pico1965
Salve a tutti.
Ho di nuovo bisogno del vostro aiuto.
Colonna A nominativo
Colonna B data di nascita.
Vorrei trovare il nominativo della persona più vecchia.
Con MIN(b2:b1000) trovo la data più vecchia
Avevo pensato ad un cerca.vert ma dato che il dato cercato è nella colonna precedente a quella utilizzata per la ricerca non funziona.
CERCA(MIN(b2:b1000);B2:B1000;A1:A1000)
ma non funzia nemmeno forse perché il confronto è fra date
Come risolvo?
Un modo:
=INDICE(A1:A1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);1)




===
Regards,
Norman
Pico1965
2016-03-23 10:13:37 UTC
Permalink
Post by Norman Jones
Ciao Pico,
Post by Pico1965
Salve a tutti.
Ho di nuovo bisogno del vostro aiuto.
Colonna A nominativo
Colonna B data di nascita.
Vorrei trovare il nominativo della persona più vecchia.
Con MIN(b2:b1000) trovo la data più vecchia
Avevo pensato ad un cerca.vert ma dato che il dato cercato è nella colonna precedente a quella utilizzata per la ricerca non funziona.
CERCA(MIN(b2:b1000);B2:B1000;A1:A1000)
ma non funzia nemmeno forse perché il confronto è fra date
Come risolvo?
=INDICE(A1:A1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);1)
===
Regards,
Norman
Grazie. Funziona perfettamente.

Nella colonna C c'è la qualifica.

Se voglio sapere chi è l'operaio più anziano?
Norman Jones
2016-03-23 10:32:22 UTC
Permalink
Post by Pico1965
Post by Norman Jones
Ciao Pico,
Post by Pico1965
Salve a tutti.
Ho di nuovo bisogno del vostro aiuto.
Colonna A nominativo
Colonna B data di nascita.
Vorrei trovare il nominativo della persona più vecchia.
Con MIN(b2:b1000) trovo la data più vecchia
Avevo pensato ad un cerca.vert ma dato che il dato cercato è nella colonna precedente a quella utilizzata per la ricerca non funziona.
CERCA(MIN(b2:b1000);B2:B1000;A1:A1000)
ma non funzia nemmeno forse perché il confronto è fra date
Come risolvo?
=INDICE(A1:A1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);1)
===
Regards,
Norman
Grazie. Funziona perfettamente.
Nella colonna C c'è la qualifica.
Se voglio sapere chi è l'operaio più anziano?
Non ho capito: ho già suggerito una formula per restituire il nome del
più anziano.

Se vuoi restituire invece la qualifica, prova:
=INDICE(A1:1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);3)






===
Regards,
Norman
Norman Jones
2016-03-23 10:39:03 UTC
Permalink
Ciao Pico,
Post by Norman Jones
=INDICE(A1:A1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);1)
La formula per restituire la qualifica avrebbe dovuto essere:
=INDICE(A1:C1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);3)
--
===
Regards,
Norman
Pico1965
2016-03-23 10:47:57 UTC
Permalink
Post by Norman Jones
Ciao Pico,
Post by Norman Jones
=INDICE(A1:A1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);1)
=INDICE(A1:C1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);3)
--
===
Regards,
Norman
Scusa ma forse non mi sono espresso bene.

Le tue formule forniscono la qualifica del dipendente più anziano.

A me occorre individuare l'operaio (C="Operaio") + anziano

Grazie dell'attenzione
Norman Jones
2016-03-23 11:57:34 UTC
Permalink
Post by Pico1965
Scusa ma forse non mi sono espresso bene.
Le tue formule forniscono la qualifica del dipendente più anziano.
A me occorre individuare l'operaio (C="Operaio") + anziano
A me la domanda non risulta chiara.

Tuttavia, se il tuo obiettivo fosse di restituire il nome (dalla colonna
A) del più anziano persona con la qualifica "Operaio" in colonna C,
prova la formula:

=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000
="Operaio";B1:B1000));B1:B1000;0);1)

Per restituire la sua data di nascita, prova la formula:
=MIN(SE(C1:C1000 ="Operaio";B1:B1000))

Entrambe queste formule sono matriciale e devono essere confermate con
Ctrl + Maiusc + Invio invece di Invio




===
Regards,
Norman
Norman Jones
2016-03-23 12:27:59 UTC
Permalink
Post by Norman Jones
Post by Pico1965
A me occorre individuare l'operaio (C="Operaio") + anziano
A me la domanda non risulta chiara.
Non era chiaro semplicemente perchè io non avevo letto il segno "+" come
la parola "più" - colpa mia! -:(

Approfitto per correggere il mio italiano
Post by Norman Jones
Tuttavia, se il tuo obiettivo fosse di restituire il nome (dalla colonna
A) del più anziano persona con la qualifica "Operaio" in colonna C,
Tuttavia, se il tuo obiettivo fosse di restituire il nome (dalla
colonna A) della più anziana persona con la qualifica "Operaio" in
Post by Norman Jones
=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000
="Operaio";B1:B1000));B1:B1000;0);1)
=MIN(SE(C1:C1000 ="Operaio";B1:B1000))
Entrambe queste formule sono matriciale e devono essere confermate con
Ctrl + Maiusc + Invio invece di Invio
Entrambe queste formule sono matriciali ...





===
Regards,
Norman
casanmaner
2016-03-23 12:34:56 UTC
Permalink
Beh... Sostituire "più" con "+" non è italiano ma linguaggio da "SMS" e simili!
Cosa decisamente deplorevole ;)
Quindi Norman non correggere il tuo italiano ma pretendi che i tuoi interlocutori utilizzino un italiano corretto! :)
Norman Jones
2016-03-23 12:37:02 UTC
Permalink
Ciao Casanmaner,
Post by casanmaner
Beh... Sostituire "più" con "+" non è italiano ma linguaggio da "SMS" e simili!
Cosa decisamente deplorevole ;)
Quindi Norman non correggere il tuo italiano ma pretendi che i tuoi interlocutori utilizzino un italiano corretto! :)
Grazie. Gentile come sempre!





===
Regards,
Norman
Pico1965
2016-03-23 12:49:54 UTC
Permalink
Post by Norman Jones
Ciao Casanmaner,
Post by casanmaner
Beh... Sostituire "più" con "+" non è italiano ma linguaggio da "SMS" e simili!
Cosa decisamente deplorevole ;)
Quindi Norman non correggere il tuo italiano ma pretendi che i tuoi interlocutori utilizzino un italiano corretto! :)
Grazie. Gentile come sempre!
===
Regards,
Norman
Chiedo venia e faccio ammenda.

La formula suggerita (matriciale) sembra non funzionare in quanto restituisce il valore N/D
Norman Jones
2016-03-23 13:20:28 UTC
Permalink
Ciao Pico,
Post by Pico1965
La formula suggerita (matriciale) sembra non funzionare in quanto restituisce il valore N/D
Le formule funzionano a me. Prova a caricare un esempio problematico
(privo di dati sensibili) su un servizio doi condivisione di file del
tipo, ad esempio, Microsoft OneDrive o DropBox e posta un link al file
in una risposta qui.




===
Regards,
Norman
Pico1965
2016-03-23 14:20:58 UTC
Permalink
Post by Norman Jones
Ciao Pico,
Post by Pico1965
La formula suggerita (matriciale) sembra non funzionare in quanto restituisce il valore N/D
Le formule funzionano a me. Prova a caricare un esempio problematico
(privo di dati sensibili) su un servizio doi condivisione di file del
tipo, ad esempio, Microsoft OneDrive o DropBox e posta un link al file
in una risposta qui.
===
Regards,
Norman
Grazie dell'attenzione.

http://www.easybytez.com/mo9es9fbbmoo
Norman Jones
2016-03-23 14:47:05 UTC
Permalink
Ciao Pico,
Post by Pico1965
Grazie dell'attenzione.
http://www.easybytez.com/mo9es9fbbmoo
Il mio programma antivirus riporta un problema con questo sito. Quindi,
ti chiederei di utilizzare un servizio di condivisione di buona
reputazione come Microsoft Onedrive o DropBox. In alternativa, se
preferisci, caricherò il mio file di prova.





===
Regards,
Norman
Pico1965
2016-03-23 15:04:21 UTC
Permalink
https://www.dropbox.com/s/wcf5zqbhzaxwvpg/PROVA.xlsx?dl=0
Norman Jones
2016-03-23 16:00:46 UTC
Permalink
Ciao Pico,
Post by Pico1965
https://www.dropbox.com/s/wcf5zqbhzaxwvpg/PROVA.xlsx?dl=0
Non ho fatto altro che redigitare le quattro date nella colonna B, , sostituendo i trattini con la barra, e ho subito ottenuto il risultato previsto nella cella E1.

Potresti scaricare il file aggiornato Pico20160323.xlsx a:
https://www.dropbox.com/s/bl0pcqqsgwpq00a/Pico20160323.xlsx?dl=0




===
Regards,
Norman
Pico1965
2016-03-24 07:23:46 UTC
Permalink
Post by Norman Jones
Ciao Pico,
Post by Pico1965
https://www.dropbox.com/s/wcf5zqbhzaxwvpg/PROVA.xlsx?dl=0
Non ho fatto altro che redigitare le quattro date nella colonna B, , sostituendo i trattini con la barra, e ho subito ottenuto il risultato previsto nella cella E1.
https://www.dropbox.com/s/bl0pcqqsgwpq00a/Pico20160323.xlsx?dl=0
===
Regards,
Norman
Grazie.

Ma è normale?
Le date da cambiare nel formato sono tante tante!
Norman Jones
2016-03-24 08:28:46 UTC
Permalink
Post by Pico1965
Post by Norman Jones
Ciao Pico,
Post by Pico1965
https://www.dropbox.com/s/wcf5zqbhzaxwvpg/PROVA.xlsx?dl=0
Non ho fatto altro che redigitare le quattro date nella colonna B
, sostituendo i trattini con la barra, e ho subito ottenuto il
risultato previsto nella cella E1.
https://www.dropbox.com/s/bl0pcqqsgwpq00a/Pico20160323.xlsx?dl=0
===
Regards,
Norman
Grazie.
Ma è normale?
Non saprei; credo che dipenda dai i tuoi settaggi e dal modo in cui
vengono immessi le date
Post by Pico1965
Le date da cambiare nel formato sono tante tante!
Per modificare tutte le date in modo molto veloce, prova quanto segue:

• Seleziona tutte le date
• Nella scheda Dati, nel gruppo Strumenti dati, fai clic su
Converti
• Nel passaggio 1 della procedura guidata di conversione fai clic
su Avanti
• Nel passaggio 2, fai clic su Avanti
• Al punto 3, seleziona l'opzione data di GMA
• Fai clic su Fine






===
Regards,
Norman
Pico1965
2016-03-24 10:52:21 UTC
Permalink
Post by Norman Jones
Post by Pico1965
Post by Norman Jones
Ciao Pico,
Post by Pico1965
https://www.dropbox.com/s/wcf5zqbhzaxwvpg/PROVA.xlsx?dl=0
Non ho fatto altro che redigitare le quattro date nella colonna B
, sostituendo i trattini con la barra, e ho subito ottenuto il
risultato previsto nella cella E1.
Ho riscritto le 4 date con gli "/" come hai fatto tu ma il problema permane.
Post by Norman Jones
Post by Pico1965
Post by Norman Jones
https://www.dropbox.com/s/bl0pcqqsgwpq00a/Pico20160323.xlsx?dl=0
Dal lavoro non posso scaricare il tuo file poiché il proxy lo blocca.
Post by Norman Jones
Post by Pico1965
Post by Norman Jones
===
Regards,
Norman
Grazie.
Ma è normale?
Non saprei; credo che dipenda dai i tuoi settaggi e dal modo in cui
vengono immessi le date
Post by Pico1965
Le date da cambiare nel formato sono tante tante!
* Seleziona tutte le date
* Nella scheda Dati, nel gruppo Strumenti dati, fai clic su
Converti
Vedo solo:
- Testo in colonne
- Rimuovi duplicati;
- Convalida dati
- Consolida
- Analisi di simulazione

Excel 2010
Post by Norman Jones
* Nel passaggio 1 della procedura guidata di conversione fai clic
su Avanti
* Nel passaggio 2, fai clic su Avanti
* Al punto 3, seleziona l'opzione data di GMA
* Fai clic su Fine
Grazie sempre dell'attenzione
Norman Jones
2016-03-24 13:05:17 UTC
Permalink
Post by Pico1965
- Testo in colonne
- Rimuovi duplicati;
- Convalida dati
- Consolida
- Analisi di simulazione
Excel 2010
Per modificare tutte le date in modo molto veloce, Le istruzioni
avrebbero dovuto essere:

o Seleziona tutte le date
o Nella scheda Dati, nel gruppo Strumenti dati, fai clic su Testo
in Colonne

o Nel passaggio 1 della procedura guidata di conversione fai clic
su Avanti
o Nel passaggio 2, fai clic su Avanti
o Al punto 3, seleziona l'opzione data di GMA
o Fai clic su Fine





===
Regards,
Norman
Pico1965
2016-03-24 14:58:37 UTC
Permalink
Post by Norman Jones
Post by Pico1965
- Testo in colonne
- Rimuovi duplicati;
- Convalida dati
- Consolida
- Analisi di simulazione
Excel 2010
Per modificare tutte le date in modo molto veloce, Le istruzioni
o Seleziona tutte le date
o Nella scheda Dati, nel gruppo Strumenti dati, fai clic su Testo
in Colonne
o Nel passaggio 1 della procedura guidata di conversione fai clic
su Avanti
o Nel passaggio 2, fai clic su Avanti
o Al punto 3, seleziona l'opzione data di GMA
o Fai clic su Fine
===
Regards,
Norman
OK.

Dopo pranzo la formula ha funzionato.
Ed ho risolto anche con la trasformazione delle date.

Grazie.

Sono andato un po' avanti per le mie esigenze e mi sono nuovamente fermato:
Usando la tua formula
{=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000="Operaio";B1:B1000));B1:B1000;0);1)}
L'ho trasformata così (naturalmente il caso è scolastico... la realtà è un po' più complessa) ::)

Voglio sapere il nominativo del tecnico «O» operaio più anziano.
{=INDICE(A1:A1000;CONFRONTA(MIN(SE(O(C1:C1000="Tecnico";C1:C1000="Operaio");B1:B1000));B1:B1000;0);1)}

La formula non tiene conto delle condizioni ma mi restituisce il nominativo del dipendente più vecchio indipendentemente dalla qualifica
Pico1965
2016-05-10 07:43:31 UTC
Permalink
Post by Pico1965
Post by Norman Jones
Post by Pico1965
- Testo in colonne
- Rimuovi duplicati;
- Convalida dati
- Consolida
- Analisi di simulazione
Excel 2010
Per modificare tutte le date in modo molto veloce, Le istruzioni
o Seleziona tutte le date
o Nella scheda Dati, nel gruppo Strumenti dati, fai clic su Testo
in Colonne
o Nel passaggio 1 della procedura guidata di conversione fai clic
su Avanti
o Nel passaggio 2, fai clic su Avanti
o Al punto 3, seleziona l'opzione data di GMA
o Fai clic su Fine
===
Regards,
Norman
OK.
Dopo pranzo la formula ha funzionato.
Ed ho risolto anche con la trasformazione delle date.
Grazie.
Usando la tua formula
{=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000="Operaio";B1:B1000));B1:B1000;0);1)}
L'ho trasformata così (naturalmente il caso è scolastico... la realtà è un po' più complessa) ::)
Voglio sapere il nominativo del tecnico «O» operaio più anziano.
{=INDICE(A1:A1000;CONFRONTA(MIN(SE(O(C1:C1000="Tecnico";C1:C1000="Operaio");B1:B1000));B1:B1000;0);1)}
La formula non tiene conto delle condizioni ma mi restituisce il nominativo del dipendente più vecchio indipendentemente dalla qualifica
No more help?
Norman Jones
2016-05-11 11:03:44 UTC
Permalink
Post by Pico1965
Post by Pico1965
Usando la tua formula
{=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000="Operaio";B1:B1000));B1:B1000;0);1)}
L'ho trasformata così (naturalmente il caso è scolastico... la realtà è un po' più complessa) ::)
Voglio sapere il nominativo del tecnico «O» operaio più anziano.
{=INDICE(A1:A1000;CONFRONTA(MIN(SE(O(C1:C1000="Tecnico";C1:C1000="Operaio");B1:B1000));B1:B1000;0);1)}
La formula non tiene conto delle condizioni ma mi restituisce il nominativo del dipendente più vecchio indipendentemente dalla qualifica
No more help?
Certo - non avevo notato la nuova domanda! :-)

Un modo:
=INDICE(A1:A1006;CONFRONTA(MIN(MIN(SE(C1:C1006="Tecnico";B1:B1006));MIN(SE(C1:C1006="Operaio";B1:B1006)));B1:B1006;0);1)





===
Regards,
Norman
Norman Jones
2016-05-11 11:06:50 UTC
Permalink
Post by Norman Jones
=INDICE(A1:A1006;CONFRONTA(MIN(MIN(SE(C1:C1006="Tecnico";B1:B1006));MIN(SE(C1:C1006="Operaio";B1:B1006)));B1:B1006;0);1)
=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE(C1:C1000="Tecnico";B1:B1000));MIN(SE(C1:C1000="Operaio";B1:B1000)));B1:B1000;0);1)




===
Regards,
Norman
Pico1965
2018-01-31 09:25:59 UTC
Permalink
Post by Norman Jones
Post by Norman Jones
=INDICE(A1:A1006;CONFRONTA(MIN(MIN(SE(C1:C1006="Tecnico";B1:B1006));MIN(SE(C1:C1006="Operaio";B1:B1006)));B1:B1006;0);1)
=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE(C1:C1000="Tecnico";B1:B1000));MIN(SE(C1:C1000="Operaio";B1:B1000)));B1:B1000;0);1)
===
Regards,
Norman
Buongiorno a tutti.

Ho riesumato questo mio thread perchè ho un'altra necessità simile:

Questa è la formula (matriciale) funzionante regolarmente per trovare il nome dell'operaio più anziano gentilmente elaborata da Norman.

=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000="Operaio";B1:B1000));B1:B1000;0);1)

Adesso mi serve trovare il dipendente più anziano che non sia Operaio.

Naturalmente ho provato:
=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000<>"Operaio";B1:B1000));B1:B1000;0);1)
Ma viene restituito un N/D

Dove sbaglio?
Norman Jones
2018-02-02 03:38:17 UTC
Permalink
Post by Pico1965
Post by Norman Jones
Post by Norman Jones
=INDICE(A1:A1006;CONFRONTA(MIN(MIN(SE(C1:C1006="Tecnico";B1:B1006));MIN(SE(C1:C1006="Operaio";B1:B1006)));B1:B1006;0);1)
=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE(C1:C1000="Tecnico";B1:B1000));MIN(SE(C1:C1000="Operaio";B1:B1000)));B1:B1000;0);1)
Buongiorno a tutti.
Questa è la formula (matriciale) funzionante regolarmente per trovare il nome dell'operaio più anziano gentilmente elaborata da Norman.
=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000="Operaio";B1:B1000));B1:B1000;0);1)
Adesso mi serve trovare il dipendente più anziano che non sia Operaio.
=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000<>"Operaio";B1:B1000));B1:B1000;0);1)
Ma viene restituito un N/D
Dove sbaglio?
Penso che sia probabile che ci siano celle vuote nell'intervallo C:C1000
o questo intervallo sia troppo abbondante,

A meno che tu non voglia utilizzare una formula più complessa, potresi
superare il problema sia limitando la formula all'intervallo popolato
sia convertando l'intervallo in una tabella Excel. Con una tabella
Excel, potresti sostituire gli indirizzi statici della tua formula con
i nomi delle colonne della tabella Excel.



===
Regards,
Norman
Norman Jones
2018-02-02 03:39:07 UTC
Permalink
potresi superare il problema
potresti ...
Pico1965
2018-02-03 08:40:14 UTC
Permalink
Post by Norman Jones
Post by Pico1965
Post by Norman Jones
Post by Norman Jones
=INDICE(A1:A1006;CONFRONTA(MIN(MIN(SE(C1:C1006="Tecnico";B1:B1006));MIN(SE(C1:C1006="Operaio";B1:B1006)));B1:B1006;0);1)
=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE(C1:C1000="Tecnico";B1:B1000));MIN(SE(C1:C1000="Operaio";B1:B1000)));B1:B1000;0);1)
Buongiorno a tutti.
Questa è la formula (matriciale) funzionante regolarmente per trovare il nome dell'operaio più anziano gentilmente elaborata da Norman.
=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000="Operaio";B1:B1000));B1:B1000;0);1)
Adesso mi serve trovare il dipendente più anziano che non sia Operaio.
=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000<>"Operaio";B1:B1000));B1:B1000;0);1)
Ma viene restituito un N/D
Dove sbaglio?
Penso che sia probabile che ci siano celle vuote nell'intervallo C:C1000
o questo intervallo sia troppo abbondante,
A meno che tu non voglia utilizzare una formula più complessa, potresi
superare il problema sia limitando la formula all'intervallo popolato
sia convertando l'intervallo in una tabella Excel. Con una tabella
Excel, potresti sostituire gli indirizzi statici della tua formula con
i nomi delle colonne della tabella Excel.
===
Regards,
Norman
Penso che hai centrato il problema:

https://www.dropbox.com/s/vxcv36f1wa6n8fm/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0

La cosa che non capisco è perchè se l'operatore di confronto è = la formula viene digerita, mentre se l'operatore è <> no.

Per caso hai una formula sostitutiva da propormi?
Buon week end a tutti.
Norman Jones
2018-02-03 12:29:03 UTC
Permalink
Ciao Pico,
Post by Pico1965
Post by Norman Jones
Post by Pico1965
=INDICE(A1:A1000;CONFRONTA(MIN(SE(C1:C1000<>"Operaio";B1:B1000));B1:B1000;0);1)
Ma viene restituito un N/D
Dove sbaglio?
Penso che sia probabile che ci siano celle vuote nell'intervallo C:C1000
o questo intervallo sia troppo abbondante,
A meno che tu non voglia utilizzare una formula più complessa, potresi
superare il problema sia limitando la formula all'intervallo popolato
sia convertando l'intervallo in una tabella Excel. Con una tabella
Excel, potresti sostituire gli indirizzi statici della tua formula con
i nomi delle colonne della tabella Excel.
===
Regards,
Norman
https://www.dropbox.com/s/vxcv36f1wa6n8fm/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0
La cosa che non capisco è perchè se l'operatore di confronto è = la formula viene digerita, mentre se l'operatore è <> no.
Per caso hai una formula sostitutiva da propormi?
Buon week end a tutti.
Come ti ho spiegato, il problema che hai riscontrato è dovuto al fatto
che la tua formula comprende tutta la colonna B:B anziche l'intervalloi
di interesse, ossia la seconda colonna della tabella.

Più in particolare, consideriamo la tua formula
=INDICE(A:A;CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0);1)
in più profondamente.

Chiaramente, la sezione MIN(SE(C:C<>"Operaio";B:B)
deve per forza restituire zero in quanto ci sono celle vuote nella
colonna B.

Quindi, la sezione CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0)della
tua formula si risolve in:
CONFRONTA(0;B:B));B:B;0)
la quale restiuirà #N/D e quindi l'intera formula si risolverebbe in
=INDICE(A1:A1000;#N/D,1)
E, come hai scoperto, la tua formula retituisc sempre il risultato #N/D.

Per vedere i procedimenti in modo più dettagliato, con la formula
problematica selezionata:
• Seleziona la scheda Formule
• Gruppo Verifica formule
• Fai clic su Valuta formula

A questo proposito, e per una spiegazione più approfondita, vedi il
seguente articolo di Support:
https://support.office.com/it-it/article/valutare-una-formula-annidata-un-passaggio-alla-volta-59a201ae-d1dc-4b15-8586-a70aa409b8a7?ui=it-IT&rs=it-IT&ad=IT

Pertanto, ti consiglio:
• Limita gli intervalli delle tue formula a quelli popolati
• Converti la tua tabella in una tabella Excel e utilizza i nomi
automaticamente creati delle colonne nella tua formula
• Anzichè intere colonne, assegna intervalli dinamici a nomi
definiti e utilizza i nomi nelle tue formule



===
Regards,
Norman
Norman Jones
2018-02-03 12:32:44 UTC
Permalink
Cia Pico,
Post by Norman Jones
Come ti ho spiegato, il problema che hai riscontrato è dovuto al fatto
che la tua formula comprende tutta la colonna B:B anziche l'intervalloi
di interesse, ossia la seconda colonna della tabella.
Più in particolare, consideriamo la tua formula
=INDICE(A:A;CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0);1)
in più profondamente.
Avrebbe dovuto essere:

Come ti ho spiegato, il problema che hai riscontrato è dovuto al fatto
che la tua formula comprende tutta la colonna B:B anziche solo
l'intervallo di interesse, ossia la seconda colonna della tabella.

Più in particolare, consideriamo la tua formula
=INDICE(A:A;CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0);1)
più profondamente.



===
Regards,
Norman
Norman Jones
2018-02-03 12:36:08 UTC
Permalink
Quindi, la sezione CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0)della tua
 CONFRONTA(0;B:B));B:B;0)
Uugh!

Quindi, la sezione CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0)della tua
formula si risolve in:
CONFRONTA(0;B:B;0)



===
Regards,
Norman
Pico1965
2018-02-06 10:08:55 UTC
Permalink
Quindi, la sezione CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0)della tua
 CONFRONTA(0;B:B));B:B;0)
Uugh!
Quindi, la sezione CONFRONTA(MIN(SE(C:C<>"Operaio";B:B));B:B;0)della tua
CONFRONTA(0;B:B;0)
===
Regards,
Norman
Grazie Norman.

Fornisco due soluzioni al problema, spero corrette.
https://www.dropbox.com/s/906tteyzxahwjtg/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0

Non vorrei sembrarti petulante ma..
La formula con = "Operaio" quando arriva alla riga 6 trova la cella vuota ma fornisce l'esito corretto.
La stessa formula con <> "Operaio" quando arriva alla riga 6 e trova la cella vuota restituisce errore.

C'è una spiegazione a ciò?
Norman Jones
2018-02-06 15:46:58 UTC
Permalink
Ciao Pico,
Post by Pico1965
Fornisco due soluzioni al problema, spero corrette.
https://www.dropbox.com/s/906tteyzxahwjtg/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0
Non vorrei sembrarti petulante ma..
Non preoccuparti, mi pare una domanda del tutto legittima!
Post by Pico1965
La formula con = "Operaio" quando arriva alla riga 6 trova la cella vuota ma fornisce l'esito corretto.
La stessa formula con <> "Operaio" quando arriva alla riga 6 e trova la cella vuota restituisce errore.
C'è una spiegazione a ciò?
Certo!

Difatti *tutte* le formule utilizzate restiscono l'errore #N/D nel caso
in cui la data in una riga di interesse sia vuota.

Nel caso del tuo esempio specifico, la riga 6 è vuota e, pertanto, per
una formula utilizzando la condizione > = "Operaio"
la formula ignorà quella riga e non restituirà un'errore.

All'opposto, quando una formula utilizzando la condizione
Post by Pico1965
<> "Operaio"incontra la riga 6, che è vuota, interpreteterà la cella nella sua
colonna C come in accordo con la condizione perchè, ovviamente, una
cella vuota non può essere uguale al testo Operaio. Pertanto, come, hai
scoperto, in tal caso la formula restituirà un errore.

Più in generale, la funzione CONFRONTA, la quale viene sfruttata in
ognuna delle tue formule, restitiuirà sempre l'errore #N/D nel caso di
una cella di interesse vuota.

Per evitare eventuali problemi, forese potrsti prendere in
condiderazione l'uso della seguente funzione utente (UDF):

• Alt+F11 per aprire l'editor di VBA
• Alt+IM per inserire un nuovo modulo di codice
• Nel nuovo modulo vuoto, incolla il seguente codice:

'=========>>
Option Explicit

'--------->>
Public Function PiùAnziano(r As Range, _
sOperator, _
sCategoria As String) As Variant
Dim ArrIn As Variant
Dim i As Long
Dim dDate As Double
Dim sNome As String
Dim vVal As Variant
Dim bFlag As Boolean

ArrIn = r.Value2
dDate = Date

For i = 1 To UBound(ArrIn)
Select Case sOperator
Case "="
bFlag = ArrIn(i, 3) = sCategoria
Case "<>"
bFlag = ArrIn(i, 3) <> sCategoria
End Select

If bFlag Then
vVal = ArrIn(i, 2)
If vVal < dDate And Not IsEmpty(vVal) Then
dDate = ArrIn(i, 2)
sNome = ArrIn(i, 1)
End If
End If
Next i

If Not sNome = vbNullString Then
PiùAnziano = sNome
Else
PiùAnziano = CVErr(xlErrNA)
End If
End Function
'<<=========

• Alt+Q per chiudere l'editor di VBA e tornare a Excel
• Salva il file con l’estensione xlsm

Questa funzione, che non è matriciasle e quindi viene immessa con un
semplice invio, viene utilizzata come una funzione nativa di Excel; ad
esemmpio:
=PiùAnziano(Tabella1;"="; "Operaio")
Oppure:
=PiùAnziano(Tabella1;"<>"; "Operaio")

Potresti scaricare il mio file di prova
https://www.dropbox.com/s/jqgi4txd2tn8sye/Pico20180206.xlsm?dl=0




===
Regards,
Norman
Norman Jones
2018-02-06 15:48:43 UTC
Permalink
Difatti *tutte* le formule utilizzate restiscono l'errore  #N/D
restituiscono




===
Regards,
Norman
Pico1965
2018-02-07 14:37:47 UTC
Permalink
Post by Norman Jones
Difatti *tutte* le formule utilizzate restiscono l'errore  #N/D
restituiscono
===
Regards,
Norman
Grazie della tua pazienza.
Giuro che poi mi taccio :))
Partiamo dalla tua formula:
=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE(C1:C1000="Tecnico";B1:B1000));MIN(SE(C1:C1000="Operaio";B1:B1000)));B1:B1000;0);1)

Funziona perfettamente però... mi tira fuori anche i pensionati!!

Quindi occorre controllare che la colonna D sia <> "Pensionato".

Grazie dell'attenzione
Norman Jones
2018-02-07 16:22:45 UTC
Permalink
Post by Pico1965
Grazie della tua pazienza.
Giuro che poi mi taccio :))
=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE(C1:C1000="Tecnico";B1:B1000));MIN(SE(C1:C1000="Operaio";B1:B1000)));B1:B1000;0);1)
Funziona perfettamente però... mi tira fuori anche i pensionati!!
Quindi occorre controllare che la colonna D sia <> "Pensionato".
Mi pare che sia la prima volta che abbiamo parlato delle colonna D o la
condizione di escludere i pensionati! :-))

Comunque, aggiungendo un po' di logico booleano, prova la formula:
{=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE((C1:C1000="Tecnico")*(D1:D1000<>"Pensionato")>0;B1:B1000));MIN(SE((C1:C1000="Operaio")*(D1:D1000<>"Pensionato")>0;B1:B1000)));B1:B1000;0);1)}

Nota che utilizzando questa sintassi, si supera anche l'eventuale
problemi di celle vuote e, quindi gli intervalli possono essere abbondanti.




===
Regards,
Norman
Norman Jones
2018-02-07 16:24:48 UTC
Permalink
Post by Norman Jones
Nota che utilizzando questa sintassi, si supera anche l'eventuale
problemi di celle vuote
problema



===
Regards,
Norman
Norman Jones
2018-02-07 21:23:04 UTC
Permalink
Ciao Pico,
Post by Norman Jones
{=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE((C1:C1000="Tecnico")*(D1:D1000<>"Pensionato")>0;B1:B1000));MIN(SE((C1:C1000="Operaio")*(D1:D1000<>"Pensionato")>0;B1:B1000)));B1:B1000;0);1)}
Avrei dovuto precisare che le parentesi graffe mostrate nella mia
formula non dovrebbero essere immessa a mano, ma sono invece inserite
automaticamente quando si immetti la formula con la conferma
*matriciale* Alt+Ctrl+Invio.




===
Regards,
Norman
Norman Jones
2018-02-07 21:24:58 UTC
Permalink
Post by Norman Jones
Avrei dovuto precisare che le parentesi graffe mostrate nella mia
formula non dovrebbero essere immessa
immesse



===
Regards,
Norman
Norman Jones
2018-02-07 21:27:20 UTC
Permalink
Post by Norman Jones
non dovrebbero essere immessa a mano
immesse




===
Regards,
Norman
Norman Jones
2018-02-08 00:09:21 UTC
Permalink
Ugh!! ... Comunque, aggiungendo un po' di logica booleana, prova la formula:



===
Regards,
Norman
Pico1965
2018-02-08 09:37:11 UTC
Permalink
Post by Norman Jones
Mi pare che sia la prima volta che abbiamo parlato delle colonna D o la
condizione di escludere i pensionati! :-))
Si hai perfettamente ragione.
Infatti applicando la tua formula su dati reali, ha fornito in output nominativi pensionati da tempo.
Colpa mia non averci pensato prima.
Post by Norman Jones
{=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE((C1:C1000="Tecnico")*(D1:D1000<>"Pensionato")>0;B1:B1000));MIN(SE((C1:C1000="Operaio")*(D1:D1000<>"Pensionato")>0;B1:B1000)));B1:B1000;0);1)}
Temo purtroppo di avere casualmente scoperto che nè la formula "a due qualifiche" nè quella ad esclusione dei pensionati funzionano correttamente.

https://www.dropbox.com/s/wfgdvsr3bu0x9oi/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0

Come puoi vedere il foglio così com'è risponde correttamente il signor VERDI.
Sia in colonna H (filtro su doppia qualifica) che in colonna I (escluso pensionati)

Se però il signor VERDI lo promuovi a quadro la risposta giusta sarebbe il signor BLU ma non viene fornita.

Grazie sempre della pazienza
x***@gmail.com
2018-02-08 10:12:26 UTC
Permalink
Post by Pico1965
Post by Norman Jones
Mi pare che sia la prima volta che abbiamo parlato delle colonna D o la
condizione di escludere i pensionati! :-))
Si hai perfettamente ragione.
Infatti applicando la tua formula su dati reali, ha fornito in output nominativi pensionati da tempo.
Colpa mia non averci pensato prima.
Post by Norman Jones
{=INDICE(A1:A1000;CONFRONTA(MIN(MIN(SE((C1:C1000="Tecnico")*(D1:D1000<>"Pensionato")>0;B1:B1000));MIN(SE((C1:C1000="Operaio")*(D1:D1000<>"Pensionato")>0;B1:B1000)));B1:B1000;0);1)}
Temo purtroppo di avere casualmente scoperto che nè la formula "a due qualifiche" nè quella ad esclusione dei pensionati funzionano correttamente.
https://www.dropbox.com/s/wfgdvsr3bu0x9oi/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0
Come puoi vedere il foglio così com'è risponde correttamente il signor VERDI.
Sia in colonna H (filtro su doppia qualifica) che in colonna I (escluso pensionati)
Se però il signor VERDI lo promuovi a quadro la risposta giusta sarebbe il signor BLU ma non viene fornita.
Grazie sempre della pazienza
Prova:
=INDICE(A1:A1000;CONFRONTA(MIN(SE(((C1:C1000="Impiegato")+(C1:C1000="operaio"))*(D1:D1000<>"Pensionato");B1:B1000));B1:B1000;0))
matriciale, da confermare con Ctrl+Maiusc+Invio

ciao paoloard
x***@gmail.com
2018-02-10 10:01:09 UTC
Permalink
Post by Pico1965
...
Come puoi vedere il foglio così com'è risponde correttamente il signor VERDI.
Sia in colonna H (filtro su doppia qualifica) che in colonna I (escluso pensionati)
Se però il signor VERDI lo promuovi a quadro la risposta giusta sarebbe il signor BLU ma non viene fornita.
Grazie sempre della pazienza
Prova con la seguente formula matriciale (da confermare con Ctrl+Maiusc+Invio):
=INDICE(A1:A1000;CONFRONTA(MIN(SE(((C1:C1000="Impiegato")+(C1:C1000="operaio"))*(D1:D1000<>"Pensionato");B1:B1000));B1:B1000;0))

ciao paoloard
Pico1965
2018-03-26 13:40:56 UTC
Permalink
Post by x***@gmail.com
Post by Pico1965
...
Come puoi vedere il foglio così com'è risponde correttamente il signor VERDI.
Sia in colonna H (filtro su doppia qualifica) che in colonna I (escluso pensionati)
Se però il signor VERDI lo promuovi a quadro la risposta giusta sarebbe il signor BLU ma non viene fornita.
Grazie sempre della pazienza
=INDICE(A1:A1000;CONFRONTA(MIN(SE(((C1:C1000="Impiegato")+(C1:C1000="operaio"))*(D1:D1000<>"Pensionato");B1:B1000));B1:B1000;0))
ciao paoloard
Rieccomi qui.
Ho riunito in questo foglio
https://www.dropbox.com/s/35m4h71hoa3y901/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0

tutti i casi di cui abbiamo parlato in questa discussione.

C'è un problema...
Se cambi la data di VERDI = GIALLI cambiano i risultati anche se la qualifica posseduta non è pertinente.
Tutte le formule sballano se ci sono due date uguali (nel senso che prendono il nominativo che ha la data giusta che viene prima di tutti indipendentemente dalla qualifica.

Grazie sempre dell'attenzione
Pico1965
2018-03-29 06:40:59 UTC
Permalink
Post by Pico1965
Post by x***@gmail.com
Post by Pico1965
...
Come puoi vedere il foglio così com'è risponde correttamente il signor VERDI.
Sia in colonna H (filtro su doppia qualifica) che in colonna I (escluso pensionati)
Se però il signor VERDI lo promuovi a quadro la risposta giusta sarebbe il signor BLU ma non viene fornita.
Grazie sempre della pazienza
=INDICE(A1:A1000;CONFRONTA(MIN(SE(((C1:C1000="Impiegato")+(C1:C1000="operaio"))*(D1:D1000<>"Pensionato");B1:B1000));B1:B1000;0))
ciao paoloard
Rieccomi qui.
Ho riunito in questo foglio
https://www.dropbox.com/s/35m4h71hoa3y901/Trovare%20il%20nominativo%20pi%C3%B9%20vecchio.xlsx?dl=0
tutti i casi di cui abbiamo parlato in questa discussione.
C'è un problema...
Se cambi la data di VERDI = GIALLI cambiano i risultati anche se la qualifica posseduta non è pertinente.
Tutte le formule sballano se ci sono due date uguali (nel senso che prendono il nominativo che ha la data giusta che viene prima di tutti indipendentemente dalla qualifica.
Grazie sempre dell'attenzione
No more help?

Bruno Campanini
2016-03-23 13:40:26 UTC
Permalink
Post by Pico1965
Post by Norman Jones
Ciao Pico,
Post by Pico1965
Salve a tutti.
Ho di nuovo bisogno del vostro aiuto.
Colonna A nominativo
Colonna B data di nascita.
Vorrei trovare il nominativo della persona più vecchia.
Con MIN(b2:b1000) trovo la data più vecchia
Avevo pensato ad un cerca.vert ma dato che il dato cercato è nella colonna
precedente a quella utilizzata per la ricerca non funziona.
CERCA(MIN(b2:b1000);B2:B1000;A1:A1000)
ma non funzia nemmeno forse perché il confronto è fra date
Come risolvo?
=INDICE(A1:A1000;CONFRONTA(MIN(B1:B1000);B1:B1000;0);1)
===
Regards,
Norman
Grazie. Funziona perfettamente.
Nella colonna C c'è la qualifica.
Se voglio sapere chi è l'operaio più anziano?
{=INDEX(A1:A6,MATCH(MIN(IF(C1:C6="Operaio",B1:B6)),B1:B6,0))}
FormulaArray

Bruno
Loading...