Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

riordino date

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

riordino date

Postdi riskismoney » 11/06/13 18:08

Ciao, avrei bisogno di un piccolo aiuto con excel.

Nella colonna A ci sono delle date in ordine cronologico (la stessa data può essere presente più volte).
Nella colonna B ci sono dei numeri.

A me servirebbe avere:
Nella colonna C, tutte le date presenti nella colonna A in ordine cronologico escludendo quelle presenti più volte.
Nella colonna D la somma dei numeri presenti nella colonna B in corrispondenza della stessa data nella Colonna A.

Se ad esempio le prime 5 date della colonna A sono:
1/1/2013
2/1/2103
3/1/2013
3/1/2013
7/1/2013
e nella colonna B per comodità diciamo che è sempre presente 1.

Nella colonna C vorrei ottenere:
1/1/2013
2/1/2103
3/1/2013
7/1/2013
e nella colonna D sempre 1 ad esclusione della cella D3 dove dovrei ottenere 2.

Mi date gentilmente una mano?
Grazie, saluti.
riskismoney
Utente Senior
 
Post: 177
Iscritto il: 25/03/12 16:04

Sponsor
 

Re: riordino date

Postdi Anthony47 » 11/06/13 23:14

Questo e' un lavoro che si fa tipicamente con una tabella pivot, inserendo il campo "Data" nell' area RIGA, e il campo "Valore" (come "somma di" Valore).

In alternativa:
1- ti crei in colonna C un elenco unico delle date usando Filtro avanzato (Menu /Dati /Filtro /Filtro avanzato; spunta "Copia univoca dei record" e "Copia in altra posizione; compilare "Copia in" con l' indirizzo C1; Ok)
2- usi poi in colonna D la formula Somma.Se, es partendo da D2
Codice: Seleziona tutto
=SOMMA.SE(A:A;C2;B:B)


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: riordino date

Postdi Flash30005 » 12/06/13 00:54

Come consigliato da Anthony la Pivot risolve questo problema come pure la formula
ma se vuoi utilizzare una macro questa dovrebbe fare al caso tuo
Codice: Seleziona tutto
Sub SommaPerData()
Range("C2:D10000").ClearContents
UR1 = Range("A" & Rows.Count).End(xlUp).Row
For RR1 = 2 To UR1
    Tr = 0
    DataM = Range("A" & RR1).Value
    UR2 = Range("C" & Rows.Count).End(xlUp).Row + 1
    For RR2 = 2 To UR2
        Data2 = Range("C" & RR2).Value
        If DataM = Data2 Then Tr = 1
    Next RR2
    If Tr = 0 Then
        Ur3 = Range("C" & Rows.Count).End(xlUp).Row + 1
        Range("C" & Ur3).Value = DataM
    End If
Next RR1
UR2 = Range("C" & Rows.Count).End(xlUp).Row

For RR2 = 2 To UR2
Somma = 0
    Data2 = Range("C" & RR2).Value
    For RR1 = 2 To UR1
        DataM = Range("A" & RR1).Value
        If DataM = Data2 Then Range("D" & RR2).Value = Range("D" & RR2).Value + Range("B" & RR1).Value
    Next RR1
Next RR2
End Sub


ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: riordino date

Postdi ninai » 12/06/13 05:33

Ciao a tutti (mio primo intervento)

Un' altra possibilità, per realizzare l'elenco univoco,:
-definire un nome per la colonna A (es. "date")
- in C:
Codice: Seleziona tutto
=SE(VAL.ERRORE(PICCOLO(SE(FREQUENZA(date;date);date);RIF.RIGA(A1)));"";PICCOLO(SE(FREQUENZA(date;date);date);RIF.RIGA(A1)))

Matriciale
w8 + Office 2010 Ita
ninai
Utente Senior
 
Post: 271
Iscritto il: 12/06/13 05:23
Località: prov. Messina

Re: riordino date

Postdi Flash30005 » 12/06/13 08:03

Ciao Ninai e benvenuto nel Forum

ricontrolla la formula perché non funziona
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: riordino date

Postdi ninai » 12/06/13 10:19

Ciao
a me sembra funzionare
allego file esempio
https://www.dropbox.com/s/5pgtgtqtemhah ... numeri.xls

in alternativa c'è questa:
Codice: Seleziona tutto
=SE(VAL.ERRORE(INDICE(date;PICCOLO(SE(VAL.NUMERO(CONFRONTA(RIF.RIGA(date);CONFRONTA(date;date;0);0));CONFRONTA(date;date;0);"");RIGHE($A$1:A1))));"";INDICE(date;PICCOLO(SE(VAL.NUMERO(CONFRONTA(RIF.RIGA(date);CONFRONTA(date;date;0);0));CONFRONTA(date;date;0);"");RIGHE($A$1:A1))))

e diverse altre
w8 + Office 2010 Ita
ninai
Utente Senior
 
Post: 271
Iscritto il: 12/06/13 05:23
Località: prov. Messina

Re: riordino date

Postdi riskismoney » 12/06/13 17:45

Grazie ragazzi, fantastici come sempre. :D
Ottimi suggerimenti, valuterò quale si adatta meglio alle mie necessità.
Di primo achito direi quello di flash in vba.
L'ultimo suggerimento però non funziona, i calcoli sono errati.
Un grazie sentito ed un saluto a tutti.
riskismoney
Utente Senior
 
Post: 177
Iscritto il: 25/03/12 16:04

Re: riordino date

Postdi CANAPONE » 12/06/13 21:06

Ciao a tutti,

ho fatto anch'io delle prove con al prima formula con la FREQUENZA, mi ha messo in ordine le date.

Non serve la forma matriciale, ma il risultato non cambia: la metto da parte. Con la FREQUENZA sto avendo dei problemi.

Buona serata
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: riordino date

Postdi Flash30005 » 12/06/13 21:42

Si infatti funziona ma (forse) avevo interpretato male la specifica:
ninai ha scritto:-definire un nome per la colonna A (es. "date")

non deve essere definito un nome per la colonna A (tutta) ma solo le righe che contengono i dati

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: riordino date

Postdi CANAPONE » 13/06/13 06:01

Grazie Flash30005,

per imparare ad usare FREQUENZA sto cercando di digerire e scimmiottare tutto quello che trovo in rete.

Un caro saluto da Firenze
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: riordino date

Postdi ninai » 13/06/13 14:24

Flash30005 ha scritto:Si infatti funziona ma (forse) avevo interpretato male la specifica:
ninai ha scritto:-definire un nome per la colonna A (es. "date")

non deve essere definito un nome per la colonna A (tutta) ma solo le righe che contengono i dati

ciao


Infatti!!
avendo allegato un file, con dati fittizi ed il nome "date" definito all'interno, non ho specificato di proposito i riferimenti di "A".

Canapone
anche io, meno che scimmiotto queste formule, mi aggrovigliano la mente.
w8 + Office 2010 Ita
ninai
Utente Senior
 
Post: 271
Iscritto il: 12/06/13 05:23
Località: prov. Messina

Re: riordino date

Postdi riskismoney » 23/06/13 18:13

HELP ME!
Flash e altri di buona volontà. Vorrei utilizzare il codice di Flash ma non riesco ad adattarlo al mio file.

Ho una colonna etichettata "data" dalla riga 2 alla riga 10.000, una colonna "numero" etichettata dalla riga 2 alla riga 10.000.
In un nuovo foglio vorrei ottenere in nella colonnaA la Data e nella colonnaB la somma dei numeri. Mi dai gentilmente una mano?
Grazie
riskismoney
Utente Senior
 
Post: 177
Iscritto il: 25/03/12 16:04

Re: riordino date

Postdi Flash30005 » 24/06/13 08:33

La macro è abbastanza "leggibile" e se non riesci ad adattarla dovresti almeno specificare quali sono le colonne interessate.
Oppure pubblica il file
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: riordino date

Postdi Anthony47 » 24/06/13 11:14

Questa versione di macro e' piu' semplice della precedente, quindi forse piu' semplice da comprendere:
Codice: Seleziona tutto
Sub sumbydate()
Dim LastA As Long, NextJ As Long, I As Long
'
Range("C:D").ClearContents
Range("C1:D1").Value = Array("Data", "Somma")
LastA = Cells(Rows.Count, "A").End(xlUp).Row
For I = 2 To LastA
    If Application.WorksheetFunction.CountIf(Range("A2").Resize(I - 1, 1), Cells(I, "A").Value) = 1 Then
        NextJ = Cells(Rows.Count, 3).End(xlUp).Row + 1
        Cells(NextJ, 3) = Cells(I, "A").Value
        Cells(NextJ, 4).FormulaLocal = "=somma.se(A:A;C" & NextJ & ";B:B)"  '<<1 Vedi testo
        Cells(NextJ, 4).Value = Evaluate("=sumif(A:A,C" & NextJ & ",B:B)")  '<<2 Vedi testo
    End If
Next I
End Sub
Le istruzioni <<1 e <<2 sono alternative: una inserisce la formula che calcola il totale, la seconda mette direttamente il valore calcolato; elimina quella che non ti piace.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: riordino date

Postdi riskismoney » 24/06/13 11:27

Grazie mille anche a te Anthony, un saluto :)
riskismoney
Utente Senior
 
Post: 177
Iscritto il: 25/03/12 16:04

Re: riordino date

Postdi riskismoney » 19/10/14 13:14

Dunque, qualcosa non torna.
Le dati presenti nella mia colonna A sono "quasi" in ordine cronologico ma non sempre, può succedere quindi che si abbia una sequenza di date come questa:

27/06/2012
29/06/2012
29/06/2012
02/07/2012
02/07/2012
28/06/2012
03/07/2012

In questo caso il 28 giugno viene riordinato dopo il 2 lug.
Servirebbe un codice che prima "memorizzasse" una sola volta tutte le date presenti (possibilmente in vba per velocizzare il tutto) e poi le ordinasse in ordine cronologico.
Troppo complicato?
riskismoney
Utente Senior
 
Post: 177
Iscritto il: 25/03/12 16:04

Re: riordino date

Postdi riskismoney » 19/10/14 14:16

Riepilogando, dopo i vostri suggerimenti e tenuto conto che i dati di origine si trovano in foglio diverso, io l'avrei impostata cosi:

Codice: Seleziona tutto
Sub SumByDate()
    Sheets("Daily").Select
    Dim NrOrigine As Long, NextJ As Long, I As Long
    Dim VarData
    Dim VarNumero
     NrDaily = Application.WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(xlUp).Row)

Sheets("FoglioOrigine").Select
NrOrigine = Application.WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(xlUp).Row)

'memorizzo i dati del foglio con le date originali
VarData = Range(Cells(1, 1), Cells(NrOrigine, 1)).Value ‘(SERVIREBBE POTER ORDINARE QUESTI DATI IN ORDINE CRONOLOGICO)
VarNumero = Range(Cells(1, 2), Cells(NrOrigine, 2)).Value

    Sheets("Daily").Select
    For I = 2 To NrOrigine
   If VarData(I, 1) <> VarData(I - 1, 1) Then
   d = d + 1: Cells(d, 1) = VarData(I, 1)
  Cells(D, 2).Value = Evaluate("=SUMIF(VarData,A" & d & ",VarNumero)") ' QUESTA FORMULA DA ERRORE.
   End If
   Next I
    End Sub


Help me, please. :)
riskismoney
Utente Senior
 
Post: 177
Iscritto il: 25/03/12 16:04

Re: riordino date

Postdi Anthony47 » 19/10/14 17:52

Non e' possibile ordinare l' elenco di partenza prima di eseguire la macro SumByDate? Oppure ordinare l' elenco prodotto dalla macro?
Si puo' fare anche registrando una una seconda macro, e inserendo poi (o in testa o in coda alla macro attuale, a seconda della soluzione prescelta) la riga Call MacroOrdinamento.

Non c' e' bisogno di ricordare che con una pivot table le date sarebbero gia' ordinate ordinate (se impostato nelle opzioni della tabella).

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: riordino date

Postdi riskismoney » 19/10/14 17:59

Ciao Anthony,
no, non è possibile ordinare l'elenco di partenza.
L'ideale sarebbe: acquisire in vba l'elenco di partenza, riordinare le date sempre in vba dell'elenco acquisito (ed è questo che io non riesco a fare), e poi con un ciclo scrivere l'elenco delle nuove date. Non ho capito il tuo ultimo suggerimento.
riskismoney
Utente Senior
 
Post: 177
Iscritto il: 25/03/12 16:04

Re: riordino date

Postdi Anthony47 » 19/10/14 18:00

E ordinare invece l' elenco prodotto?
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "riordino date":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti