Ricostruzione consumi gas

Anonimo
2010-10-18T10:48:02+00:00

Ciao a tutti.

Abbiamo l'esigenza di costruire in sistema per poter effettuare il ricalcolo dei consumi di contatori gas fermi. Ad ogni contatore è associato un profilo di utilizzo, e per ogni profilo c'è la percentuale di prelievo giornaliera (c'è una tabella, definita dall'autorità, che ha come intestazione il nome del profilo e nelle varie righe la suddivisione giorno per giorno).

Ciò che vorremmo è: imputando date (comprese nell'intervallo di date della tabella di prima) e letture ritenute attendibili, ottenere il calcolo del valore della lettura ad un certo giorno.

Con Excel è possibile o bisogna fare un tentativo con Access?

Scusate se sono stato poco chiaro, ma la materia è abbastanza complessa e noi non sappiamo da che parte iniziare :-)

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
2010-10-21T01:01:31+00:00

Continuo a non capire, sicuramente per mio difetto, in particolare il calcolare oggi una lettura al 30/11/2007, a meno che non si ipotizzi la corrispondenza dell'anno 2007 con il 2010 e la mancanza di letture nel 2008.

Comunque, non avendo disponibili tutti i dati coinvolti, la formula matriciale proposta ti risolve i due problemi: "valore del profilo nell'intervallo" e "valore del profilo dalla data più lontana alla data voluta", oppure no ?? , visto che i rimanenti calcoli sembrano essere banali.

Guarda, sono casi che capitano più spesso di quanto si pensi, e quando capitano sono immense rotture di scatole, non tanto per il calcolo in se quanto per il tempo che ci vuole a ricostruire la situazione e fare tutte le varie comunicazioni, storni di fatture ecc... Il caso di sopra è dovuto, per esempio, al passaggio da un venditore all'altro, e nel passaggio non si è riusciti a rilevare la lettura (una casa vacanza, infatti mancavano le letture fino ad oggi). Oggi arriva una lettura inferiore a quella del passaggio e innesca questo meccanismo.

Tornando alla formula, oggi non ho avuto modo di provarla ma domani mi ritaglio un pochino di tempo per fare un paio di prove, anche perchè è una delle tante funzioni che non conosco e non vorrei limitarmi a copiare grezzamente la formula ma vorrei capire come funziona, può sempre tornare utile in futuro :-)

Intanto grazie

Scusa Alberto, ma ho riprovato quella formula che purtroppo è sbagliata, per cui non ci perdere altro tempo; stranamente ha funzionato una volta sola ma prove successive fatte stasera hanno rilevato un errore, tra l'altro abbastanza evidente. Sto cercando di capire il perchè ha funzionato e se trovo la soluzione ci risentiamo,altrimenti proverò una soluzione in Vba.

Scusa di nuovo e saluti

Eliano

Ciao Alberto.

Niente da fare per la formula, almeno per me. Ti proporrei una soluzione in Vba.

Aggiungi un foglio al file delle tabelle; dovrebbe essere Foglio1, altrimenti rinominalo.

In B1  La data iniziale, ad esempio: 04/10/2010

in C1  La data finale, ad esempio: 10/10/2010

in D1  un profilo, ad esempio: 001X1

Modifica il nome del foglio: Profili di prelievo standard   in: Profili_di_prelievo_standard . Il Vba non gradisce gli spazi nel nome dei fogli e dei file.

Con ALT + F11 vai nel Vbe ed Inserisci-->Modulo; nella pagina bianca che si apre copia/incolla questa macro, (Dovrebbe essere Modulo1)

Public Sub prova()

'definizione delle variabili

Dim sh1 As Worksheet, sh2 As Worksheet

Dim cel As Range, X As Long

Dim tprof As Double, rng2 As Range

Dim urig2 As Long, ucolp As String

'settaggio degli oggetti

Set sh1 = Worksheets("Foglio1")

Set sh2 = Worksheets("Profili_di_prelievo_standard")

'ricerca colonna profilo

ucolp = sh2.Cells(3, Columns.Count).End(xlToLeft).Column

X = 0

For X = 3 To ucolp

If sh2.Cells(2, X).Value = sh1.Range("D1").Value Then Exit For

Next

'calcolo sommatoria profilo per il periodo

urig2 = sh2.Cells(Rows.Count, "A").End(xlUp).Row

Set rng2 = sh2.Range("A3:A" & urig2)

For Each cel In rng2

If cel.Value >= sh1.Range("B1") And cel.Value <= sh1.Range("C1") Then

tprof = tprof + sh2.Cells(cel.Row, X)

Else

'

End If

Next

Range("E1").Value = tprof

End Sub

Chiudi e torna ad Excel. con ALT + F8 esegui la macro prova. La macro scrive nella cella E1 la sommatoria delle percentuali del periodo per quel profilo. Controlla se la cifra è corretta e se è quello che ti serve. Eventualmente dimensiona le celle in modo da non perdere decimali necessari.

Saluti

Eliano

La risposta è stata utile?

0 commenti Nessun commento

14 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-10-18T13:44:30+00:00

    Ti posso dare il link alla tabella che va usata come base (è pubblica ed il file è pulito): http://www.autorita.energia.it/allegati/docs/10/144-10argall.xls

    Il foglio con i dati si chiama "Profili di prelievo standard"

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-10-18T12:55:18+00:00

    Intanto grazie per la risposta.

    Le tabelle dell'autorità sono fatte cosi:

    L'intestazione è     DATA            GIORNO     NOME PROFILO (un nome profilo per ogni colonna per un totale di 57 profili)

    I dati sono           01/10/2007    Lunedì        0,26130081

    In pratica è un lungo elenco dal 2007 ad oggi di valori, in cui è stabilito per ogni profilo la percentuale di consumo giorno per giorno (dal 01/10 al 30/09 di ogni anno la somma è sempre 100) quindi se un contatore che rientra in uno dei profili occorre prendere il periodo di riferimento e di conseguenza la somma del valore. Inoltre tutte le celle presentano valori diversi.

    Grazie!

    Continuo a non capire. Hai questa tabella? Io non vedo valori a meno che Nome Profilo non sia un valore.


    --

    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
  3. Anonimo
    2010-10-18T12:41:30+00:00

    Intanto grazie per la risposta.

    Le tabelle dell'autorità sono fatte cosi:

    L'intestazione è     DATA            GIORNO     NOME PROFILO (un nome profilo per ogni colonna per un totale di 57 profili)

    I dati sono           01/10/2007    Lunedì        0,26130081

    In pratica è un lungo elenco dal 2007 ad oggi di valori, in cui è stabilito per ogni profilo la percentuale di consumo giorno per giorno (dal 01/10 al 30/09 di ogni anno la somma è sempre 100) quindi se un contatore che rientra in uno dei profili occorre prendere il periodo di riferimento e di conseguenza la somma del valore. Inoltre tutte le celle presentano valori diversi.

    Grazie!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-10-18T10:50:10+00:00

    Ciao a tutti.

    Abbiamo l'esigenza di costruire in sistema per poter effettuare il ricalcolo dei consumi di contatori gas fermi. Ad ogni contatore è associato un profilo di utilizzo, e per ogni profilo c'è la percentuale di prelievo giornaliera (c'è una tabella, definita dall'autorità, che ha come intestazione il nome del profilo e nelle varie righe la suddivisione giorno per giorno).

    Ciò che vorremmo è: imputando date (comprese nell'intervallo di date della tabella di prima) e letture ritenute attendibili, ottenere il calcolo del valore della lettura ad un certo giorno.

    Con Excel è possibile o bisogna fare un tentativo con Access?

    Scusate se sono stato poco chiaro, ma la materia è abbastanza complessa e noi non sappiamo da che parte iniziare :-)

    Dipende dalla quantità di dati e da come sono strutturati. Puoi postare un esempio della struttura dati? Grazie.


    --

    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