› Excel e gli applicativi Microsoft Office › estrarre il dato successivo
Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
-
AutoreArticoli
-
Buongiorno a tutti,vi spiego il mio problemaEstrazione da webEstraendo dal web i risultati di alcune gare mi ritrovo con questa situazione nel "Foglio2":nella colonna A ho una serie di Cognomi/Nomi che spesso si ripetono (solo 1 volta)nella colonna B a fianco ai nomi vi è il tipo di garanella colonna C il temponella colonna D i punti.Foglio dove inserire l'eventuale formulaHo un foglio di calcolo con le seguenti colonne a cui poi sono collegate classifiche individuali di società etc:colonna A -> Nr. tesseracolonna B -> Cognomi/Nomicolonna C -> Societàcolonna D -> Categoriacolonna E -> Gara1colonna F -> tempo1colonna G -> punti1 (con formula collegata ad altri fogli)colonna H -> Gara2colonna I -> tempo2colonna J -> punti2 (con formula collegata ad altri fogli).ProblemaVorrei estrarre, partendo dal controllo "cognome/nome", le due gare effettuate, inserendole nella colonna E e nella colonna H di ciascun atletaPer la prima gara non ho trovato problemi con la seguente formula=SE.ERRORE(CERCA.VERT(($B2);INDIRETTO("Foglio2!$a$1:$b$500");2;FALSO);"")Non riesco a dire a excel che nella colonna H deve inserire la seconda gara dell'atleta. Ho provato vari controlli ma niente.Grazie in anticipoallego un file di esempio
Allegati:
You must be logged in to view attached files.Buonaserain E3 del foglio1 da trascinare a destra e poi in basso=SE.ERRORE(INDICE(Foglio2!$B$2:$D$100;AGGREGA(15;6;RIF.RIGA($A$2:$A$100)/(Foglio2!$A$2:$A$100=Foglio1!$B2)-RIF.RIGA($A$2)+1;QUOZIENTE(COLONNE($A1:A1)-1;3)+1);RESTO(RIF.COLONNA(A$1)-1;3)+1);"")CiaoSulla base del tuo esempio, inserisci il sottostante codice in un Modulo standard e associalo ad un pulsante (Modulo, non ActiveX) e vedi se va bene.Sub Riporta() ur = Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To ur With Sheets("Foglio2") nome = .Cells(i, 1).Value gara = .Cells(i, 2).Value tempo = .Cells(i, 3).Value punti = .Cells(i, 4).Value End With With Sheets("Foglio1") For j = 2 To ur If .Cells(j, 2) = "" Then 'prima gara .Cells(j, 2) = nome .Cells(j, 5) = gara .Cells(j, 6) = tempo .Cells(j, 7) = punti GoTo xit ElseIf .Cells(j, 2) <> "" And .Cells(j, 2) = nome Then 'seconda gara .Cells(j, 8) = gara .Cells(j, 9) = tempo .Cells(j, 10) = punti GoTo xit End If Next j xit: End With Next i End SubCredo che n° tessera e Società tu li indicassi a mano; altrimenti bisogna creare un elenco di atleti, società e tessere per far recuperare i dati.
Prova e fai sapere. Ciao,
Mario
.
PS - Danilo mi hai battuto ma il codice è più lungo della formula. 😆Ringrazio entrambi per la celerità.Devo dire però che il codice creato da Marius44 funziona meglio.🙂 -
AutoreArticoli
Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
