Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Ricerca ripetizione dati tra due liste (con concatenamento&)

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Flash30005 » 11/07/12 23:25

Nel post del 28 giugno hai detto:
salseb ha scritto:cmq vedo se posso uploadare il file...

Poi cosa è successo?

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Sponsor
 

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 12/07/12 00:19

Flash grazie ma me ne devo ancora occupare, ci devo dedicare un pò di tempo al proposito, questo fine settimana vedo di portare avanti la questione "upload".
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Anthony47 » 12/07/12 01:30

il file excel è una conversione da programma proprietario con database SQL e il problema delle celle vuote, con dati fantasma, non è tanto un'imprecisione o un errore di conversione, ma in quelle celle ci sono i record (non visibili da excel evidentemente) di proprietari non più tali e attuali, ma nel database originario sono eventualmente visibili
però nella conversione ne rimane una traccia ed excel mi rileva i dati fantasma...
A leggere certe scusanti arrossisco io al posto dell' incompetente di turno...

Non hai detto se la funzione Libera risolve e pulisce le celle incriminate (lo hai provato?), comunque con una macro come questa dovresti ripulire tutte le celle contenenti Testo nel foglio di lavoro attivo:
Codice: Seleziona tutto
Sub ripul()
For Each Cell In ActiveSheet.UsedRange
    If Cell.HasFormula = False And VarType(Cell.Value) = vbString Then
        Cell.Select
        Cell.Value = Application.WorksheetFunction.Clean(Cell.Value)
    End If
Next Cell
End Sub

Mettila in un Modulo standard del vba (es in Modulo1) e poi eseguila su ogni foglio contenente dati importati. Obbligatoriamente da usare dopo aver fatto DUE COPIE di backup del tuo file.

un'altra cosa
nella formula
=SE(VAL.NON.DISP(CERCA.VERT(E4;$H$4:$H$5850;1;FALSO));"Non c'è";"C'è")
se (non era dovuto ma ho fatto questa prova per curiosità...) ... se cambio il valore 1 (che indica la colonna della matrice) con qualsiasi altro, tipo 2, 10, 54, etc... il risultato non cambia
Se usi le formule secondo una sintassi tua allora non meravigliarti se i risultati poi saranno ballerini...
Dall' help on line della funzione Cerca.Vert:
Indice è il numero di colonna in tabella_matrice dal quale deve essere restituito il valore corrispondente. Indice uguale a 1 restituisce il valore nella prima colonna di tabella_matrice, indice uguale a 2 restituisce il valore nella seconda colonna di tabella_matrice e così via. Se indice è minore di 1, CERCA.VERT restituirà il valore di errore #VALORE!. Se indice è maggiore del numero di colonne in tabella_matrice, CERCA.VERT restituirà il valore di errore #RIF!.


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 12/07/12 13:59

Anthony47 ha scritto:A leggere certe scusanti arrossisco io al posto dell' incompetente di turno...

chi mi ha riferito quella situazione è una persona che usa il software, ma non è chi quel sw con database lo ha fatto...
comunque dalla tua risposta presumo che in una conversione i dati in Excel per cella non posso tenere conto di modifiche precedenti, cosa che può funzionare, forse, non so quanto e come, in un database, ma da questo momento, non in Excel... se non ho capito male evidentemente
Non hai detto se la funzione Libera risolve e pulisce le celle incriminate (lo hai provato?), comunque con una macro come questa dovresti ripulire tutte le celle contenenti Testo nel foglio di lavoro attivo:

Mettila in un Modulo standard del vba (es in Modulo1) e poi eseguila su ogni foglio contenente dati importati. Obbligatoriamente da usare dopo aver fatto DUE COPIE di backup del tuo file.

non ho avuto ancora tempo per usarla e devo anche approfondire come inserire (ed eventualmente togliere) le macro in un foglio
un'altra cosa
nella formula
=SE(VAL.NON.DISP(CERCA.VERT(E4;$H$4:$H$5850;1;FALSO));"Non c'è";"C'è")
se (non era dovuto ma ho fatto questa prova per curiosità...) ... se cambio il valore 1 (che indica la colonna della matrice) con qualsiasi altro, tipo 2, 10, 54, etc... il risultato non cambia
Se usi le formule secondo una sintassi tua allora non meravigliarti se i risultati poi saranno ballerini...
Dall' help on line della funzione Cerca.Vert: Indice è il numero di colonna in tabella_matrice dal quale deve essere restituito il valore corrispondente.
...
Se indice è maggiore del numero di colonne in tabella_matrice, CERCA.VERT restituirà il valore di errore #RIF!.

Ciao

ok, ma a parte la sperimentazione delle mie formule :D nella cella mi dovrebbe dare l'errore #RIF!, invece non mi modifica il risultato di prima cioè "Non c'è" o "C'è"... (anche inserendo una colonna con dati qualsiasi per prova... cioè rendendo la matrice con minimo due colonne...)

chiedo scusa per l'accanimento, ma se sbaglio io Excel almeno lo dovrebbe segnalare, ma non accade...

Sempre grazie mille per l'attenzione.
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Anthony47 » 13/07/12 00:34

Io dico che in una esportazione viene esportato quello che il programmatore ha programmato di fare, e se vengono esportati record insignificanti si tratta di una esportazione fatta a caso.

a parte la sperimentazione delle mie formule :D nella cella mi dovrebbe dare l'errore #RIF!, invece non mi modifica il risultato di prima cioè "Non c'è" o "C'è"... (anche inserendo una colonna con dati qualsiasi per prova... cioè rendendo la matrice con minimo due colonne...)
La formula Cerca.Vert, come l' hai impostata tu, restituira' l' errore #N/D se Valore non esiste in Tabella e #RIF se invece Valore e' presente. La parte SE(VAL.NON.DISP()) maschera questi valori e li sostituisce con "Se Vero" e "Se falso", ottenendo quello che ti sembra un comportamento strano.

se sbaglio io Excel almeno lo dovrebbe segnalare, ma non accade...
#RIF indica l' errore che fai, poi viene mascherato dal resto della tua formula.

Non avevdo indagato sul contenuto delle celle equivoche ne' sui risultati ottenibili con Libera (vedi viewtopic.php?f=26&t=95927#p551209) le mie considerazioni sono sempre a livello di ipotesi.
Comunque, per usare la macro suggerita ieri sera:
-Alt F11 per aprire l' editor delle macro
-Menu /inserisci /Modulo
-copia il codice della macro e incollalo nel frame di dx
-torna su excel e posizionati su un foglio contenente dati sporchi.
-memorizza quali sono le celle su cui ottieni esiti imprevisti
-lancia la macro
--dal foglio da pulire, Alt-F8
--seleziona RIPUL dall' elenco delle macro disponibili
--premi Esegui
-controlla il risultato

Tutto questo DOPO aver eseguito il backup del tuo file originale.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 15/07/12 13:17

Sempre grazie Anthony per le indicazioni,
scrivo, ho poco tempo questo pomeriggio, solo per dire che l'upload mi occuperà non poco, infatti devo trattare il minimo necessario i dati per la privacy...
Appena possibile lo uploaderò, grazie per l'attenzione.

Un saluto
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 10/09/12 22:57

Salve a voi.
Sto ancora sviluppando questo file excel, dopo la pausa feriale.
Voglio precisare che ho in gran parte tolto i riferimenti per la privacy in vista dell'upload del file.
Purtroppo il tempo e la stanchezza serale mi permettono poco e devo chiedervi qualche altro vosto consiglio prima dell'upload

nella file excel ho tre fogli,
il primo ha i dati già disponibili (che si devono confrontare con quelli del registro cartaceo) lo chiamo: Disponibile!
il secondo è dove inserisco i dati da un (il) registro cartaceo: Registro!
il terzo è dove faccio i controlli: Controllo!
in quest'ultimo ho 5737 righe riportate dal foglio Disponibile! e per fare funzionare la formula
=SE(VAL.NON.DISP(CERCA.VERT(F4;$H$4:$H$5737;1;FALSO));"Non c'è";"C'è")
i dati sono disposti in ordine crescente numerico crescente...

ebbene la cosa si rivela un pò pesante in quanto per vedere se la stringa che ho preparato in F4 fino a F5737 nel confronto (controllo dal foglio Disponibile!) ha una qualche punteggiatura da adeguare ogni volta devo scorrere in basso

non c'è un modo per fare funzionare Cerca.Vert su dati disposti inverso, ovvero ordine decrescente?

spero, scusate, di essere stato chiaro,
purtroppo sono alle prese con il file e sebbene trafficato (lo so bene) per me è un riferimento tale che scusate se non riesco a descriverne meglio la composizione...

Grazie mille per l'attenzione.
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Anthony47 » 11/09/12 01:19

[. . .] in quest'ultimo ho 5737 righe riportate dal foglio Disponibile! e per fare funzionare la formula
Codice: Seleziona tutto
=SE(VAL.NON.DISP(CERCA.VERT(F4;$H$4:$H$5737;1;FALSO));"Non c'è";"C'è")
i dati sono disposti in ordine crescente numerico crescente...
L' ordine crescente e' necessario solo in caso di "Intervallo" pari a Vero oppure omesso; poiche' tu usi invece Falso (per trovare una corrispondenza esatta) non c' e' assolutamente bisogno di ordinare i dati.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 11/09/12 23:41

Anthony grazie della risposta. Mi sto sbrigando adesso e per questo rispondo ora.

Eccomi al mio file problematico...
quindi non è importante, come ho scelto l'opzione "FALSO"... di come siano sistemati i dati, bene.

Tuttavia ho necessità di metterli in ordine crescente, proprio per necessità di confrontare i dati inseriti perchè come avevo precisato devo controllare i dati come sono inseriti, perchè non posso farlo con excel sarebbe da fare una formula per ogni dato, dispendioso come tempo ed inutile...
quindi voglio avvantaggiarmi di non scorrere la lista in basso dove ci sono i dati già disponibili (per vedere se sto mettendo dati ripetuti che devono essere scritti esattamente, questa volta penso di essere stato chiaro)

voglio precisare che i dati in Disponibile! sono in ordine crescente, mentre io sto inserendo i dati nel foglio Registro! (per fare poi il controllo nel foglio Controllo!) dall'ultimo cioè la mia colonna di dati del registro parte dal numero progressivo (concatenato con tutti gli altri identificativi per ogni utenza), la cella risultante è formattata come generale, e se cambio l'ordine dei dati disponibili da A-Z a Z-A,
94 diventa maggiore di 932, 9 diventa maggiore di 899,134 diventa maggiore di 1339,


ecco quindi una seconda richiesta, come posso evitare questo problema?

Grazie sempre dell'attenzione
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Anthony47 » 11/09/12 23:50

Perdona, dopo due mesi e mezzo non so di che cosa si parla e quindi non capisco se c' e' ancora un problema.
Eventualmente fai un breve riepilogo di che cosa dovresti fare, come hai pensato di farlo, come hai messo in pratica queste idee, che cosa di inaspettato ti succede.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 12/09/12 00:13

Scusami, forse è meglio che uploado il file per rendere la visione complessiva, domani spero di finire di editarlo...

intanto isolo il problema che sto proponendo:

volevo sapere come invertire l'ordinamento di una colonna le cui celle sono ognuna un insieme di dati (presi da celle diverse), di cui il primo è un numero (che è fondamentale)...
ora sono ordinate in senso crescente
e se uso la funzione di Excel cioè quella Z>A le celle vengono ordinate come ho detto prima...
per esempio 9 Ditta Rossi Palermo km3,4
si sistema prima (nell'ordine decrescente Z>A)
di 899 Ditta Raimondo Napoli km3,4
mentre quello che desidero è che segua
899, 898, 897, fino a 9, 8, 7, 6 (per esempio molto generico...)
ora mi pare che questo avvenga perchè c'è l'ordinamento strano che usa windows nei caratteri (o qualcosa di simile :D )

Spero di essere stato chiaro, spero.

Grazie ancora per l'attenzione
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Ricerca ripetizione dati tra due liste (con concatenamento&)":


Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti