La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buona sera a tutti,
sono nuovo del forum, ho letto il regolamento e spero di non fare cavolate.
Vi sottopongo il problema.
In un file excel, che ho nominato "data base" (classica matrice), ho in colonna un elenco di codici a cui corrisponde una denominazione e di seguito una serie di colonne riportanti diverse tipologie di dati alcuni costanti altri variabili da aggiornare quotidianamente.
L'elaborazione dei dati mi permette poi di produrre un un report di sintesi.
I dati da aggiornare vengono prelevati da un altro foglio excel, che ho denominato "update", a sua volta aggiornato da file TXT.
Per aggiornare il file "data base" con i dati presenti nel file "update" ho utilizzato la funzione "indice/confronta" e per essere certo della sintassi mi sono letto e ho applicato i suggerimenti forniti nell'utile documento del sito.
Per evidenziare le corrispondenze non esatte ho inserito "indice/confronta" in SE.ERRORE(indice/confronta;0) perchè vorrei che il file riportasse degli zeri dove non vi fosse il codice corrispondente e quindi i relativi dati nel file "update".
Il problema purtroppo è che il file "data base" non viene popolato correttamente, nel senso che non lo fa con la corrispondenza esatta, non ostante nella funzione confronta sia inserito lo zero.
Per facilità, a titolo di esempio, vi riporto nel file excel allegato una sintesi di quanto sopra, per far meglio comprendere il problema. Il file riporta nel foglio "DB" una sintesi del mio file "Data Base" e nel foglio successivo "update" una sintesi del mio omonimo file.
Potrete osservare che:
1) il foglio DB presenta un codice (evidenziato in rosso) non presente nel foglio update, ma la funzione riporta in corrispondenza i dati del codice sottostante e non degli zeri;
2) Il foglio update riporta in fondo il codice XX (in rosso) non presente nel foglio DB ma i suoi dati vengono attribuiti all'ultimo codice del file DB che non è il codice XX.
Per logica e sintassi mi sembra di aver replicato le istruzioni fornite nel documento del sito ma evidentemente sto sbagliando qualcosa, cortesemente potete aiutarmi ?
Vi ringrazio anticipatamente.
Maury
Ciao Maury,
il problema è che combinando INDICE e CONFRONTA tu dici al foglio DB di andare a cercare una riga specifica dell'intervallo (la settima, nel caso di CON); nell'altro foglio, al settimo posto c'è un altro prodotto... e poi si sfalsa tutto di una riga, ovviamente.
Perché funzioni, dovresti avere nei due fogli lo stesso elenco esatto, ma mi sembra un po' cervellotico (a quel punto basterebbe un "="). Non potresti usare CERCA.VERT?
Ad esempio (sempre riferendomi alla cella C9, quella di CON):
=SE.ERRORE(CERCA.VERT(A9; Update!A$3:C$24; 3; 0); 0) (per ottenere la colonna Q.)
=SE.ERRORE(CERCA.VERT(A9; Update!A$3:D$24; 4; 0); 0) (per ottenere la colonna VAR)
Buongiorno
Devi mettere i riferimenti al foglio in cui fai la ricerca come l'hai scritta tu cerca il dato di colonna A nella stessa colonna A quindi in C3 da trascinare a destra e poi in basso
=SE.ERRORE(INDICE(Update!C$3:C$24; CONFRONTA($A3; Update!$A$3:$A$24; 0));0)
Preferisco usare il consiglio di Danilo, come scritto nel documento del sito indice/confronta funziona meglio di ricerca verticale.
Grazie comunque Leonardo
Si scusa avevo invertito le risposte per errore ? ?