Invertire intervallo celle
Hai un problema con Excel? 
Invertire intervallo celle
di Simone91 (utente non iscritto) data: 16/10/2013 07:28:08
Buongiorno. Ho un foglio di lavoro dove nell'intervallo D2:L600 inserisco dei dati, precisamente nella colonna D inserisco la data. In questo foglio i dati sono inseriti in ordine crescente nel senso che D2 c'è la data più vecchia mentre in D600 c'è la data più recente. A me servirebbe copiare questo intervallo di celle in un foglio di un altra cartella di lavoro al contrario e cioè che che in D2 ci deve essere la data più recente mentre in D600 quella più vecchia, naturalmente tutto l'intervallo cioè D2:L600. Esiste un modo per farlo in maniera veloce? Grazie
invertire ordine
di canapone data: 16/10/2013 08:21:19
Ciao.
Faccio un tentativo con una formula, spero sia d'aiuto.
=INDICE(Foglio1!$D$2:$D$600;CONTA.VALORI(Foglio1!$D$2:$D$600)-RIGHE($A$1:$A1)+1)
Saluti
di Grograman (utente non iscritto) data: 16/10/2013 08:46:12
Senza nulla togliere alla formula di Canapone che ne sforna una più bella dell'altra, ma un filtro per data?
di Simone91 (utente non iscritto) data: 16/10/2013 11:02:41
Grazie per la formula. Io però i dati in ordine dal più vecchio al più recente c'è l'ho in un foglio di una cartella di lavoro, li devo inserire in un foglio di un altra cartella di lavoro; quella formula come la devo adattare? Per il filtro non ha senso in quanto a me serve vederli tutti i record dal più giovane al più vecchio e poi devo anche stamparli.
formula
di canapone (utente non iscritto) data: 16/10/2013 12:06:27
Ciao,
apri i due file.
Se copi la formula nella prima colonna libera del file contenente le date per ottenere
l'ultima data
=INDICE($D$2:$D$600;CONTA.VALORI($D$2:$D$600)-RIGHE($A$1:$A1)+1)
Basta poi selezionare la cella con la formula e con maiusc+canc tagliare e copiare la formula nel secondo file per ottenere l'elenco al contrario.
Potresti anche nidificare la formula dentro un se.errore, se servisse
=se.errore(INDICE($D$2:$D$600;CONTA.VALORI($D$2:$D$600)-RIGHE($A$1:$A1)+1);"")
Spero sia d'aiuto
di Simone91 (utente non iscritto) data: 16/10/2013 19:26:57
Ciao. Può darsi non mi sono spiegato bene, ho allegato un file come esempio ridotto all'osso perché così è più chiaro. Anche se le cartelle nel mio caso sono 2 per l'esempio va bene anche una, poi faccio un copia e incolla.
di Raffaele_53 (utente non iscritto) data: 16/10/2013 22:36:02
Un saluto a tutti
Alla formula di canapone devi mettere il nome del foglio
=SE.ERRORE(INDICE('Foglio attuale'!$D$2:$D$600;CONTA.VALORI('Foglio attuale'!$D$2:$D$600)-RIGHE($A$1:$A1)+1);"")
Naturale che ricopiando la formule nelle celle di destra, dovrai modificarla per ottenere il dato giusto. Ex
Cognome =SE.ERRORE(INDICE('Foglio attuale'!$E$2:$E$600;CONTA.VALORI('Foglio attuale'!$D$2:$D$600)-RIGHE($A$1:$A1)+1);"") e cambiata in $E$2:$E$600
Nome =SE.ERRORE(INDICE('Foglio attuale'!$F$2:$F$600;CONTA.VALORI('Foglio attuale'!$D$2:$D$600)-RIGHE($A$1:$A1)+1);"") e cambiata in $F$2:$F$600 ecc ecc
In poche parole le formule vanno bene se Vuoi vedere due fogli uguali, uno con date a salire, l'altro a scendere.
Se invece ti servono come Archivio, devi Copiare l'area e incollarla dove vuoi, selezioni ordina scegli la colonna D e metti dal più basso al più alto.
Questo codice lo fà già (da inserire in un modulo)
Option Explicit
Sub copia()
Dim F1 As Worksheet, F2 As Worksheet, Uriga As Long
Set F1 = Sheets("Foglio attuale") 'cambia nome se desideri
Set F2 = Sheets("Foglio come lo vorrei") 'cambia nome se desideri
F2.Range("D2:L600") = ""
Uriga = F1.Range("D" & Rows.Count).End(xlUp).Row
F1.Range(F1.Cells(2, 4), F1.Cells(Uriga, 12)).Copy
F2.Select
F2.Cells(2, 4).PasteSpecial
Application.CutCopyMode = False
F2.Range("D2:L" & Uriga).Select
F1.Sort.SortFields.Clear
F2.Sort.SortFields.Add Key:= _
F2.Range("D2:D" & Uriga), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With F2.Sort
.SetRange F2.Range("D2:L" & Uriga)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Set F1 = Nothing
Set F2 = Nothing
End Sub |
di Simone91 (utente non iscritto) data: 17/10/2013 20:53:47
Ok risolto. Grazie per la collaborazione
Vuoi Approfondire?