0

Hilfe bei einer Berechnung

Hallo Forum, ich habe noch ein Problem mit einer Berechnung:

Gegeben sind folgende Werte der Verbrauchsablesung

Tabelle

Die Tabelle hat 110 Datensatze, Datensatz Nr. 1 hat einen Startwert von 1009,20. Ich möchte in 3 weiteren Felden,

1. Die die Intervallänge in Tagen zur vorherigen Ablesung berechnen

2. Die Differenz vom letzten zum vorletzten Ablesewert berechnen

3. Die Kosten für das Ableseinterval vobei der Preisfaktor 0,29 Cent pro KWh beträgt.

Das Ergebniss soll so ausehen:

Tabelle1

Danke im Voraus. 

6 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Matthias,

    für 'Interval Länge' als Berechnungsfeld

    ---

    let myACT:=this;
    let myPREVID:=max(select 'DEINE TABELLE'[number(Nr)<number(myACT.Nr)].number(Nr))
    let myPREV:=first(select 'DEINE TABELLE' where number(Nr)=myPREVID;
    days(myPREV.Datum,myACT.Datum)

    ---

    für Verbrauch als Berechnungsfeld:

    ---

    let myACT:=this;
    let myPREVID:=max(select 'DEINE TABELLE'[number(Nr)<number(myACT.Nr)].number(Nr))
    let myPREV:=first(select 'DEINE TABELLE' where number(Nr)=myPREVID;
    myACT.Ablesewert-myPREV.Ablesewert

    ---

    für Kosten pro Intervall als Berechnungsfeld:

    ---

    Verbrauch*0.29

    ---

    Leo

    • Privat
    • Matthias_Reinicke
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, vielen dank für Deine Hilfe, in beiden Berechnungsfeldern bekomme ich mit diesem Code folgenden Fehler:

     

    Unbenannt

    Was mach ich falsch, Gruß Matthias

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    in der zweiten Zeile fehlt ein Semikolon am Ende.

     

    lg, Torsten

    • Privat
    • Matthias_Reinicke
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Torsten, Fehler korrigiert, die Fehlermeldung bleibt. Matthias

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Matthias,

     

    Klammer zu in Zeile drei vor dem Semikolon fehlt auch noch, sorry. Also:

     

    let myACT:=this;
    let myPREVID:=max(select 'DEINE TABELLE'[number(Nr)<number(myACT.Nr)].number(Nr));
    let myPREV:=first(select 'DEINE TABELLE' where number(Nr)=myPREVID);
    myACT.Ablesewert-myPREV.Ablesewert

     

    lg, Torsten

    • Privat
    • Matthias_Reinicke
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke, das hat funktioniert, vielen Dank für Eure Hilfe. Matthias