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

Ricerca ripetizione dati tra due liste (con concatenamento&)

Postdi salseb » 23/06/12 16:00

Salve a voi,
mi sono iscritto in quanto ho visto che siete abbastanza esperti e voglio sottoporre un problema che sto volendo cercare di risolvere con la mia esperienza base di Excel.
Potrei farlo a mano ma cercare i dati tra fogli sparsi è alquanto fastidioso...

Sto cercando di trattare due liste di dati
la prima è cartacea
la seconda è già disponibile in Excel e manca di alcuni dati da prendere dalla prima lista cartacea.

I dati (che per ora ritengo base) da confrontare sono disposti in circa 5800 righe
e sono (le colonne):

-n. archivio (con questo numero nel file excel c'è l'ordine crescente)

-Cognome e Nome (in colonne separate adiacenti)

-Strada

-numero chilometrico (tipo km. 2,350)

(si tratta di vedere se il domicilio non è più esistente o se non è presente nella lista excel, ordinata )

sto inserendo i dati della lista cartacea in un foglio diverso della lista excel da aggiornare.
per ora sto preparando le formule, giostrando tra funzioni che non conoscevo prima come
Cerca.Vert
con l'aggiunta di Val.Non.Disp
ad ora ho deciso, non so se sia opportuno, di concatenare i dati che identificano le righe, con la funzione &
(non si vede bene, tra l'altro scritta qui, comunque si tratta della E commerciale)
trattando anche gli spazi vuoti eventualmente presenti (non posso controllarli tutti)
tipo (in colonna M): =D2&" "&E2&" "&G2&" "&J2

questo nella lista già presente (da aggiornare)
e
nella lista, prima in altro foglio!, che sto aggiungendo dalla lista cartacea, poi ho messo tutto in un solo foglio per evitare sintassi errata (su cui non sono ferrato e anche per semplificare un pò...)

alla fine faccio il confronto
con =CONFRONTA(M2;$Q$2:$R$5821;"*")
M2 è la colonna con i dati (concatenati con &) che sto aggiungendo
e la matrice $Q$2:$R$5821 è quella già presente da aggiornare,

cercando di verificare se il dato è già presente o no nella lista excel (le 5800 righe circa)

le due concatenazioni sono simili, come ordinamento dei dati, e gli spazi ho visto che sono distribuiti perfettamente (credo)
tuttavia qualcosa non funziona
mi dà infatti il messaggio #VALORE!

ho messo anche =CONFRONTA(M2;$Q$2:$R$5821;"0")
cioè 0 (Zero) al posto di asterisco "*" ma mi dà il messaggio #N/D
o l'uno o l'altra dovrebbe funzionare in quanto mi sembra che la funzione CONFRONTA tratta sia il testo che valori numerici
le colonne dove ho concatenato i dati sono formattate come Testo, quindi ripeto una delle due dovrebbe funzionare, ma invece no, non lo capisco proprio...

ho provato anche il confronto (NOTA: delle colonne dove ho concatenato i dati) con la formula:
=SE(VAL.NON.DISP(CERCA.VERT(M2;$Q$2:$R$5821;"FALSO"));"Non c'è";"C'è")
ma mi dà SEMPRE E INDIFFERENTEMENTE la risposta: "C'è", il che non è vero

ho provato anche il confronto tra le colonne (dove ho concatenato i dati) nell'altro foglio! con

=SE(VAL.NON.DISP(CERCA.VERT(M84;Arch!M$2:N$5821;1;"FALSO"));"Non c'è";"C'è")

ma in questo caso a volte mi dà:
"C'è"
altre volte invece
"Non c'è"
quando invece un dato (concatenato) è già nell'altra colonna, stesso formato, ordine, nessuno spazio
non riesco a capire in che relazione dia questi due messaggi...

ho anche usato colonne di appoggio tipo mettere tutto in maiuscolo (ma CONFRONTA non discrimina tra maiuscole, comunque l'ho fatto...)
tuttavia ho un dubbio riguardo al dato chilometrico della strada, con formato 3 numeri decimali, ma visualizzato, nelle colonne dove ho concatenato i dati, con gli zeri finali decimali mancanti
tipo 2,2 anzichè 2,200 o 4,86 al posto di 4,860

Non riesco proprio a capire...
potreste darmi un consiglio?
Grazie...

EDIT ore 17.14
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Sponsor
 

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 23/06/12 18:05

allora, scusate, cerco di abbreviare il problema...

- devo aggiornare un file excel di circa 5800 righe (utenti) con dati provenienti da archivio cartaceo
- quindi si tratta di verificare quali utenti con precisi dati sono presenti in excel (quasi tutti) e quale manca

- i dati di ogni utente sono alfanumerici e per questo li ho uniti in una colonna (di servizio) con la funzione & commerciale, ritenendo così di facilitare il confronto

- cimentandomi nell'usare
CONFRONTA
oppure
VAL.NON.DISPp insieme a CERCA.VERT

è possibile verificare i dati ripetuti con una o l'altra funzione?

se sì perchè mi dà gli errori di cui sopra?

Grazie in anticipo...
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Flash30005 » 23/06/12 18:11

Ciao Salseb e benvenuto nel Forum

Non credo tu possa confrontare un dato (colonna M) con una matrice composta da più colonne (Q e R)
cosa hai in queste due colonne?
La formula Confronta funziona se confronti una cella con una serie di dati in colonna e ti fornisce il numero di riga nella quale trova il dato nel caso usi come corrispondente 0 (zero) fornendo errore #N/D nel caso non trova corrispondenza
es.:
Codice: Seleziona tutto
=CONFRONTA(M2;Q$1:Q$5900;0)


Quindi, a mio parere, dovrai dedicare una colonna concatenata anche dei dati Archivio
Ma,a questo punto, potrai usare anche il Conta.Se che gestisce meglio le matrici di righe e colonne
Codice: Seleziona tutto
=CONTA.SE(Q1:R5900;M2)

(ma bisogna sempre sapere cosa hai in Q e in R)
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-

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 23/06/12 18:21

Flash, buongiorno e grazie per la risposta
Sto uscendo per una commissione e intanto ti dico che il problema matrice in realtà l'ho messo perchè le funzioni vogliono cercare in una matrice almeno così avevo capito... vedendo esempi con CONFRONTA che cerca in una matrice....
e io in realtà ho la prima colonna (della matrice) con i dati concatenati, nell'altra non c'è nulla
è solo per evitare grattacapi con formule troppo lunghe
cioè una volta che una funzione mi trova il numero archivio poi deve cercare nella SOLA riga di quel numero (le strade infatti si possono ripetere così come il numero chilometrico)
concatenando i dati li rendevo esclusivi e immediatamente scartabili...
la colonna concatenata dei dati Arch(Archivio) l'ho già nel foglio! Arch(Archivio) e nel foglio! dove sto facendo i controlli...

ritorno al problema dopo aver riletto la tua risposta:
CONFRONTA indichi che confronta il dato di UNA cella... vale anche se la cella è la concatenazione di dati che mi interessa?

Scusami se mi hai già dato la risposta ma sono proprio nuovo con queste funzioni che ho scoperto solo per risolvere il problema...

EDIT: 19.28
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Anthony47 » 23/06/12 18:53

Ciao salseb, benvenuto anche da parte mia.
Aggiungo qualche considerazione a quanto stai facendo con Flash.
La sintassi di Confronta e' CONFRONTA(valore;matrice;corrisp) (come recita l' help on line di Excel); "corrisp" puo' essere 0, 1, -1 oppure omesso che equivale a 1.
Inoltre matrice deve essere monodimensionale (cioe' una sola riga, oppure una sola colonna).

La sintassi di Cerca.Vert e' CERCA.VERT(valore;tabella_matrice;indice;intervallo) (stessa sorgente); nelle tue formule manca "Indice", quindi la formula NON RESTITUISCE l' errore #N/D ma #VALORE, pertanto il SE restituisce la componente "Se falso" col risutato che hai visto...

La formula Confronta con "*" e' pertanto un pochino avventurosa. Quella con "0" corrisponde alla ricerca della esatta corrispondenza di "valore" in "matrice" (guarda help on line per capire cosa ti restituisce con 1 e -1), con errore #N/D nel caso che il valore non sia presente. Nota che la sintassi giusta prevede l' uso del "numero" 0, non della stringa, anche se excel riesce a gestire la conversione automatica del tipo. Idem per l' uso di "Falso" nella formula Cerca.Vert.

La matrice bidimensionale $Q$2:$R$5821 non e' invece digerita da Confronta, quindi dovresti usare qualcosa come
Codice: Seleziona tutto
=CONFRONTA(M2;$Q$2:$Q$5821;0)
(ovviamente verificando la correttezza dell' indirizzo della matrice); la formula controlla la corrispondenza tra il valore cercato e i valori in matrice, qualsiasi sia l' origine dei dati (una formula, un input da tastiera), e ti restituisce la posizione all' interno della matrice (cioe' se M2 e' presente in Q3 otterrai come risultato 2).
Una volta identificata la riga in cui e' presente la chiave M2 puoi prelevare un valore su quella riga usando la funzione Indice, oppure Scarto.

La formula Cerca.Vert dovrebbe somigliare a
Codice: Seleziona tutto
=SE(VAL.NON.DISP(CERCA.VERT(M2;$Q$2:$R$5821;1; FALSO));"Non c'è";"C'è")


Spero che con questi spunti siano sufficienti, altrimenti posta ancora spiegando ancora i termini del problema.

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 24/06/12 15:17

Anthony47 grazie anche a te per il benvenuto e buonpomeriggio.
Sono alle prese con gli impegni di fine settimana, ho approfondito ieri sera qualcosa sui tuoi consigli,
certo i punti che devo approfondire sono diversi
parto con il riguardarli uno ad uno se no non ne esco fuori...

ieri ho aggiustato una formula:
=CONFRONTA(M2;Arch!$M$1:$M$5821;0)
cioè la matrice la considero dalla riga 1 (UNO)
cioè a me non interessa tanto il confronto all'interno della matrice, ma la matrice aveva, ANCHE, senso per il numero della riga dalla 0 del foglio, per cui ho messo $M$1:$M$5821, ripeto... mi serve il numero della riga, all'interno del foglio, non la posizione all'interno della matrice (che comunque ha i dati dalla riga2, sotto la prima riga che contiene i nomi delle mie colonne...)

riporto intanto dall'help su CONFRONTA(valore; matrice; [corrisp]):
http://office.microsoft.com/it-it/excel ... 62414.aspx

- Se corrisp è uguale a 0 e valore è una stringa di testo, nell'argomento valore sarà possibile utilizzare i caratteri jolly, ovvero il punto interrogativo (?) e l'asterisco (*). Utilizzare il punto interrogativo e l'asterisco per indicare rispettivamente un carattere singolo e una sequenza di caratteri qualsiasi. Se si desidera trovare un punto interrogativo o un asterisco, digitare una tilde (~) prima del carattere.

ho applicato precedentemente in maniera sbagliata (tutti sintomi :D di chi si applica per la prima volta ad una funzione...) il "*", va nell'argomento "valore" ma a questo punto però scusate il dubbio non ho capito come lo dovrei indicare lì', cioè insieme ad M2...
Anthony magari mi hai già risposto con
Anthony47 ha scritto:Nota che la sintassi giusta prevede l' uso del "numero" 0, non della stringa, anche se excel riesce a gestire la conversione automatica del tipo. ...

... cioè sia che si tratta di valori numerici che di stringa, da confrontare, Excel si adatta automaticamente (per il caso, spero... )
scusatemi ma purtroppo sono proprio neofita della formula, e del tipo di argomenti richiesti...

riguardo all'argomento "indice" di Cerca.Vert, era più una svista da formula trascinata le prime volte
(uso colonne diverse per sperimentare la stessa formula..., ma ho corretto, grazie

tuttavia a questa riga (a proposito, i due spazi dopo l'argomento indice ci vogliono o no? :-? , le virgolette neanche, mi sembra di capire,
... comunque
=SE(VAL.NON.DISP(CERCA.VERT(M26;$P$2:$Q$5821;1; FALSO));"Non c'è";"C'è")
l'ho corretta così
=SE(VAL.NON.DISP(CERCA.VERT(M26;$P$2:$[b]P$5821;1; FALSO));"Non c'è";"C'è")[/b]
scusate se è un'eresia indicare la matrice con una sola colonna, ma ho visto che nell'uno o nell'altro modo il risultato non mi cambia, l'errore magari lo vedrò più avanti :D (non mi riferisco a quanto sto aggiungendo sotto)

INTANTO, ho scoperto che trascinando la formula per le celle M in basso, ovvero nelle caselle dove ancora non ho inserito dati, mi dà, giustamente "Non c'è", ma se in una casella ho messo solo in numero archivio, mi dice, per quella colonna M (e riga) che nella matrice P2:P5820, che i dati ci sono
credevo di avere dato, come ho impostato (da quello che ho capito) le formule, il controllo per il controllo COMPLETO della cella dei dati concatenati
ovvero il nome archivio può appartenere ad un'altra persona o avere un'altra strada...

adesso un'altra novità (prima di aver corretto il dubbio ora esposto)
in questa riga
=SE(VAL.NON.DISP(CERCA.VERT(M89;$P$2:$P$5821;FALSO));"Non c'è";"C'è")
non ho inserito dati, e in M non c'è concatenato nulla, e mi dice -giustamente- "Non c'è"
ma nella riga sotto
=SE(VAL.NON.DISP(CERCA.VERT(M90;$P$2:$P$5821;FALSO));"Non c'è";"C'è")
dove M non ha ugualmente dati, mi dice -INVECE- "C'è"...
e per tutte le celle M, - VUOTE - in basso

e non dovrebbe essere, non ci capisco nulla...
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Anthony47 » 25/06/12 00:25

in questa riga
=SE(VAL.NON.DISP(CERCA.VERT(M89;$P$2:$P$5821;FALSO));"Non c'è";"C'è")
non ho inserito dati, e in M non c'è concatenato nulla, e mi dice -giustamente- "Non c'è"
ma nella riga sotto
=SE(VAL.NON.DISP(CERCA.VERT(M90;$P$2:$P$5821;FALSO));"Non c'è";"C'è")
dove M non ha ugualmente dati, mi dice -INVECE- "C'è"...

Perdona, ma perseveri nello sbagliare la sintassi del Cerca.Vert, omettendo ancora "Indice".

La funzione Confronta da' la posizione all' interno della matrice; se la tua matrice fosse M5:M100 sai che 1 corrisponde alla riga 5; se la matrice fosse M1:M100 allora 1 corrisponderebbe alla riga 1. Insomma sapendo quello che hai fatto sai interpretare il risultato.

Ti ho sottolineato che doresti usare "numeri" e non "stringhe" perche' devi abituarti a fare differenza tra numeri e stringhe di caratteri numerici, perche' in genere excel li interpreta in modo differente.

La matrice del Confronta deve essere monodimensionale; quella del Cerca.Vert puo' essere bidimensionale perche lo scopo tipico del Cerca.Vert e' di ottenere un valore nella matrice sulla riga su cui si trova la chiave cercata (il prezzo di un articolo, la giacenza dell articolo, ...)

Nell' help on line, l' osservazione sui caratteri jolly la devi vedere utilizzata all' interno di "valore"; cioe' puoi usare ad esempio
=CONFRONTA("pippo*";B1:B100;0) con cui cercherai pippo, pippolo, pippone, pippo1 e simili.

Fai bene a sperimentare l' uso delle varie funzioni, pero' se non rispetti la sintassi otterrai risultati (da te) imprevisti vanificando l' utilita' della sperimentazione.

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 25/06/12 00:53

Anthony47 ha scritto:Perdona, ma perseveri nello sbagliare la sintassi del Cerca.Vert, omettendo ancora "Indice".

La funzione Confronta da' la posizione all' interno della matrice; se la tua matrice fosse M5:M100 sai che 1 corrisponde alla riga 5; se la matrice fosse M1:M100 allora 1 corrisponderebbe alla riga 1. Insomma sapendo quello che hai fatto sai interpretare il risultato.
...
Fai bene a sperimentare l' uso delle varie funzioni, pero' se non rispetti la sintassi otterrai risultati (da te) imprevisti vanificando l' utilita' della sperimentazione.

Ciao

no, ma anzi grazie della tua nota,
....e hai ragione, non so come ho fatto, ma ho trascritto la formula senza il valore "indice" anche se lo avevo capito di doverlo mettere...
ora l'ho messa giusta e i risultati sono più accettabili (devo controllare, mi richiede del tempo, lo farò domani...)

riguardo alla matrice e all'opportunità di avere segnalata la riga del foglio intero piuttosto che riferita alla matrice dove sono realmente i dati ecco questo ce l'ho presente...

la sintassi... lo so che non si sfugge, il minimo errore, trasposizione e si hanno risultati imprevisti, sapendoli notare, e anzi grazie a voi per le note

Ciao
Domani mi ci dedico con più tempo...
Buonanotte
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 27/06/12 14:09

Salve, mentre cerco di risolvere le varie formule, mi sono imbattuto in quello che posso considerare un secondo metodo (e questo perchè molte volte i nomi, anche di ditte li deo visionare uno ad uno rispetto all'archivio dove sono scritte con altre aggiunte tipo anzichè Mario Rossi Metallurgica, Metallurgica di Mario Rossi srl.... quindi dato che è un lavoro estenuante correggere tutto previa visione, sto provando un altro metodo....
ovvero formattare come tabella (con intestazione... non mi chiedete il significato pechè non l'ho capito bene) scegliendo le colonne sensibili e noto che scegliendo (cioè non selezionando tutto dal menù a discesa di ogni colonna) il numero archivio o strada o chilometrico posso vedere più agevolmente, quantomeno i dati organizzati da funzioni nel foglio in questione, però quelli riportati in una colonna con la funzione: Arch!M1..., non me li organizza (è normale?) per scelta menù a discesa della tabella... credo perchè la funzione non si rifà al foglio presente ...
c'è modo di evitare questo problema, oltre a copiare integralmente (presumo fortemente) i dati dal foglio Archivio?
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi Anthony47 » 28/06/12 00:01

Purtroppo descrivi il comportamento dei "tuoi" dati, che io personalmente non ho capito.
Inoltre, prendendo lo spunto dagli esempi "Mario Rossi Metallurgica" vs "Metallurgica di Mario Rossi srl": a parte la considerazione "shit in shit out" (senza traduzione), trattandosi di anagrafiche e' possibile che non vi sia un dato univoco utilizzabile nei confronti, tipo la partita Iva o il Codice Fiscale? Perche' tutte le altre soluzioni, compreso guardare una riga alla volta rispetto a tutte le altre, sono sistemi approssimativi e aperti a equivoci sia grossolani che sottili.
Se puoi allega un file dimostrativo; per come fare vedi qui: viewtopic.php?f=26&t=80395

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 28/06/12 01:17

Anthony purtroppo no, il dato anagrafico non è associato nè a partita iva, codice fiscale o quant'altro,

le strade sono pochissime, il "dato" utente è slegato da associazioni con altri valori... il chilometrico per esempio non lo identifica (associando strada e chilometrico poi dovrei comunque fare una ricerca su Cognome e Nome, che poi possono anche essere nomi di ditte... (il che mi complica le cose, credo...)

e forse non sono stato preciso rispetto ai dati già disponibili
1: ho un registro cartaceo (n.archivio, strada, chilometrico, Cognome e nome utente, (ci sarebbe anche LATO strada ma per non complicare le formule per ora l'ho messo, senza equivoci sul termine, di "lato") e questi identificano un'utenza
2: ho il file excel (quello da 5850 righe) in cui le strade hanno una precisa denominazione tipo localitàA-LocalitàB litoranea O interna O altro... che può essere sufficientemente diversa da come è riportata nel registro cartaceo

il nome dell'utente, ripeto può essere una ditta, mi richiede di metterlo come si trova già nel file excel (altrimenti, almeno per ora, dovrei allungare ancora le formule funzioni, usando un riconoscimento base e minimo per questi "Cognomi e Nomi, ripeto, anche di ditte... che - comunque- ancora non sono in grado di generalizzare nelle opzioni degli eventuali argomenti di una funzione utile al caso...)
per ora mi è più semplice, è vero, metterlo uguale a come lo trovo già nel file excel disponibile,
ma devo vedere ogni volta
in quanto il cognome-nome o ditta possono essere CAMBIATI dal registro cartaceo al file excel aggiornato... ma non il n.archivio, strada e chilometrico(scusate, questo non l'avevo ancora specificato...)
ecco perchè n. archivio, strada e chilometrico NON possono identificare un'utente in maniera sicura, e come è cambiato è affidato al caso (dico riguardo a Cognome-Nome e ditta...)

spero di essere stato chiaro a rendere la situazione e grazie mille per la pazienza!
cmq vedo se posso uploadare il file...
Nota: a casa uso Excel 2007 mentre in ufficio la versione 2003
ovviamente sto salvando in modalità compatibilità

ripeto, scusate le inesattezze, putroppo devo ancora generalizzare tutto quanto...
oltre al problema dei dati...
Grazie
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 » 28/06/12 02:32

ho dimenticato di precisare, e non ho potuto dormire :D , che nel file excel non sono presenti alcune utenze, non si sa quali, che il registro cartaceo invece riporta: sono sfuggite per vari motivi... e chi ha fatto il file excel ha ereditato questa situazione,
per cui devo cercare tra i dati che trascrivo e che ho inteso confrontare, nel file excel già disponibile, quelle utenze che non hanno nè n. di archivio, nè strada, km, lato, nè utente(persona o ditta) presenti...
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 05/07/12 22:03

vi ringrazio sempre dell'attenzione,
ancora non ho uploadato il file ma lo farò, scusandomi con Anthony...

in questi giorni sono stato fermo cercando di concentrarmi su alcuni aspetti tralasciati, per esempio ho dovuto scendere nel ginepraio dei dati inseriti...:
togliendo spazi non voluti, anche in celle intermedie o finali (senza usare la funzione AnnullaSpazi (che ho scoperto oggi, MA che COMUNQUE li toglie all'inizio oppure alla fine, NON nel mezzo))...
oppure mettere dei trattini nei nomi di strada (perchè è così nel file excel di riferimento, altrimenti non mi trovava il dato, roba che leggendo sembravano uguali...
o altri dati da sbattere al testa al muro, tipo comune "fornovo" al posto di comune di "fornovo"

adesso credo di essere alle prese con un altro inghippo:
per esempio la formula di una riga qualsiasi =C5483&" "&D5483&" "&E5483&" "&L5483
unisce alcune celle, e D, E ed L sono i nomi dei proprietari, ce n'è può essere solo uno
se non c'è nulla in Dxxx oppure Exxx la formula concatena con Lxxx
però credo che è come se questa formula considerasse gli spazi, perchè ho fatto una prova in qualche riga:
ho tolto dalla funzione il riferimento a Dxxx o Exxx o Lxxx e la concatenazione ottenuta me la confrontava e trovava...

cosa devo fare per evitare che se NON ci sono dati in Dxxx, o Exxx, o Lxxx non me li consideri proprio nel confronto?

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 salseb » 10/07/12 06:41

sto facendo delle correzioni alle formule, piano piano,
ho trovato che questa
=SE(VAL.NON.DISP(CERCA.VERT(E4;$H$4:$H$5850;1;FALSO));"Non c'è";"C'è")
mi soddisfa sulla presenza dei dati nei due elenchi
(quando i dati sono inseriti correttamente, è un ginepraio comunque, due versioni dello stesso testo, a volte
per migliaia di righe..., quindi da correggere opportunamente)
con il problema degli spazi comunque ancora non risolto in alcuni record...
sembra che mi inserisca 2 o 3 spazi a discrezione (sconosciuta da parte mia) di excel 2007 (trasportato poi su excel 2003)

cmq al fine di preparare i dati della colonna E,
sto usando, ad esempio nella cella O4, la formula:
=SE(VAL.TESTO(J4);J4&" "&K4;L4)

ovvero tre colonne: J, K ed L per eventuali diciture di "proprietari", di cui le prime due J e K, per cognome e nome,
separati in un elenco, da preferire, non è detto comunque (purtroppo) rispetto ad L
ma sia pure e la seguente dovrebbe funzionare

ma sto avendo un problema
in alcune O(x) funziona ma in altre no, ovvero:

se in J e K non c'è nulla, non mi mette nella cella della formula il dato di L...
=SE(VAL.TESTO(J4);J4&" "&K4;L4)
dovrebbe funzionare così:
se il valore testo di J4 è VERO allora unisci nella cella O4, il contenuto di J4 e K4
se il valore testo di J4 è FALSO allora metti nella cella O4, il contenuto di L4

ma nel secondo caso la cella O4 mi rimane vuota
con qualsiasi formattazione della cella: generale, testo o personalizzato-standard

in altre celle invece questa formula funziona

ho controllato la formattazione: nelle celle O funzionanti, J, K ed L sono formattate "generale" e O è "Testo"
similmente per quelle NON funzionanti, ma appunto la formula non funziona lì
non riesco proprio a capire cosa devo controllare e cosa mi può essere eventualmente sfuggito...
una mano per favore?
grazie
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 10/07/12 06:48

devo aggiungere una cosa,
al fine di mantenere la compatibilità della formattazione con 2003, lavorando con excel 2007, al salvataggio confermo l'opzione di salvare in maniera compatibile con excel 2003

ma rispetto all'errore di prima non cambia nulla anche se salvo solo in versione excel "2007"
...
grazie 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 salseb » 10/07/12 17:03

salseb ha scritto:...

ma sto avendo un problema
in alcune O(x) funziona ma in altre no, ovvero:

se in J e K non c'è nulla, non mi mette nella cella della formula il dato di L...
=SE(VAL.TESTO(J4);J4&" "&K4;L4)
dovrebbe funzionare così:
se il valore testo di J4 è VERO allora unisci nella cella O4, il contenuto di J4 e K4
se il valore testo di J4 è FALSO allora metti nella cella O4, il contenuto di L4

ma nel secondo caso la cella O4 mi rimane vuota
con qualsiasi formattazione della cella: generale, testo o personalizzato-standard

in altre celle invece questa formula funziona
...


ho scoperto che se mi metto (nelle righe dove la formula non funziona) nelle celle J e K e (nonostante il cursore nel rigo non segnali alcun carattere, anche nascosto) e cancello il contenuto, sia con il canc che con il cursore indietro, la formula poi nella cella O, considera il contenuto della cella L, quindi funziona...

-evidentemente- c'è qualcosa in quelle celle J e/o K (importate da file excel non fatto da me, messe in un foglio dedicato) che influenza il funzionamento della formula, infatti trova qualcosa (che io non vedo) e quindi non mette il contenuto della cella L...

la domanda è: che cosa? visto che NON si vede ALCUN carattere o numero?
qualcuno mi sa dire cosa posso fare per visualizzarne il contenuto NASCOSTO?
ho trovato inoltre in alcune celle il carattere del quadratino, cioè tipo quando si apre con blocco note un file non di testo e appare tutto stravolto e incomprensibile...
grazie 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/07/12 00:47

Puoi indagare il contenuto delle celle equivoche usando ad esempio =Lunghezza(Cella) per calcolare il numero di caratteri effettivamente presenti, e nei casi in cui non ti torna con quanto visualizzi puoi determinare il codice dei caratteri presenti con la formula =Codice(Stringa.estrai(Cella;yy;1)) Varia yy da 1 a quanto letto con Lunghezza(Cella) per indagare sui singoli caratteri.
Codici inferiori a 32 sono fortemente sospetti.
Anche la presenza di "quadratini" indica caratteri fuori dal set grafico visualizzabile dal tuo Windows; puoi determinare a quale codice corrispondono con la stessa tecnica della prima.

Una mano te la dovrebbe dare la funzione Libera, che da una stringa "sporca" ti restituisce una stringa con soli caratteri stampabili.
Come pure Annulla.Spazi, che elimina spazi in testa, in coda e intermedi se duplicati.

Pensando all' esempio comune "fornovo" al posto di comune di "fornovo" potresti anche pensare di sostituire varianti di frasi o parole con frasi o parole standard usando la funzione Sostituisci;
Ad esempio con questa formula sostituisci S.R.L., S.R.L e S.r.l. con la versione standardizzata "Srl"
Codice: Seleziona tutto
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(A2;"S.R.L.";"Srl");"S.R.L";"Srl");"S.r.l.";"Srl")
Partendo dal "caso Fornovo" potresti usare
Codice: Seleziona tutto
=SOSTITUISCI(SOSTITUISCI(A3;"Comune di ";"Comune ");"comune di ";"Comune ")
per normalizzare la variante.
Nota che le combinzazioni sono ben piu' di quelle che ho normalizzato io in questi esempi, e ricorda che fino a XL2003 compreso non puoi annidare piu' di 7 funzioni (nel primo esempio ne ho annidato 3

A questo scopo potrebbe essere di qualche utilita' la Function ChrConv sviluppata per trittico69 in questa discussione: viewtopic.php?f=26&t=95607&p=550748#p549984
Essa consente di definire stringhe da convertire in equivalenti, che potrebbero sostituire le formule di prima. Ovviamente dovrai adattare myOld e myNew al tuo caso; ad esempio
Codice: Seleziona tutto
myOld = "SRL S.R.L. S.R.L S.r.l. S.P.A SPA S.p.a."     '<< Le combinazioni da alterare
myNew = "Srl Srl    Srl   Srl    Spa   Spa Spa"    '<< Le combinazioni sostitutive


Continuo ad avere una visione confusa dell' obiettivo del lavoro, quindi i suggerimenti sono sempre limitati e magari anche loro confusi...

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: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 11/07/12 03:14

Anthony grazie della risposta,
sono connesso con Tor, con il web normale il mio pc stasera ha problemi inaspettati, si connette ma non naviga,
per cui faccio qualche veloce considerazione, domani cercherò di vedere il problema connessione...

intanto non conoscevo minimamente le funzioni che hai indicato, le sto cercando di usare, velocemente, se ne parla domani comunque...

cmq spero di avere reso un pò il problema, infatti le formule erano giuste ma questi caratteri fantasma nelle celle non standardizzano i risultati, per cui mi dannavo...
ovviamente le funzioni sto cercando di adoperarle quantomeno sufficientemente

l'obiettivo del lavoro sembra confuso ma in realtà sto creando colonne di appoggio per risolvere i problemi uno ad uno, magari alla fine riuscirò (mentre mi sto perdendo, e non, in tutto un ambaradan di colonne e funzioni singole) a dare un quadro completo

riguardo alla funzione Sostituisci domani mi informo meglio (con Tor è lentissimo navigare, e comunque non è ora...)
ma dovrei standardizzare per ogni riga, tra migliaia (Srl è solo per poche righe tra migliaia di altre) un risultato verificato, empiricamente, a monte
e poi reso con Excel, non so se ne possa valere la pena, visto che volevo fare a monte tutto quanto con le funzioni, non una per ogni riga cioè
spero di essere stato chiaro, cmq domani potrò eventualmente essere più preciso...
riassumo qui, spero:
il file di base è l'archivio-elenco già trasposto in excel che è meglio che non tocco (quello in cui ci sono i caratteri fantasma e versioni diverse di alcune stringhe rispetto a quanto inserisco, in foglio a parte, da registro CARTACEO) le celle vuote con caratteri nascosti queste presumo di poterle toccare, certo se potessi vedere i caratteri sarebbe meglio
chi mi ha passato il file avrà fatto una trasposizione da programma proprietario di ditta software locale ad excel, domani vado a chiedere e vedo un poco che tipo di problema di "conversione" può esserci stato...

... quindi si devono confrontare i due elenchi...

riguardo alle stringhe devo confrontarle visualmente (o con opportune funzioni, laddove ci siano caratteri da font estranei-fantasma)
una ad una, non so se ne vale la pena...
anche con Function ChrConv, che domani approfondisco un poco...

Per ora grazie Anthony.
A dopo
Buonanotte o buon mattino
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 11/07/12 03:34

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, presumo perchè la matrice $H$4:$H$5850 è comunque ad UNA colonna e quindi non va oltre in altre colonne... se è questo il motivo escludo che il file che sto preparando non abbia comportamenti fantasma (un pò cominciavo a pensarlo...)
salseb
Utente Junior
 
Post: 54
Iscritto il: 21/06/12 20:14

Re: Ricerca ripetizione dati tra due liste (con concatenamen

Postdi salseb » 11/07/12 19:53

solo un piccolo aggiornamento:

stamattina ho chiesto a chi mi ha passato il file excel (che contiene i dati esistenti eventualmente da aggiornare con i dati dal vecchio registro cartaceo più completo, cioè, lo ripeto per non fare perdere almeno questo filo, alcuni dati non sono stati traslati nel file excel esistente e questo è quello che devo verificare io)

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...

quindi devo trovare un modo per "svuotare" le celle, potrei cancellarli a mano, si tratta di diverse centinaia di celle, oppure appena capisco quale o un pò meglio, lo faccio fare da una funzione di excel...

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

Prossimo

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