Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
ERRORE CERCA.VERT. di Riccardo (utente non iscritto) data: 01/09/2014 18:32:21
Buonasera a tutti, sono nuovo ma ho visto che grazie agli esperti che tengono aggiornato il forum avete risolto molti topic.
Io sto lavorando su un file excel dove di fatto esiste un foglio chiamato "anagrafica" e un'altro, "analisi" in cui vorrei associare per ciascuna riga di prodotto processato alcune caratteristiche riportate nel foglio "anagrafica".
Nel mio file "analisi" ho creato una colonna dove è presente l'elenco di oggetti in formato testo (anche ripetuti) a cui voglio assegnare la particolare dimensione caratteristica (formato numero e/0 testo) da cercare, per l'appunto, nel foglio "anagrafica".
Cercando di realizzare questa assegnazione, utilizzo la funzione cerca.vert.
Il problema nasce perché:
- se all’interno della funzione cerca.vert inserisco il valore FALSO mi restituisce sempre #N/D
- se invece inserisco il valore VERO mi restituisce un valore che non è quello esatto ma che è associato in modo ripetuto a più campi diversi tra loro.
Es: cerca.vert (…;…;…;falso)
COLONNA 1 – COLONNA 2
prodotto A - #N/D
prodotto B - #N/D
prodotto C - #N/D
prodotto D - #N/D
Es: cerca.vert (…;…;…;vero)
COLONNA 1 – COLONNA 2
prodotto A - 1
prodotto B - 1
prodotto A - 2
prodotto A - 2
Uso spesso questa funzione nei miei fogli, ma queste errore è la prima volt anche mi capita.
Come posso risolvere? Sapete aiutarmi?
Grazie mille in anticipo, per l'aiuto.
di Riccardo (utente non iscritto) data: 01/09/2014 18:45:01
Chiedo scusa, ma ho sbagliato a scrivere: ovviamente nell'ultimo esempio nella prima colonna la sequenza corretta è A,B,C,D e non A,B,A,A!
Inoltre, ho dimenticato di scrivervi quale dovrebbe essere la risposta che mi attenderei di ottenere con l'utilizzo del cerca verticale:
COLONNA 1 – COLONNA 2
prodotto A - 1
prodotto B - 1,5
prodotto C - 2
prodotto D - testo
CERCA.VERT di mietta (utente non iscritto) data: 01/09/2014 19:03:59
Ciao,
puoi allegare un piccolo estratto del file con il quale lavori?
Il cerca.vert nella maggioranza di casi richiede FALSO come ultimo argomento.
VERO viene utilizzato per altre casistiche
Il messaggio d'errore segnala la mancata precisa corrispondenza.
A presto
di Riccardo (utente non iscritto) data: 01/09/2014 19:10:32
Si, lo so infatti avrei voluto utilizzare "falso" come ultimo argomento, ma ottengo il messaggio di errore.
Riguardo alla mancanza corrispondenza, ho già verificato e nella maggior parte dei casi sono sicuro che la corrispondenza esiste. Per gli altri casi in cui la corrispondenza non fosse esatta mi basterebbe ottenere il messaggio di errore che poi andrei a trattare e filtrare in altro modo.
CERCA.VERT problemi di mantegna (utente non iscritto) data: 02/09/2014 06:48:23
buon giorno,
provo anch'io ad indovinare: scarichi i dati da database esterni? alcune volte i dati sono sporcati da caratteri che Excel non riconosce. Prova a copiare su una brutta copia qualche riga che non viene riconosciuta su un foglio per vedere l'allegato.
di Riccardo (utente non iscritto) data: 02/09/2014 10:38:38
Ho provato a controllare incollando come testo su un foglio word il contenuto di una cella nel foglio "analisi" e il corrispondente nel foglio "anagrafica".
Ciò significa che esiste almeno un match verificato tra i campi eppure anche per questo valore, la funzione CERCA.VERT(...;...;...;FALSO) restituisce #N/D
di Riccardo (utente non iscritto) data: 02/09/2014 14:29:44
Ho appena allegato un file alla discussione dove potete trovare l'esempio di 5 righe. L'intero file si compone di decine di migliaia di righe uguali a queste.
Nel foglio "analisi", trovate selezionate in giallo le colonne critiche dove c'è la funzione cerca.vert.
di Raffaele_53 (utente non iscritto) data: 02/09/2014 14:52:03
Come noterai in anagrafica c'è uno spazio finale, pertanto se cerco pippo non posso trovarlo se c'è scritto pippospazio
Questo codice incollato in anagrafica togliera tutti i spazi finali della colonna B
Sub elimina_spazi()
Dim X As Long, Ur As Long
Ur = Range("B" & Rows.Count).End(xlUp).Row
For X = 1 To Ur
Cells(X, 2) = RTrim(Cells(X, 2))
Next X
Msgbox "Fatto"
End Sub
di Riccardo (utente non iscritto) data: 02/09/2014 14:58:11
Grazie mille per la risposta, velocissima!!!
Non ho mai operato con codici del genere. Cosa s'intende per "incollato in anagrafica"?
cerca.vert annulla.spazi di canapone (utente non iscritto) data: 02/09/2014 14:59:41
Meglio far lavorare il cerca.vert su un insieme determinato di righe.
Un caro saluto a Raffaele
di Raffaele_53 (utente non iscritto) data: 02/09/2014 15:35:47
Un saluto a canapone
Scusami mà stavolta non capisco la formula...
Annulla spazi, non li toglie in tutta la stringa?
@Riccardo
Se non conosci il codice, forse non l'hai neppure abilitato
Ti passo una formula che inserirai in una colonna vuota di ANAGRAFICA
Nella riga due metti =SE(DESTRA(B2;1)= " ";STRINGA.ESTRAI(B2;1;LUNGHEZZA(B2)-1);B2)
Poi trascini giu la formula
Poi copi la colonna e la incolli/speciale/valori in colonna B
annulla.spazi di canapone (utente non iscritto) data: 02/09/2014 15:45:32
Ciao Raffaele,
annulla.spazi leva solo gli eventuali spazi all'inizio ed alla fine della stringa.
Temevo - come chi ci ha preceduto nelle risposte - che le stringhe contenessero caratteri non leggibili dai cerca.vert.
Saluti
di Riccardo (utente non iscritto) data: 03/09/2014 01:40:08
Grazie al vostro aiuto ho risolto il problema! Grazie mille.