Condividi tramite

Incrementare, al variare di un dato di una cella, altre suddivise in trimestre.

Anonimo
2011-01-04T11:13:43+00:00

Buongiorno a tutti,

 chiedevo un aiuto per poter risolvere tramite una formula, se è possibile o se bisogna ricorrere ad una macro, questa mia esigenza.

Io aggiorno una cella continuamente che rappresenta il numero di articoli fatturati.

 In altre celle ho, per trimestre, la suddivisione di questo fatturato. In un altra ho la data ( =OGGI() ).

Si può con una formula far sì che, quando cambia la data ed inizia un nuovo trimestre, l'incremento della cella del fatturato vada a scriversi nella cella del trimestre nuovo. Non so se è chiaro ciò che ho esposto, faccio un esempio:

30/3/2011

1° trim   2° trim   3° trim  4° trim      Fatturato

100                                                   100

1/4/2011

1° trim   2° trim   3° trim  4° trim      Fatturato

100           50                                        150

e così via. Spero che sia chiaro quello di cui avrei bisogno. Grazie per l'interessamento e buona giornata.

 N.B. : Avevo effettuato un copia/incolla ma non si leggeva.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2011-01-18T06:45:53+00:00

Eccomi Mauro, ho provato il codice, ho modificato secondo il mio schema, la colonna dei totali e la cella della data e................................sei sempre unMITO.

Un ultima cosa, tu dici 

> Se vuoi possiamo limitare la routine ad alcune celle e non a tutta la colonna.  

qual'è la sintassi per fare questo?

Grazie, grazie, grazie e grazie ancora. Buona serata.  Grande Mauro.

 

 

Questa esegue quanto chiedi solo se modifichi F3:F10. Modifica quel riferimento per le tue esigenze.

Private Sub Worksheet_Change(ByVal Target As Range)

        Dim rng As Range

        Set rng = Range("F3:F10")  '<<<====

        If Target.Cells.Count = 1 Then

            If Not Intersect(Target, rng) Is Nothing Then

                If Len(Me.Range("L1").Value) = 0 Then Exit Sub

                Select Case Month(Me.Range("L1").Value)

                    Case 1 To 3

                        Target.Offset(0, -4).Value = Target.Value

                    Case 4 To 6

                        Target.Offset(0, -3).Value = _

                            Target.Value - Target.Offset(0, -4).Value

                    Case 7 To 9

                        Target.Offset(0, -2).Value = _

                            Target.Value - Target.Offset(0, -4).Value _

                            - Target.Offset(0, -3).Value

                    Case 10 To 12

                        Target.Offset(0, -1).Value = _

                            Target.Value - Target.Offset(0, -4).Value _

                            - Target.Offset(0, -3).Value - _

                            Target.Offset(0, -2).Value

                End Select

            End If

        End If

        Set rng = Nothing

End Sub


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento

17 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-01-05T08:19:03+00:00

    Crea una prima tabella con i dati progressivi del fatturato per trimestre, da questa ricavi una seconda tabella con i dati trimestrali. E' sufficiente detrarre il progressivo trimestrale successivo dal trimestrale precedente.

    Esempio, lascia la prima colonna vuota per consentire alla formula nella prima cella di restituire un risultato.

    Prima tabella dei progressivi

    Titolo: Progressivi fatturato per trimestre

        A             B               C                D              E

    1                 1° tr            2° tr           3° tr          4° tr

    2 vuota        50              120                  

    Seconda tabella dei parziali trimestrali

        A             B               C                D              E          F

    4             1° tr            2° tr           3° tr          4° tr

    5 vuota      50              70                                           tot: =SOMMA(B5:E5)

    in B5: =se(B2=0;"";B2-A2) copia nelle altre celle a fianco fino alla E5. In F5 la somma dei parziali


    fai sapere, grazie

    ciao paoloard

    http://riolab.org

    ***********************************************

    Se la risposta ti ha aiutato "Vota come Utile".

    Se ha risolto il problema "Segna come Risposta".

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  3. Anonimo
    2011-01-04T17:29:11+00:00

    Buonasera paoloard e grazie per la risposta. Avevo provato ad effettuare un copia/incolla ma non è riuscito. Penso che debba un ulteriore spiegazione rispetto alla precedente richiesta e provo anche a fare un esempio più preciso fornendoti anche le allocazioni:

      Col A          Col B       Col   C      Col   D      Col   E       Col  F                                    01/04/2011 

     Articolo       1° trim    2° trim       3° trim      4° trim       Fatt Totale

    AC 001          100          80                                               180 

    AC 002          90            40                                               130  <=== questo,per ogni articolo,è un dato che si

    aggiorna come totale in quanto si riferisce al totale degli articoli acquistati fino a quel momento. L'aggiornamento non avviene sempre ogni giorno e mi viene trasmesso in rete.

    Ecco il riferimento alla data, perchè quando finisce un trimestre, l'aggiornamento del totale, per differenza, deve confluire nel trimestre successivo e così via così come nell'esempio.

    Non è importante la data odierna per me, ma la fine del trimestre, perchè devo tenere sotto controllo il numero di acquisti da fare nel trimestre.

    Pertanto stavo cercando, partendo dalla colonna F, una formula che faccia la suddivisione per trimestri mano a mano che si aggiorna il totale.

    Spero di essere stato chiaro il più possibile per aiutarti a comprendere la mia esigenza. Grazie per la cortesia e l'interessamento.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-01-04T15:27:45+00:00

    Poiché non fornisci l'allocazione dei dati faccio un'ipotesi.

    In colonna A e B i dati:

    Data Fatturato
    10/01/2010 1
    20/01/2010 1
    30/01/2010 1
    09/02/2010 1
    19/02/2010 1
    01/03/2010 1
    11/03/2010 1
    21/03/2010 1
    31/03/2010 1
    10/04/2010 2
    20/04/2010 2

    In altra parte del foglio il riepilogo:

    1° Trim 2° Trim 3° Trim 4° Trim
    9 4 0 0

    nella cella del primo trimestre la seguente formula matriciale (da confermare con Ctrl+Maiusc+Invio):

    =SOMMA((ARROTONDA.ECCESSO(MESE($A$2:$A$100);3)/3=RIF.COLONNA(A1))*($B$2:$B$100))

    che non ha bisogno di riferirsi alla data OGGI() in testa al riepilogo poiché tramite la funzione ARROTONDA.ECCESSO(MESE...) identifica già nella data di colonna A l'appartenenza ad un trimestre.

    Ovviamente cambia gli intervalli a seconda della tua situazione.

    NB: se non vuoi vedere gli zeri, in assenza di dati, applica una formattazione condizionale tale che se il valore della cella è zero il colore carattere è bianco, quindi non visibile su sfondo bianco.


    fai sapere, grazie

    ciao paoloard

    http://riolab.org

    ***********************************************

    Se la risposta ti ha aiutato "Vota come Utile".

    Se ha risolto il problema "Segna come Risposta".

    La risposta è stata utile?

    0 commenti Nessun commento