|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2006
Messaggi: 5
|
Excel/Access formula x ricerca
Ciao a tutti!
Ho bisogno di una formula di ricerca in excel: non credo sia complicatissimo perchè con MySql riuscirei a farla senza problemi.. in excel sto avendo difficoltà. Il mio problema è questo: - ho due file excel - in ciascun file ho due colonne: Alias e nome. (chiamerò Alias1 e nome1 i campi del primo file, e alias2 e nome2 quelli del secondo) - Io voglio che per ciascuna delle celle nome1, sia impostata una formula/macro che cerchi nel secondo file se alias1=alias2 (deve cercare ovviamente in tutta la colonna alias2 prima di trovare una corrispondenza). Se alias1=alias2, allora nome1=nome2 (più precisamente uguale alla cella della colonna nome2 nella riga in cui alias1=alias2) La difficoltà che trovo è che il valore restituito deve essere quello sulla stessa riga dell'alias coincidente.. Spero sia chiaro e che possiate aiutarmi.. Grazie in anticipo! ps: se pensate sia meglio in Access, potrei usare anche quello, ma avrei bisogno di informazioni più dettagliate perchè non lo so usare benissimo.. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2005
Città: firenze
Messaggi: 1285
|
non conosco le dimensioni in termini di record che intendi trattare ma in ogni caso con access è molto + facile! Apri access dal menù tabelle vai su file /carica dati esterni/ importa con quesot importi i dati dai file excell, ovviamente devi fare la prcedura per entrambi i file .Adesos clicca su strumenti /relazioni e definisci la chiave condivisa immagino alias1 alias2
Adesso vai sul menu query e crea una query (puoi utilizzare anche la creazione facilitata ) che contenga i dati da entrambe le tabelle , su visualizza ha i i tuoi dati .Se intendi cercare solo i dati dove alias1 = alias2 e nome1 = nome2 imposta la join su entrambi i campi ciao
__________________
Ciaps desktop : AMD Ryzen 7 2700X ASUS ROG STRIX B450-F |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Venezia
Messaggi: 494
|
Beh se non ti piace Access, allora usa MySql, salvi la tabella excel come file di database e poi ci usa sopra MySQL.
Cmq il procedimento che vuoi fare tu si fa con le formule Se(;;) Conta.se(;) Indice(;;) Confronta(;;) =se(conta.se(IntAlias2;Alias1)>0;indice(IntAlias2;confronta(alias1;IntAlias2;0);0) La formula va copiata in colonna a fianco della tabella degli alias1, per IntAlias2 intendo l'intervallo fissato (tipo $A$1:$A$400) degli alias2, per alias1 invece la singola cella.. Se vuoi anche i nomi a fianco dell'alias la formula resta uguale tranne che per il primo argomento della funzione indice() che sarà IntNomi2. Ciao
__________________
Ho trattato con successo con AttilaxXx, Pippo73 Ultima modifica di bimbumbam : 03-11-2006 alle 14:04. |
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Sep 2006
Messaggi: 5
|
Ho risolto
Ciao!
Non ho usato quella formula. Alla fine sono riuscito a risolvere il tutto iniziando a lavorare programmando le macro. Per chi fosse interessato, copio il codice qui sotto: Sub assegnaNome() For i = 2 To 683 For g = 2 To 5160 If Cells(i, 1) = Cells(g, 5) Then Cells(i, 3) = Cells(g, 4) Exit For Else: Cells(i, 3) = Cells(i, 1) End If Next g Next i End Sub |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Venezia
Messaggi: 494
|
son contento che tu abbia messo tutto a posto, l'unico difetto della tua procedura è che devi rieseguire la macro ogni volta che fai degli aggiornamenti...
Non è sicuramente una tragedia, dipende solo dal numero di volte in cui devi fare la procedura. Ciao
__________________
Ho trattato con successo con AttilaxXx, Pippo73 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:31.



















