abbinare dati tra 2 fogli



  • abbinare dati tra 2 fogli
    di cristian_68 (utente non iscritto) data: 05/04/2016 17:01:36

    Ciao a tutti,
    ho un quesito da porre avrei 2 fogli di excel uno denominato “originale” con una colonna A “num” con numeri progressivi e una colonna B con dei nomi, e un foglio denominato con “numeri che si ripetono” che presenta in colonna A “num” con numeri uguali al foglio “originale” ma i numeri si possono ripetere, possono essere doppi, tripli o più.

    Io vorrei che la parola in colonna “B” del foglio “originale” si abbinasse in relazione dei numeri di colonna “A” "num" in modo corrispondente nella colonna “B” del foglio “con numeri che si ripetono” denominata “corrispondenza”,

    ho provato con cerca verticale, ma a causa dei numeri che si ripetono mi dà #N/D,
    purtroppo i dati da abbinare sono molti, non ci sarebbe una funzione o una macro che possa fare al mio caso?
    ringrazio fin d'ora della disponibilità
    Allego file di esempio



  • di alfrimpa data: 05/04/2016 17:12:52

    Ciao Christan

    Non so se ho capito bene ma prova ad usare il cerca.vert impostando l'ultimo parametro a "VERO".
    La prima colonna della tabella di ricerca del foglio "Originale" deve essere (come in effetti già è) in ordine crescente.

    Alfredo





  • di cristian_68 (utente non iscritto) data: 05/04/2016 19:07:39

    ciao Alfredo,
    ho provato ma anche mettendo VERO non riporta il valere corretto
    cristian



  • di alfrimpa data: 05/04/2016 19:19:04

    Allora riallega il file inserendo manualmente quello che per te è il risulato corretto.

    Alfredo





  • di cristian_68 (utente non iscritto) data: 05/04/2016 19:25:55

    ciao Alfredo,
    ho allegato il file, praticamente per quante qolte si ripete il numero che corrisponde nella colonna "A" ci dovrebbe essere la parola corrispondete al numero.
    grazie della disponibilità
    cristian



  • di alfrimpa data: 05/04/2016 19:40:10

    Scusa ma ancora non capisco.

    Tu hai sul foglio "Originale" dove hai la base dati.

    Sul foglio "con numeri che si ripetono" cosa fai materialmente?

    Inserisci il numero uno alla volta? Oppure hai l'elenco delle cose (ripetute) e vuoi riportare alla sinistra di ciascuna il relativo numero che sta sul foglio "Originale"?

    Alfredo





  • di cristian_68 (utente non iscritto) data: 05/04/2016 20:06:05

    praticamente i due fogli sono già completi sono di un database e la colonna A sono i dati in comune, solo che dovrei fare una tbaella pivot e mi servirebbero i dati tutti su un foglio.
    grazie
    cristian



  • di alfrimpa data: 05/04/2016 21:59:07

    Mi spiace ma continuo a non capire.......

    Alfredo





  • di cristian_68 (utente non iscritto) data: 05/04/2016 23:45:21

    ciao provo a spiegarmi,
    in teoria è possibile fare una macro che controlli il dato "num" presente in colonna A del foglio "con numeri che si ripetono" con il "num" nel foglio "originale" e quando questo valore numerico coincide dal foglio "originale" si copia il valore contenuto nella cella in colonna B e il testo viene copiato nel foglio "con numeri che si ripetono" nella prima colonna vuota dopo gli ultimi dati presenti.
    spero di essermi spiegato un pò meglio
    grazie e porta pazienza.
    ho allegato un nuovo esempio colonna gialla sono i dati presenti ambedue nei 2 fogli, che devono sono comuni per i 2 fogli, quando il dato presente in "con numeri che si ripetono" coincide con il "num" su "originale", si deve copiare il valore di colonna B dal foglio "originale" nel foglio "con numeri che si ripetono" nella prima cella libera dopo i dati già presenti.



  • di alfrimpa data: 06/04/2016 10:51:10

    Ciao Christian

    Ancora non son sicuro di avere capito bene.

    Prova il file allegato (Christian.xlsm) dove ho inserito la macro che vedi sotto associata al pulsante "Copia Dati" presente sul foglio "con numeri che si ripetono".

    Fai sapere se è quello che vuoi.

    Alfredo
     
    Sub a()
    Dim rng As Range
    Dim rng1 As Range
    Dim cel As Range
    Set rng = Worksheets("con numeri che si ripetono").Range("a2:a22")
    Set rng1 = Worksheets("originale").Range("a2:b21")
    For Each cel In rng
        cel.Offset(0, 2).Value = Application.WorksheetFunction.VLookup(cel.Value, rng1, 2, False)
    Next cel
    End Sub
    






  • di cristian_68 (utente non iscritto) data: 06/04/2016 18:07:04

    grazie Alfredo, sei grande,
    nonostante tu abbia detto che non eri sicuro se avevi capito
    la macro fà proprio quello che mi serviva,

    grazie ancora.

    cristian





  • di alfrimpa data: 06/04/2016 18:26:24

    Grazie Christian troppo buono.

    Nella macro ho utilizzato dei range fissi a2:a22 e a2:b21 ma se dovessero essere dinamici ossia allungati/ridotti la macro non funzionerà più bene.

    Fammi sapere se necessiti di questa modifica.

    Alfredo





  • di cristian_68 (utente non iscritto) data: 06/04/2016 21:52:01

    ciao Alfredo,
    non sono buono, è che io sono scarsissimo, ed aprrezzo chi sa usare bene questo codice, mi piacerebbe imparare.
    per poter applicare la macro ai molti dati che avevo nei foglio ho modificato
    Range("a2:a1500")
    Range("a2:b1000")
    una domanda giusto per cercare di imparare qualcosa in più, qual'è la parte che fa confrontare i dati nelle celle?


    grazie



  • di alfrimpa data: 06/04/2016 22:46:44

    Ciao Christian

    Tu, inizialmente, avevi detto di aver provato con il CERCA.VERT e di non aver ottenuto il risultato voluto per cui io avevo abbandonato l'idea del cerca.vert

    ma poi ripensandoci non poteva non funzionare.

    se in C2 del foglio "con numeri che si ripetono" metti questa formula:

    =CERCA.VERT(A2;originale!$A$2:$B$21;2;FALSO)

    e la tiri giù avrai lo stesso risultato dato dalla macro.

    Alfredo





  • di cristian_68 (utente non iscritto) data: 06/04/2016 23:49:39

    quindi non mi funzionava perchè io non avevo messo il simbolo $ per bloccare le celle.
    non mi sono accorto che la formula cambiava trascinandola.
    grazie per la segnalazione.



  • di alfrimpa data: 06/04/2016 23:55:47

    E si penso che era proprio il $.

    Comunque, se non altro, hai visto quel che si può fare con il VBA.

    Alfredo