Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Confrontare dati presenti in 2 fogli diversi, estrarre i duplicati e copiarne le giacenze

Ultimo Aggiornamento: 22/02/2017 19:53
Post: 1
Registrato il: 20/02/2017
Città: ABANO TERME
Età: 51
Utente Junior
2013
OFFLINE
20/02/2017 20:44

Salve, chiedo scusa per il doppio post, ma ho sbagliato a cliccare.
Comunque inserisco ora il file: nei fogli 1 e 2 sono presenti anche altri dati in altre colonne ma sono irrilevanti rispetto allo scopo di estrapolare i dati duplicati nel foglio 3.

Ciò che desidero è avere nel foglio 3 soltanto i dati doppi delle colonne A dei fogli 1 e 2 ma che mi ricopi anche le giacenze sia del foglio 1 che del foglio 2 dei doppioni.

Nel foglio 3 ho inserito il risultato che vorrei ottenere (non completo, ho riportato soltanto i primi 3 codici doppi).

Spero che qualcuno possa aiutarmi e mi suggerisca una formula (non una macro se possibile) e che me la spieghi passo passo per favore.

Grazie
Post: 1.021
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
20/02/2017 22:10

ciao

prova in B2 del foglio 3:


=CERCA.VERT(Foglio1!A2;Foglio1!A2:B10;2;FALSO)

poi la adatti per una colonna a destra
e dopo,  la trascini in basso per entrambe le colonne B e C


Frank
[Modificato da tanimon 20/02/2017 22:20]







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 2
Registrato il: 20/02/2017
Città: ABANO TERME
Età: 51
Utente Junior
2013
OFFLINE
21/02/2017 01:13

Ciò che desidero è avere nel foglio 3 soltanto i dati doppi delle colonne A (i codici dei prodotti), che quindi me li riporti in tabella e che mi ricopi anche le loro giacenze dei 2 periodi, come si vede nel foglio 3 che ho preparato (il risultato della presunta funzione).
[Modificato da gipe72 21/02/2017 16:37]
Post: 3
Registrato il: 20/02/2017
Città: ABANO TERME
Età: 51
Utente Junior
2013
OFFLINE
21/02/2017 16:35

Qualcuno può aiutarmi?
Post: 5.069
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
21/02/2017 17:04

Doppioni
Ciao Giuseppe eccoti la macro che ti trova i doppioni

Sub doppi()
Dim rng1, rng2
Dim r, d1, d2, x, y

Sheets("Foglio3").Select
Application.ScreenUpdating = False

Sheets("Foglio1").Select
r = Cells(Rows.Count, 1).End(xlUp).Row
rng1 = Range("A2:B" & r)

Sheets("Foglio2").Select
r = Cells(Rows.Count, 1).End(xlUp).Row
rng2 = Range("A2:B" & r)

Sheets("Foglio3").Select
r = Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:C" & r).ClearContents
r = 2

For x = 1 To UBound(rng1)
    d1 = rng1(x, 1)
    For y = 1 To UBound(rng2)
        d2 = rng2(y, 1)
        If d1 = d2 Then
            Cells(r, 1) = d1
            Cells(r, 2) = rng1(x, 2)
            Cells(r, 3) = rng2(x, 2)
            r = r + 1
        End If
    Next y
Next x
End Sub


ti allego anche il tuo esempio, per far partire la macro premi control+p, altrimenti bisogna creare un pulsante per lanciarla.

Ciao By Sal [SM=x423051]

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 76
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Junior
2016
OFFLINE
21/02/2017 17:47

Buonasera
Foglio3 A2 da trascinare in basso

=SE.ERRORE(INDICE(Foglio1!$A$1:$A$100;PICCOLO(SE(CONTA.SE(Foglio2!$A$1:$A$100;Foglio1!$A$1:$A$100)>0;RIF.RIGA($A$1:$A$100));RIGHE($A$1:A1)));"")
DA CONFERMARE CON CTRL+SHIFT+INVIO

in B2 da trascinare in basso

=SE.ERRORE(CERCA.VERT(A2;Foglio1!$A$2:$B$10;2;0);"")

in C2 da trascinare in basso

=SE.ERRORE(CERCA.VERT(A2;Foglio2!$A$2:$B$10;2;0);"")
[Modificato da DANILOFIORINI 21/02/2017 20:11]
Post: 4
Registrato il: 20/02/2017
Città: ABANO TERME
Età: 51
Utente Junior
2013
OFFLINE
21/02/2017 20:48

Re:
DANILOFIORINI, 21/02/2017 17.47:

Buonasera
Foglio3 A2 da trascinare in basso

=SE.ERRORE(INDICE(Foglio1!$A$1:$A$100;PICCOLO(SE(CONTA.SE(Foglio2!$A$1:$A$100;Foglio1!$A$1:$A$100)>0;RIF.RIGA($A$1:$A$100));RIGHE($A$1:A1)));"")
DA CONFERMARE CON CTRL+SHIFT+INVIO

in B2 da trascinare in basso

=SE.ERRORE(CERCA.VERT(A2;Foglio1!$A$2:$B$10;2;0);"")

in C2 da trascinare in basso

=SE.ERRORE(CERCA.VERT(A2;Foglio2!$A$2:$B$10;2;0);"")




Ciao Danilo, grazie per il tuo intervento.
Allora la prima formula (quella da inserire in A2) non mi funziona (ho excel 2013), confermandola con ctrl+shift+invio nella cella vedo la formula intera non il risultato. Ho aperto il tuo file e ho visto che prima dell'= hai inserito la parentesi graffa (o forse viene fuori in automatico quando la confermi alla fine?) mentre nel post qui sul forum non c'è.
La formula in B2 e quella in C2 invece funzionano bene, avrei però una domanda da porti: per cosa sta quel 2 quasi alla fine della formula? So che lo 0 sta per "risultato esatto" ma non capisco il 2

Post: 5
Registrato il: 20/02/2017
Città: ABANO TERME
Età: 51
Utente Junior
2013
OFFLINE
21/02/2017 20:51

Re: Doppioni
by sal, 21/02/2017 17.04:

Ciao Giuseppe eccoti la macro che ti trova i doppioni

Sub doppi()
Dim rng1, rng2
Dim r, d1, d2, x, y

Sheets("Foglio3").Select
Application.ScreenUpdating = False

Sheets("Foglio1").Select
r = Cells(Rows.Count, 1).End(xlUp).Row
rng1 = Range("A2:B" & r)

Sheets("Foglio2").Select
r = Cells(Rows.Count, 1).End(xlUp).Row
rng2 = Range("A2:B" & r)

Sheets("Foglio3").Select
r = Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:C" & r).ClearContents
r = 2

For x = 1 To UBound(rng1)
    d1 = rng1(x, 1)
    For y = 1 To UBound(rng2)
        d2 = rng2(y, 1)
        If d1 = d2 Then
            Cells(r, 1) = d1
            Cells(r, 2) = rng1(x, 2)
            Cells(r, 3) = rng2(x, 2)
            r = r + 1
        End If
    Next y
Next x
End Sub


ti allego anche il tuo esempio, per far partire la macro premi control+p, altrimenti bisogna creare un pulsante per lanciarla.

Ciao By Sal [SM=x423051]






Ciao Sal, grazie per la tua risposta ma preferirei evitare di usare macro (se possibile)
Post: 77
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Junior
2016
OFFLINE
21/02/2017 21:37

Ciao
La formula funziona correttamente quando l hai copiata e incollata ti metti sulla barra della formula e la confermi con CTRL+SHIFT+INVIO appariranno le parentesi graffe che confermano che la formula è matriciale una volta attivata la trascini in basso
Per quanto riguarda la seconda domanda il due nella formula del cercaverticale rappresenta la colonna dove andiamo a cercare il dato la matrice è A2:B10 la colonna B è la seconda colonna del range lo zero è pa ricerca esatta del dato
Post: 6
Registrato il: 20/02/2017
Città: ABANO TERME
Età: 51
Utente Junior
2013
OFFLINE
22/02/2017 01:18

Danilo è quello che ho fatto (mettermi nella barra della formula e copia-incolla, poi ho confermato tenendo premuto ctrl+shift e premendo invio) ma al posto del risultato, nella cella vedo la formula intera. Non so che altro dirti, non è che con excel 2013 si conferma questa formula matriciale in un altro modo?
Post: 78
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Junior
2016
OFFLINE
22/02/2017 09:02

Ciao
Controlla se hai lasciato uno spazio in fondo alla formula altrimenti riscrivila direttamente nella cella A2 del foglio3
Post: 7
Registrato il: 20/02/2017
Città: ABANO TERME
Età: 51
Utente Junior
2013
OFFLINE
22/02/2017 19:21

Ho inserito la formula nella cella A1 e funziona, grazie Danilo per le formule e la pazienza.
Come mai non funziona nella cella A2 secondo te?
Post: 79
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Junior
2016
OFFLINE
22/02/2017 19:53

Ciao
non so che dirti posta il file dove riscontri l'errore e vediamo
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
riconoscimento elenco dati (12 messaggi, agg.: 25/09/2017 18:11)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 15:36. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com