› Excel e gli applicativi Microsoft Office › ricerca di due valori presenti in due celle per avere un terzo valore-
-
AutoreArticoli
-
Buonasera a tutti,
quale funzione devo utilizzare per cercare dentro un tabella chiamata DB i valori presenti nelle colonne A e B per far si che selezionando con un menù a tendina le colonne F e G nella colonna H mi compaia la disponibilità inserita nella colonna C.
In allegato un file di esempio.
Grazie.
Allegati:
You must be logged in to view attached files.ciao
prova con
=SE(E(F3=A3;E(G3=B3));"si";"no")lascia stare questa, non funziona, ma ci riprovo....
Sapete che non sono esperto di formule 🙂 e aspetto l'intervento di qualche Guru.
Ma dato l'esempio fornito da Massimo io scriverei una cosa così:
H3
=SCEGLI(MATR.SOMMA.PRODOTTO((A3:A6=F3)*(B3:B6=G3));"SI";"NO")Edit by VF: mi autocorreggo, il secondo valore non viene recuperato, bisogna intercettare l'errore #VALORE!:
H3
=SE.ERRORE(SCEGLI(MATR.SOMMA.PRODOTTO((A3:A6=F3)*(B3:B6=G3));"SI");"NO")Buonasera vecchio Francy, non funziona e poi come uno sciocco ho messo si e no; ma io voglio che mi restituisca il valore che può essere anche alfanumerico esatto in corrispondenza della colonna C! Tipo quando usi il =SE(CERCA.VERT(A1;dati!A2:C2700;3;0)
non funziona
mi dispiace
però a me sì sul foglio di esempio che hai postato (la soluzione con SE.ERRORE intendo, altrimenti ottengo un errore #VALORE!). Comunquevoglio che mi restituisca il valore che può essere anche alfanumerico esatto
questo cambia tutto 😀
ciao Oscar,
io ho capito che le discriminanti devono essere 2:
targa E modello
potrei arrivarci con VBA, ma non certo con le formule che non sono mai state la mia passione....
ciao
Frank
ciao Oscar,
io ho capito che le discriminanti devono essere 2:
targa E modello
Nel foglio che ha allegato lui ha scritto (mi deve restituire (si o no))
quale funzione devo utilizzare per cercare dentro un tabella chiamata DB i valori presenti nelle colonne A e B per far si che selezionando con un menù a tendina le colonne F e G nella colonna H mi compaia la disponibilità inserita nella colonna C.
manca un pò la punteggiatura....
ma al primo post ha scritto quanto sopra
Si corretto, devono essere soddisfatti i due valori presenti nelle colonne F e G, che cercano nella matrice A2:C6, il si o il no, ma potrebbe trattarsi anche del numero di telaio, del tipo di carburante che viene inserito nella colonna C. Quindi se F e G trovano l'esatta corrispondenza, questa viene riportata nella colonna H, altrimenti la colonna rimane vuota!
caro
tempusfugit e/o mflauto che tu sia,
non me ne voglia nessuno,
ma per il futuro ed al fine di non far perdere tempo ad altri utenti, e soprattutto a te per ottenere risposte,
nella stesura della domanda ti invito a porre attenzione anche alla forma scritta.
Sempre che chi ne abbia voglia, sappia anche leggere...
Grazie
Frank
ciao
=SE.ERRORE(INDICE($C$3:$C$1000;CONFRONTA(1;INDICE(($A$3:$A$1000=$F3)*($B$3:$B$100=$G3);;);0));"")
Vedi così
ho spostato le colonne , per trovarlo nella colonna prima con cerca.verticale non va forse si puo con scarto e identificando il numero di riga con indirizzo , ma diventa complicato poi forse non va bene ugualmente
ciao
Oscar
tu hai modificato la seconda colonna
che ha una convalida (l'hai di fatto bruciata)
io penso che a parte l'esempio, giustamente striminzito,
quella convalida filtri i dati in base alla targa inserita nella prima cella
ora non so perchè visto che la targa è univoca ,
perciò basterebbe quella, vuole cercare con 2 parametri forse è solo un esempio.
In qualsiasi caso la formula che ho proposto fa quello richiesto.
spiego anche perchè il doppio indice
la formula per se stessa sarebbe
=SE.ERRORE(INDICE($C$3:$C$1000;CONFRONTA(1;($A$3:$A$1000=$F3)*($B$3:$B$100=$G3);0));"")
ma è matriciale...........come faccio a non confermarla matriciale?
elimino la matrice aggiungendo un indice()
=SE.ERRORE(INDICE($C$3:$C$1000;CONFRONTA(1;INDICE(($A$3:$A$1000=$F3)*($B$3:$B$100=$G3);;);0));"")
ecco che elimino di fatto la matrice
ciao
Buongiorno Giancarlo,
mi dice che la formula non è corretta:
=SE.ERRORE(INDICE($C$3:$C$1000;CONFRONTA(1;INDICE(($A$3:$A$1000=$F3)*($B$3:$B$100=$G3);;);0));"")
una curiosità a cosa servono i 2 punti e virgola tra le 2 parentesi?
Allegati:
You must be logged in to view attached files.Buona giornata a Tutti.
Buona giornata @mflauto la Formula
=SE.ERRORE(INDICE($C$3:$C$1000;CONFRONTA(1;INDICE(($A$3:$A$1000=$F3)*($B$3:$B$100=$G3);;);0));"NO")
funziona correttamente.Che versione di Office utilizzi?
A disposizione.
Giuseppe
Buona giornata gianfranco55;
grazie del riscontro.La mia richiesta di esplicitare la versione di Office è motivata dal fatto che non sono sicuro che la Funzione "CONFRONTA" sia presente nelle versioni di Office precedenti a Office 2010.
Voglio dire, la Formula:
=SE.ERRORE(INDICE($C$3:$C$100;AGGREGA(15;6;RIF.RIGA($H$3:$H$100)-2/(($A$3:$A$100=$F$3)*($B$3:$B$100=$G$3));RIF.RIGA(A1)));"Fuori range")
analoga a quella da Te proposta, funziona correttamente per versioni di Office 2010 o successive mentre per Office 2007 serve una Formula matriciale in quanto la Funzione "AGGREGA" non è disponibile.Per carità di Patria non ti dico come deve essere modificata l'analoga Formula per versioni di Office precedenti al 2007.
A margine di quanto sopra, ho apprezzato la tua soluzione che ho salvato nella Directory "Soluzioni da non cancellare mai".
A disposizione.
Giuseppe
ciao
bene che hai risolto c'èra lo spazio?
Giuseppe
sai che mi hai incuriosito
sono andato a vedere nelle versioni vecchie il confronta()
non mi ero mai posto il problema
c'è anche nel 2003
nella mia formula l'unica limitazione potrebbe essere il SE.ERRORE() che parte dal 2007
da sostituire con VAL.ERRORE() nel 2003
più indietro non vado
buona giornata
non sono sicuro che la Funzione "CONFRONTA" sia presente nelle versioni di Office precedenti a Office 2010.
Office 2003 e Office 2007, CONFRONTA c'è e funziona benissimo, e guai se non ci fosse, ho dei file che si basano su questa funzione (in combinata con INDICE ovviamente).
Per il resto, gianfranco è sempre sul pezzo
Buon pomeriggio gianfranc55.
Giusto per completezza, per chi è interessato, la Formula:=SE.ERRORE(INDICE($C$3:$C$100;AGGREGA(15;6;RIF.RIGA($H$3:$H$100)-2/(($A$3:$A$100=$F$3)*($B$3:$B$100=$G$3));RIF.RIGA(A1)));"Fuori range")
per la Versione Office 2007 la Formula diventa necessariamente matriciale sostituendo la Funzione "AGGREGA", non disponibile, con la Funzione "PICCOLO" opportunamente strutturata.A disposizione.
Giuseppe
-
AutoreArticoli
