Funzione Cerca a 2 variabili

Anonimo
2010-05-04T15:08:12+00:00

Salve,

vorrei sapere se è possibile effettuare su excel una “cerca” secondo 2 variabili.

Mi spiego meglio:

supponiamo che ho 2 sole colonne “frutta” e “colore” e che ho

Mela                gialla

Banana             gialla

Mela                Verde

Banana            Verde

Mela                Rossa

Ho bisogno di sapere se nei record precedenti all’ultimo esiste un record “Mela Verde”

Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2010-05-10T07:39:08+00:00

ciao Marvelito, volendo ormai mantenere l'orribile formula di partenza direi di ricomprendere il tutto in un'unica formula:

=SE(SINISTRA(B2;2)="PS";"la prima formula";"la seconda") eventualmente da implementare con i tuoi ulteriori controlli

dove "La prima formula" è quella già postata, però modificata con un controllo sul codice del primo foglio per indirizzare la lettura sul secondo o sul terzo, evitando così di fare tutto il ciclo di lettura anche se il codice non è quello giusto:

prima formula:

SE(SOMMA(SE(E(SINISTRA($B2;2)="PS";O(A2&Foglio2!$A$2=$A3:$A$10&$B3:$B$10;A2&Foglio2!$A$3=$A3:$A$10&$B3:$B$10;A2&Foglio2!$A$4=$A3:$A$10&$B3:$B$10;A2&Foglio2!$A$5=$A3:$A$10&$B3:$B$10));1));"OK";"NO")    matriciale, da implementare con ulteriori righe per più codici.

nota che nella prima uguaglianza $A$2=$A3: ho tolto il $ davanti al numero di riga per costringere il controllo nell'intervallo alla riga successiva a quella in esame.

seconda formula:

SE(SOMMA(SE(E(SINISTRA($B2;2)="AN";O(A2&Foglio3!$A$2=$A3:$A$10&$B3:$B$10;A2&Foglio3!$A$3=$A3:$A$10&$B3:$B$10));1));"OK";"NO") matriciale


fai sapere, grazie

ciao paoloard

http://riolab.org

***********************************************

Se la risposta ti ha aiutato clicca su "Vota come Utile".

Se ha risolto il problema clicca su "Segna come Risposta".

La risposta è stata utile?

0 commenti Nessun commento

34 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-05-05T14:59:43+00:00

    Ho provato ad importare la formula sul DB Vero ma è molto più pesante della precedente, le dimensioni nonostante l'eliminazione di alcune colonne la dimensione del file è aumentata di altri 4mb ed è lentissimo, vi prego aiutatemi il mio db sta per collassare.

    HELP!!!!!!!

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-05-05T13:18:36+00:00

    Ciao Ragazzi,

    ci sono riuscito! Questa è la formula:

    O(SE(VAL.NON.DISP(CONFRONTA(CONCATENA(A2;Foglio2!A2);$A$3:$A$6&$B$3:$B$6;0));"Falso";CONFRONTA(CONCATENA(A2;Foglio2!A2);$A$3:$A$6&$B$3:$B$6;0));SE(VAL.NON.DISP(CONFRONTA(CONCATENA(A2;Foglio2!A3);$A$3:$A$6&$B$3:$B$6;0));"Falso";CONFRONTA(CONCATENA(A2;Foglio2!A3);$A$3:$A$6&$B$3:$B$6;0));SE(VAL.NON.DISP(CONFRONTA(CONCATENA(A2;Foglio2!A4);$A$3:$A$6&$B$3:$B$6;0));"Falso";CONFRONTA(CONCATENA(A2;Foglio2!A4);$A$3:$A$6&$B$3:$B$6;0)))

    il db test è questo

    Etichetta Colore
    mela rossa FALSO
    banana blu
    mela blu
    arancia blu
    mela blu

    e il foglio 2 è questo

    Colore
    rossa
    verde
    gialla
    blu
    rossa

    credo sia + snella della prima adesso provo a testarla sul db vero quello da 19mb

    Se avete delle idee migliori scirvete pure.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-05-05T10:03:03+00:00

    Ciao David,

    ho provato è funziona ma non è adatto allo scopo, in quanto il campo fisso per la riceca deve essere il il frutto mentre le cmbinazioni le deve fare con una serire di colori presente su un altro foglio.

    Ad essere sincero la fomula per fare questo tipo di operazione io l'ho creata e funziona pure ma è un pò troppo complessa e mi appesantisce il file già di 19mb di seguito la posto magari leggendo questa si riesce a snellire:

    =SE(Q9587=CERCA.VERT(Q9587;Codici!$A$2:$A$101;1;FALSO);O(SE(VAL.NON.DISP(CERCA.VERT(CONCATENA(N9587;Codici!$A$2);V9588:$V$15000;1;FALSO));0)>1; SE(VAL.NON.DISP(CERCA.VERT(CONCATENA(N9587;Codici!$A$3);V9588:$V$15000;1;FALSO));0)>1; SE(VAL.NON.DISP(CERCA.VERT(CONCATENA(N9587;Codici!$A$4);V9588:$V$15000;1;FALSO));0)>1;SE(VAL.NON.DISP(CERCA.VERT(CONCATENA(N9587;Codici!$A$5);V9588:$V$15000;1;FALSO));0)>1;SE(VAL.NON.DISP(CERCA.VERT(CONCATENA(N9587;Codici!$A$6);V9588:$V$15000;1;FALSO));0)>1;SE(VAL.NON.DISP(CERCA.VERT(CONCATENA(N9587;Codici!$A$7);V9588:$V$15000;1;FALSO));0)>1);"no")

    questa vede se il colore rientra in una elenco presente su un altro foglo se così è comincia a ricercare dal record successivo in poi possibili soluzioni, la formula si aggancia a un concatena frutto+colore n modo da creare un dato univoco.

    Ripeto così funziona, ma risulta troppo pesante sono sicuro che è possibile snellirla, io ci ho provato in tutti i modi ma nulla, con la funzione confronta secondo me si riesce a snellire.

    Grazie a tutti

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-05-05T09:19:22+00:00

    Ciao Marvelito,

    ti propongo una soluzione alternativa basata sull'uso della funzione DB.CONTA.VALORI

    In pratica la tua struttura dovrebbe prevedere le 2 colonne "frutta" e "colori" poi ulteriori due celle in cui inserire i criteri aventi come titolo frutta e colori e sotto rispettivamente mela e verde

    Quindi per ipotesi nella cella A1 avrai "Frutta" e poi da A2 ad Axx l'elenco delle frutta. Nella cella B1 avrai "Colori" e poi da B2 a Bxx l'elenco dei colori

    Nella cella D1 avrai "Frutta" mentre nella cella E1 avrai "Colori". Nella cella D2 avrai "Mela" mentre nella cella E2 avrai "Verde".

    A questo punto nella cella risultato scriverai =DB.CONTA.VALORI(A1:B6;A1;D1:E2).

    Per ipotesi ho inserito l'elenco da 6 elementi che mi hai indicato tu. Il risultato della formula sarà 1 ovvero l'unica mela verde presente in elenco.

    David

    La risposta è stata utile?

    0 commenti Nessun commento