Pagina precedente | 1 2 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Cerca.vert con 2 condizioni

Ultimo Aggiornamento: 06/12/2016 14:42
01/02/2011 18:34

Ciao a tutti, in un file di anagrafica ho nella cella a:a i cognomi
in nella cella b:b i nomi, vorrei usare la funzione cerca.vert per avere i dati completi del nomitavivo scelto. Vorrei quindi ottenere:

a2 convalida dati con elenco cognomi ( rossi, verdi, bianchi...)
b2 convalida dati con elenco nomi ( marco, luca, gianni...)
da c2 a g2 i dati anagrafici relativi al nominativo cercato.

Quindi mi servirebbe sapere come fare ad usare la formula in c1, in caso di cognomi analoghi mi fa scegliere il nome che cerco, ed in d1 per ottenere i dati univoci di rossi marco anzichè di rossi luca.

Allego un file.

Grazie a tutti, ciao ciao !!
Post: 60
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Junior
Excel 2010
OFFLINE
01/02/2011 18:51

cerca.vert 2 condizioni

Ciao, prova a copiare in C2 e trascinare a destra

=INDICE(C5:C12;CONFRONTA(1;INDICE(($A$5:$A$12=$A2)*($B$5:$B$12=$B2););0))


Un altro esempio di come usare questa formula l'ho pubblicato rispondendo a Vailo83



http://freeforumzone.leonardo.it/discussione.aspx?idd=9632911


Allego il file

http://myfreefilehosting.com/f/e17082038c_0.02MB


Saluti
[Modificato da (Canapone) 01/02/2011 18:54]

01/02/2011 19:18

Funziona alla perfezione, grazie mille !

A presto ciao ciao !!
02/02/2011 00:27

Scusa se abuso del tuo aiuto, la formula come ho scritto prima funziona e fa ciò di cui avevo bisogno, però non l'ho capita, mi potresti spiegare i vari passaggi, così se capisco il meccanismo lo potrò applicare senza aiuto la prossima volta che ne avrò bisogno.

Grazie, ciao ciao !!
Post: 63
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Junior
Excel 2010
OFFLINE
02/02/2011 12:26

indice confronta

Ciao,

se e appena riesco a scrivere qualcosa di comprensibile, la pubblico.

Ti anticipo che INDICE/CONFRONTA è l'accoppiata più comune di formule usata al posto del cerca.vert.


Saluti

[Modificato da (Canapone) 02/02/2011 20:54]

Post: 0
Registrato il: 29/06/2013
Utente Junior
OFFLINE
29/06/2013 11:24

molto molto interessante
Post: 1
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 08:51

due condizioni da verificare nello stesso record
ho un problema molto simile che non riesco a venirne a capo :-(

Deve cercare nella tabella A2:o15 (evidenziata in verde) il valore in P18 (arancio) e il valore in Q17 (giallo) se entrambe le condizioni vengono rispettate deve scrivere il valore che trova nella colonna K (media oraria)

(Vedere il file allegato)

Grazie anticipatamente a chiunque si interessa al problema
Excel 2010
Post: 23
Registrato il: 24/06/2013
Città: AGRIGENTO
Età: 48
Utente Junior
2007
OFFLINE
01/07/2013 09:36

Ciao prova con questa formula
=MATR.SOMMA.PRODOTTO(($B$2:$B$15=$P18)*($G$2:$G$15=Q17)*$K$2:$K$15)
in poche parole somma gli importi della colonna K al verificarsi delle due condizioni, considerando ogni record univoco ti restituisce il valore da te cercato.

Ciao


----------
Excel 2007
Post: 24
Registrato il: 24/06/2013
Città: AGRIGENTO
Età: 48
Utente Junior
2007
OFFLINE
01/07/2013 09:53

Se copi e incolli la formula stai attento ai riferimenti, ho dimenticato ad inserire "$" nei confronti

=MATR.SOMMA.PRODOTTO(($B$2:$B$15=$P$18)*($G$2:$G$15=$Q$17)*$K$2:$K$15)


----------
Excel 2007
Post: 119
Registrato il: 03/04/2013
Utente Junior
Excel 2000 - 2013
OFFLINE
01/07/2013 09:59

Buona giornata, jhn72 e Gaetanopr;
avevo qualche perplessità a rispondere a questa discussione in quanto, mi sembra sia piuttosto datata.

Premesso che la soluzione Gaetanopr funziona perfettamente, mi permetto di suggerire una piccola modifica:

=MATR.SOMMA.PRODOTTO(($B$2:$B$15=$P18)*($G$2:$G$15=Q$17)*$K$2:$K$15)

la Formula, copiata nel Range Q18 : X21, consente di riportare i Valori di tutti gli Articoli riferiti ai vari Addetti.

In realtà ero partito adattando i riferimenti della Formula di Canapone (che saluto) alla struttura dei Dati dell'allegato; anche quella soluzione, ovviamente, funzionava alla perfezione.

Scusandomi con Gaetanopr per l'intromissione riamango a disposizione.

Buona giornata e buon lavoro.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 25
Registrato il: 24/06/2013
Città: AGRIGENTO
Età: 48
Utente Junior
2007
OFFLINE
01/07/2013 10:19

Ciao GiuseppeMN, non c'è bisogno di scusarsi, io ho pensato ad un'altra cosa, la formula può restituire ZERO quando non trova corrispondenza

quindi la modificherei così:

=SE(MATR.SOMMA.PRODOTTO(($B$2:$B$15=$P18)*($G$2:$G$15=Q$17)*$K$2:$K$15)=0;"";MATR.SOMMA.PRODOTTO(($B$2:$B$15=$P18)*($G$2:$G$15=Q$17)*$K$2:$K$15))



Ciao e buona giornata
[Modificato da Gaetanopr 01/07/2013 10:36]


----------
Excel 2007
Post: 2
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 10:38

Siete uno spettacolo, MAI avrei pensato di avere soluzioni e risposte in cosi breve tempo
Tutte le soluzioni che mi avete proposto funzionano perfettamente anche se preferisco adottare l'ultima che non presenta gli zeri.

[SM=x423047]
Excel 2010
Post: 3
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 11:55

Analizzando il tutto su un range di dati maggiore ho riscontrato due problemi.
1. la funzone MATR.SOMMA.PRODOTTO non permette un range superiore a 129 record ($B$2:$B$131), mettendo 130 record ($B$2:$B$132) restituisce #VALORE!
2. La colonna K (Media oraria) è una media del record e non di TUTTI i record, se si riuscisse a fare in modo che calcolasse una media assoluta di tutte le volte che l'adetto ha prodotto l'articolo sarebbe fantastico anzi non plus ultra sarebbe che si riuscisse ad avere la media assoluta, il valore minimo e il valore massimo del singolo adetto

La formula inserita è quella di GiuseppeMN adattata al nuovo foglio.

Allego un nuovo file sulla base del precedente ma con più dati a disposizione
Excel 2010
Post: 121
Registrato il: 03/04/2013
Utente Junior
Excel 2000 - 2013
OFFLINE
01/07/2013 12:19

Buona giornata, jhn72;
purtroppo, nei File .xlsm e .xlsx, riesco a visualizzare i dati ma non le Formule; rirsco a gestire solo i File .xls

Sicuramente Gaetanopr (che saluto), con Excel 2007 potrà esserti più di aiuto.

I'm sorry!


A disposizione.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 4
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 12:22

allegata la versione xls
Excel 2010
Post: 1.033
Registrato il: 04/07/2012
Città: BARCELLONA POZZO DI GOTTO
Età: 61
Utente Veteran
2010
OFFLINE
01/07/2013 12:25

Ciao
non ho seguito l'argomento ma per il problema dell'aumento range al di fuori delle presenza di dati, puoi sostituire la formula con:
=SE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$K$2:$K$1131)=0;"";MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$K$2:$K$1131))



--------------------------------------------------
"So che spiegare il proprio problema, in modo comprensibile, richiede un certo impegno ed è un lavoro "palloso", ma qualcuno lo deve pur fare ....., indovina chi?" (Cit. "Scossa")
--------------------------------------------------
excel 2010 ,
Win 8
Post: 1.034
Registrato il: 04/07/2012
Città: BARCELLONA POZZO DI GOTTO
Età: 61
Utente Veteran
2010
OFFLINE
01/07/2013 12:46

guardando la formula che hai messo in K, quel valore non è una media ma una quantità per unità di tempo (ora).
Se ho capito bene , tu desideri che quella quantità unitaria sia riferita alla somma delle quantità di quel codice diviso la somma delle ore di quel codice??????
[Modificato da ninai 01/07/2013 13:04]



--------------------------------------------------
"So che spiegare il proprio problema, in modo comprensibile, richiede un certo impegno ed è un lavoro "palloso", ma qualcuno lo deve pur fare ....., indovina chi?" (Cit. "Scossa")
--------------------------------------------------
excel 2010 ,
Win 8
Post: 5
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 13:48

La colonna K, che io ho chiamato Media oraria sono i pezzi prodotti all'ora.

ad esempio nel record 3 c'è Zafar (G) che ha prodotto 2 (C) pezzi dell'articolo 0637561604 (B) in 1800 (I) secondi per cui in un'ora ne produrebbe 4 pezzi (K)

In K il dato deve restare cosi com'è è nel foglio Media che deve essere diverso.
Come è adesso fà la somma di tutti i valori che trova in K rispettando le condizioni dell'articolo e dell'adetto, ma essendo K una media il discorso Somma generà numeri errati.
Spero di essere riuscito a spiegarmi, se cosi non fosse scrivimelo che vedo di farlo meglio.
Excel 2010
Post: 26
Registrato il: 24/06/2013
Città: AGRIGENTO
Età: 48
Utente Junior
2007
OFFLINE
01/07/2013 14:04

Ciao Jhnn72, se ho capito bene vuoi trovare la media delle varie medie della colonna K corrispondente alle due condizioni, se è così la formula potrebbe essere questa:
{=MEDIA(SE((Rilevazioni!$B$2:$B$131=$A2)*(Rilevazioni!$G$2:$G$131=B$1);Rilevazioni!$K$2:$K$131))}
essendo una formula matriciale la devi lanciare usando CTRL+MAIUS+INVIO

Stessa cosa se vuoi gestire il massimo o il minimo, basta cambiare MEDIA in MAX o MIN

Ciao

PS:Naturalmente devi riadattare la formula al tuo reale range, le parentesi graffe si aggiungono da sole tramite la combinazione dei tasti indicata prima
[Modificato da Gaetanopr 01/07/2013 14:22]


----------
Excel 2007
Post: 1.035
Registrato il: 04/07/2012
Città: BARCELLONA POZZO DI GOTTO
Età: 61
Utente Veteran
2010
OFFLINE
01/07/2013 14:33

Ciao
a tutti
secondo me, la formula di Gaetano va bene per min, max ecc. ma per la media (essendo ponderata), andrebbe usata questa:
=SE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$I$2:$I$1131)=0;"";MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$C$2:$C$1131)/MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$I$2:$I$1131)*3600)

se togli la visualizzazione degli zeri, puoi snellirla del SE().
Necessita verifica (provatela col codice 0637525704).
dal 2007 in poi, può andare anche: =SE.ERRORE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$C$2:$C$1131)/MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$I$2:$I$1131)*3600;"")
[Modificato da ninai 01/07/2013 14:39]



--------------------------------------------------
"So che spiegare il proprio problema, in modo comprensibile, richiede un certo impegno ed è un lavoro "palloso", ma qualcuno lo deve pur fare ....., indovina chi?" (Cit. "Scossa")
--------------------------------------------------
excel 2010 ,
Win 8
Post: 1.598
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Veteran
2013
OFFLINE
01/07/2013 14:38

Potrei sapere da jhn72
A cosa servirebbe questi calcoli? Con le adeguate spiegazioni?
Non mi accontento di semplici spiegazioni.
Grazie mille.
Excel 2013
Post: 6
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 14:48

Gaetanopr non so come hai fatto e cosa hai fatto ma funziona perfettamente
la formula che ho ricavato seguendo tutti i vostri consigli è :

=SE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1161=$A2)*(Rilevazioni!$G$2:$G$1161=B$1);Rilevazioni!$K$2:$K$1161)=0;"";ARROTONDA(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1161=$A2)*(Rilevazioni!$G$2:$G$1161=B$1);Rilevazioni!$K$2:$K$1161);2))

a questa formula vorrei adattare la soluzione di Gaetanopr

=MEDIA(SE((Rilevazioni!$B$2:$B$131=$A2)*(Rilevazioni!$G$2:$G$131=B$1);Rilevazioni!$K$2:$K$131))

in modo che se il risultato è nullo non dià errori, che amplii il range da 131 a 1161 e che sia autoaggiornante, sempre che sia possibile

Non sapevo nemmeno dell'esistenza delle formule matriciali.
Ma per le forumle Matriciali è necessario sempre l'uso dei tasti CTRL+MAIUS+INVIO, se cosi fosse, cercavo un metodo autoaggiornante.

Scusatemi per la mia insistenza (se potete)
Excel 2010
Post: 123
Registrato il: 03/04/2013
Utente Junior
Excel 2000 - 2013
OFFLINE
01/07/2013 14:50

Ciao, jhn72;
ti chiedo scusa ma, l'età è quella che è e di certo non aiuta, devo ammettere che tra Formule e Formule matriciali mi sono un pò perso.

Mi limiterò quindi a cercare di rispondere alla Tua domanda:

la funzone MATR.SOMMA.PRODOTTO non permette un range superiore a 129 record ($B$2:$B$131), mettendo 130 record ($B$2:$B$132) restituisce #VALORE!

Dai pochi test che ho effettuato, ho notato che #VALORE! viene reso quando il Codice Articolo non è presente nel Foglio di lavoro Rilevazioni; come ad esempio il Codice Articolo 0637524503 che è presente nel Foglio di lavoro BaseDati ma non in Rilevazioni. Quindi, non trovando riscontri, la Formula, come risultato, rende #VALORE!.

Ora, se questo è un problema, puoi provare con:

[TESTO ::vb]
(Edit: ninai, io le ho provate tutte ... ma non c'e verso; il Codice non riesco a farlo comparire nel formota che desidero; pazienza, me ne farò una ragione. I'm sorry !)
=SE(VAL.ERRORE(CERCA.VERT($A2;Rilevazioni!$B:$B;1;0));"";SE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$131=$A2)*(Rilevazioni!$G$2:$G$131=B$1)*Rilevazioni!$K$2:$K$131)=0;"";MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$131=$A2)*(Rilevazioni!$G$2:$G$131=B$1)*Rilevazioni!$K$2:$K$131)))

Se devo essere sincero preferirei:
=SE(VAL.ERRORE(CERCA.VERT($A2;Rilevazioni!$B:$B;1;0));0;SE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$131=$A2)*(Rilevazioni!$G$2:$G$131=B$1)*Rilevazioni!$K$2:$K$131)=0;"";MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$131=$A2)*(Rilevazioni!$G$2:$G$131=B$1)*Rilevazioni!$K$2:$K$131)))

La visualizzazione degli Zeri la puoi escludere.

Se mi consenti un consigliio, vedi se puoi avere un formato uguale per tutti i valori numerici nel Foglio di lavoro Media (solo intero, un decimale, due decimali ma uguale per tutti i valori.)

Spero di non essere andato fuori tema.

A disposizione.

Buona serata a tutti.

Giuseppe

P.s. ho risposto senza accorgermi della Tua risposta #22
[Modificato da GiuseppeMN 01/07/2013 14:57]

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 7
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 14:53

Ciao Raffaele,
è una tabella statistica sulle produzioni degli operatori, il foglio Rilevazioni sono appunto i dati mentre il foglio Media dovrebbe essere la tabella risultante da tutti i dati.
Excel 2010
Post: 1.036
Registrato il: 04/07/2012
Città: BARCELLONA POZZO DI GOTTO
Età: 61
Utente Veteran
2010
OFFLINE
01/07/2013 14:59

ribadisco che la media delle medie , non corrisponde alla media che si vuole ottenere.
Secondo me, la media giusta è la somma delle quantità diviso la somma delle ore impiegate (ovviamente con i criteri codice e addetto, fino ad ora utilizzati).
Giuseppe, se il range della formula è superiore a quello dei dati presenti, ti può dare errore, avevo proposto una soluzione.
Ma al momento non sto avendo riscontro dei miei interventi.



--------------------------------------------------
"So che spiegare il proprio problema, in modo comprensibile, richiede un certo impegno ed è un lavoro "palloso", ma qualcuno lo deve pur fare ....., indovina chi?" (Cit. "Scossa")
--------------------------------------------------
excel 2010 ,
Win 8
Post: 1.599
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Veteran
2013
OFFLINE
01/07/2013 15:02

Questa non è una spiegazione adeguata.
La spiegazione che intrepreto Io è che (non possono andare a "pisciare"), perchè l'ho vedi dal tabulato. Ora se Tu ci vai TU 100 volte al giorno, nessuno lo nota?

Se sbaglio nella "durezzA", dammi risposte adeguate e casomai chiedo scusa nel forum.
Excel 2013
Post: 27
Registrato il: 24/06/2013
Città: AGRIGENTO
Età: 48
Utente Junior
2007
OFFLINE
01/07/2013 16:04

Re:
ninai, 01/07/2013 14:59:

ribadisco che la media delle medie , non corrisponde alla media che si vuole ottenere.
Ma al momento non sto avendo riscontro dei miei interventi.


Ciao ninai io condivido quello che dici, e consiglio a jhn72 di prendere in considerazione quanto da te detto e di confrontare i risultati anche con la formula da te suggerita, che differisce(io non l'ho provato sul file) dalla media delle medie.
Ciao


[Modificato da Gaetanopr 01/07/2013 16:05]


----------
Excel 2007
Post: 8
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 16:16

Re:
raffaele1953, 01/07/2013 15:02:

Questa non è una spiegazione adeguata.
La spiegazione che intrepreto Io è che (non possono andare a "pisciare"), perchè l'ho vedi dal tabulato. Ora se Tu ci vai TU 100 volte al giorno, nessuno lo nota?

Se sbaglio nella "durezzA", dammi risposte adeguate e casomai chiedo scusa nel forum.


Nelle medie è compreso l'andare a "pisciare" e NON sono dati finalizzati per stressare l'operatore ma per formulare un'adeguamento dei prezzi al cliente.
Ho una piccola azienda artigiana non un campo di prigionia !

Excel 2010
Post: 9
Registrato il: 29/06/2013
Utente Junior
OFFLINE
01/07/2013 16:25

Re:
ninai, 01/07/2013 14:33:

Ciao
a tutti
secondo me, la formula di Gaetano va bene per min, max ecc. ma per la media (essendo ponderata), andrebbe usata questa:
=SE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$I$2:$I$1131)=0;"";MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$C$2:$C$1131)/MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$I$2:$I$1131)*3600)

se togli la visualizzazione degli zeri, puoi snellirla del SE().
Necessita verifica (provatela col codice 0637525704).
dal 2007 in poi, può andare anche: =SE.ERRORE(MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$C$2:$C$1131)/MATR.SOMMA.PRODOTTO((Rilevazioni!$B$2:$B$1131=$A2)*(Rilevazioni!$G$2:$G$1131=B$1);Rilevazioni!$I$2:$I$1131)*3600;"")


Eccellente !!!

funziona tutto a dovere ed in effetti la "Media oraria" (K) nel foglio media è un risultato strettamente collegato al recond singolarmente e non nel suo insieme, e giustamente con la tua soluzione prende la media dei dati nel suo insieme e non singolarmente.

Adesso faccio tutte le verifiche del caso ma dai primi riscontri è tutto perfetto

Excel 2010
Post: 1.037
Registrato il: 04/07/2012
Città: BARCELLONA POZZO DI GOTTO
Età: 61
Utente Veteran
2010
OFFLINE
01/07/2013 16:51

Ok,
Fai sapere del test, ho ancora qualche dubbio.



NB
piccola ottimizzazione algebrica, in K2 a scendere, puoi sostituire con =C2/I2*3600, eviti le parentesi e secondo me è più intuitiva



--------------------------------------------------
"So che spiegare il proprio problema, in modo comprensibile, richiede un certo impegno ed è un lavoro "palloso", ma qualcuno lo deve pur fare ....., indovina chi?" (Cit. "Scossa")
--------------------------------------------------
excel 2010 ,
Win 8
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 22:00. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com