Funzione SE + CERCA.VERT in excel

Anonimo
2020-08-06T10:49:44+00:00

Buongiorno a tutti, avrei un problema da risolvere su excel.

Faccio un esempio sotto della tabella originale (Tabella 1):

Codice Etichetta
A 1
A 2
A 3
B 1
B 3
C 2

Vorrei trasformare Tabella 1 in modo da avere il "Codice" su una riga sola e, a lato, le varie etichette possibili, (restituendo una X nel caso sia applicabile, un trattino nel caso non lo sia) - Tabella 2:

Codice Etichetta 1 Etichetta 2 Etichetta 3
A X X X
B X - X
C - X -

Ho provato ad applicare, nella colonna "Etichetta 1" della Tabella 2 la formula:

=SE(CERCA.VERT([@[Codice]];Tabella1[[Codice]:[Etichetta]];2;FALSO)="1"; "X"; "-")

(logicamente la medesima formula è stata applicata anche alle altre colonne "Etichetta 2" e "Etichetta 3" cambiando solo il criterio di ricerca rispettivamente da 1 a 2 nel caso di "Etichetta 2" e da 1 a 3 nel caso di "Etichetta 3")

La formula funziona ma solo parzialmente, la ricerca viene effettuata ma il risultato è più o meno questo:

Codice Etichetta 1 Etichetta 2 Etichetta 3
A X - -
B X - -
C - X -

Sembra che, sostanzialmente, durante l'applicazione della formula, la ricerca si fermi al primo risultato ottenuto non ricerchi le righe successive in modo da restituire anche gli eventuali altri risultati applicabili.

Qualcuno può gentilmente aiutarmi a risolvere questo problema?

Ringrazio in anticipo!

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

2 risposte

Ordina per: Più utili
  1. Anonimo
    2020-08-09T08:58:06+00:00

    Buongiorno,

    Guarda l'immagine sopra e applica questa formula alla cella D2 e ​​il basso.

    =SE.ERRORE(INDICE($A$2:$A$17;CONFRONTA(0;INDICE(CONTA.SE($D$1:D1;$A$2:$A$17););0));"")

    Nella cella E2 applica questa formula:

    =SE($D2="";"";SE(SE.ERRORE(CONFRONTA(1;INDICE(($A$2:$A$17=$D2)*(($B$2:$B$17)=(RIF.COLONNA(E2)-RIF.COLONNA($E$2)+1)););0);0)>0;"X";"-"))

    (per trashinarla verso destra fino alla cella G2 e poi verso il basso).

    Nota:

    • Cambia l'intervallo nella formula secondo le tue necessità.
    • Se vuoi puoi convertire la tabella nelle colonne A e B come Tabella.

    Se la mia risposta è giusta per te, contrassegna come Risposta, perché in questo modo posono beneficare i altri utenti, che hanno il stesso problema. Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2020-08-06T12:03:33+00:00

    ciao

    estrai gli univoci

    in J3 da tirare in basso

    =SE.ERRORE(INDICE($A$3:$A$1000;CONFRONTA(0;INDICE(CONTA.SE(J$2:$J2;$A$3:$A$1000&""););0));"")

    in K2 da tirare a destra

    =SE.ERRORE(INDICE($B$3:$B$1000;CONFRONTA(0;INDICE(CONTA.SE($J$2:J$2;$B$3:$B$1000&""););0));"")

    In K3 da tirare a destra e in basso

    =SE(VAL.ERRORE(CERCA.VERT($J3&K$2;$A$3:$A$8&$B$3:$B$8;1;0));"";"X")

    https://www.dropbox.com/s/mhqud7wgklb4ukz/ricerca%20tabella.xlsx?dl=0

    nb

    quando trascini formule con dati tabella

    per bloccarli li devi inserire nella funzione indiretto

    esempio

    =CERCA.VERT(INDIRETTO("Tabella1[Codice]");Tabella1;1;0)

    La risposta è stata utile?

    0 commenti Nessun commento