Risultati da 1 a 8 di 8

Discussione: Cerca valori in colonna e restituisci matrice



  1. #1
    L'avatar di REMIGIO
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    cosenza
    Messaggi
    6
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0

    Cerca valori in colonna e restituisci matrice

    Buongiorno...grazie a tutti in anticipo per l'aiuto...vado dritto al punto:
    nel primo foglio ho un elenco di n codici in colonna

    nel secondo foglio ho delle tabelle, ovvero delle matrici 24 colonne x 31 o più righe (h ore per gg giorni del/dei mese/i di riferimento - ci possono essere più mesi sulle righe), che hanno come "etichetta" un codice, corrispondente a quello nella colonna di cui sopra (ci possono essere m tabelle, m<>n)

    il programmino dovrebbe scorrere tutti i codici nella colonna del primo foglio e restituire, magari nel foglio 3, ogni volta che trova il codice n, la tabella corrispondente

    Grazie ancora!!


  2. #2
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao Remigio, benvenuto in forumexcel.it, prova ad allegare un file di excel senza dati sensibili cosi da capire meglio, magari se scrivi un esmpio del risultato atteso sarebbe ancora meglio, ciao
    Inviata da Lumia 950 XL

  3. #3
    L'avatar di REMIGIO
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    cosenza
    Messaggi
    6
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Ciao Remigio, benvenuto in forumexcel.it, prova ad allegare un file di excel senza dati sensibili cosi da capire meglio, magari se scrivi un esmpio del risultato atteso sarebbe ancora meglio, ciao
    Inviata da Lumia 950 XL
    eccolo
    File Allegati File Allegati

  4. #4
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0

    Risposta a Remigio

    Ciao Remigio Prova a vedere cosa ne pensi di Questo mio programmino Potrebbe dare al caso tuo ?
    Ciao
    File Allegati File Allegati

  5. #5
    L'avatar di REMIGIO
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    cosenza
    Messaggi
    6
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0
    Ciao...grazie mille...la soluzione proposta è molto carina...a noi servirebbe qualcosa di più semplice...senza User form...

    Praticamente basta confrontare due colonne, e, qualora l'id delle due colonne corrisponda, restituisce tutto ciò che sta a destra della colonna 1.

    La logica del tuo programmino è simile, ora provo a lavorarci per togliere la UserForm e inserire un controllo su tutta la tabella dati.

    Edit: verificando meglio ho notato che restituisce solo l'ultimo valore, a me in realtà servirebbero tutti, anche se duplicati

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Ho creato una routine che non ho testato i vari casi.
    Vedi se va bene
    Codice: 
    Sub Estrai()
    Dim iRow1 As Long
    Dim iRow2 As Long
    Dim uRiga1 As Long
    Dim uRiga2 As Long
    Dim iCount As Long
    Dim i As Long
    
    
    uRiga1 = Foglio1.Cells(Rows.Count, 1).End(xlUp).Row 'trova ultima riga Foglio1
    uRiga2 = Foglio2.Cells(Rows.Count, 1).End(xlUp).Row 'trova ultima riga Foglio2
    Foglio3.Cells(1, 1).CurrentRegion.Clear 'svuota il foglio3
    
    
    
    
    iRow1 = 1
    Do Until iRow1 = uRiga1
        iCount = iCount + 1
        Foglio3.Cells(iCount, 1) = Foglio1.Cells(iRow1, 1)
        iRow2 = 1
        Do Until iRow2 >= uRiga2
            If Foglio1.Cells(iRow1, 1) = Foglio2.Cells(iRow2, 1) Then
                Do Until Foglio2.Cells(iRow2, 1) = "" Or Foglio1.Cells(iRow1 + 1, 1) = Foglio2.Cells(iRow2, 1)
                    iCount = iCount + 1
                    For i = 1 To 25
                        Foglio3.Cells(iCount, i) = Foglio2.Cells(iRow2, i)
                    Next
                    iRow2 = iRow2 + 1
                Loop
            End If
            iRow2 = iRow2 + 1
        Loop
        iRow1 = iRow1 + 1
    Loop
    End Sub

  7. #7
    L'avatar di REMIGIO
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    cosenza
    Messaggi
    6
    Versione Office
    excel 2010
    Likes ricevuti
    0
    Likes dati
    0
    in realtà la soluzione proposta copia solo la prima colonna...a me serve che copi l'intera riga a destra della colonna che viene confrontata
    in allegato esempio...mi funziona solo per una riga..dovrei a questo punto inserire il for
    Codice: 
    Sub CompareTwoColumns() 
    
    Dim rngA As Range 
    Dim rngB As Range 
    
    Set foglio1=Sheets("Foglio1")
    Set foglio2=Sheets("Foglio2")
    Set rngA = foglio2.Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)) 
    Set rngB = foglio1.Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)) 
    
    For Each cell In rngA 
    If Not IsError(Application.Match(cell.Value, rngB, 0)) Then 
    foglio2.Cells(cell.Row, "C").Value = foglio1.Range("C3:Z3").Value 
    End If 
    Next 
    End Sub

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979
    Ci sono un po di cose da chiarire:
    1) Sicuramente hai allegato un file differente dal lavoro richiesto, infatti sul file allegato la mia routine funziona;
    2) Nella routine che hai scritto ci sono errori di compilazione e dubito che tu l'abbia mandata in esecuzione, infatti hai assegnato a
    Codice: 
    Set Foglio1=Sheets("Foglio1")
    e il debug te lo vieta (Foglio1 è il nome (Proprietà Name) della scheda Foglio1 che non si può assegnare;
    3) Il ciclo tiene conto del confronto tra Foglio1 e Foglio2, mentre nel file allegato nel Foglio1 ci sono i Cod (X1, X2, X3 ecc), nel Foglio2 i valori da confrontare e nel Foglio3 i risultati.

    Spiegati meglio

Discussioni Simili

  1. [Risolto] Trasposizione da Matrice a Singola colonna
    Di MT PG nel forum Domande su Excel in generale
    Risposte: 18
    Ultimo Messaggio: 09/01/17, 17:31
  2. [Risolto] Cerca valori che si ripetono in tabella. Formula per arrivare dove il cerca.vert non può
    Di Gatt88 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 02/12/16, 11:45
  3. [Risolto] Ricerca un valore e restituisci i i dati corrispondenti
    Di MarcoIpad nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 26/10/16, 06:02
  4. [Risolto] Excel 2007, Formule, cerca matrice nella col. I ed importa dato della col. J
    Di Pier Paolo nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 15/01/16, 14:59
  5. Cerca valore in una matrice dinamica
    Di Bolz1 nel forum Domande su Excel in generale
    Risposte: 26
    Ultimo Messaggio: 04/01/16, 09:25

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •