SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Summenberechnung von Dezimalzahlen

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
71 Beiträge
Tony23 erstellt 28 März 2013 11:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich möchte in einer Datenansicht die Gestamtsumme einer
Spalte berechnen. Die Were in dieser Spalte sind Dezimalzahlen:

Ich habe im SP-Designer in der Webseite oben im Stylesheet die Zeile <xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' /> hinzugefügt, und in der Zeile, die ich ändern möchte, habe ich die folgende Zeile <xsl:value-of select="format-number(sum(/dsQueryResponse/Rows/Row[@PM!= '']/@PM), '#.###,00', 'european')" />  hinzugefügt. Ich erhalte ein 'NAN' anstatt der Gesamtsumme. Wo ist mein Denkfehler?

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 28 März 2013 12:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da die Zahlen deutsch, also mit Komma als Dezimaltrenner, formatiert sind, muß man sie zuerst ins englische Zahlenformat bringen und erst dann die Summe bilden. Man ersetzt dazu einfach das Komma durch einen Punkt mit der translate() Funktion.

Sinngemäß:
format-number(sum(translate(Zahlenwert, ',', '.')))

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
Tony23 Als Antwort am 2 Apr. 2013 10:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich mach es jetzt so, wie Du es beschrieben hast, da ich aber leider kein XSLT-Experte bin, machte ich einen Syntaxfehler:

<xsl:value-of select="format-number(sum($Rows/translate(@Anzahl_x0020_Tage,',', '.' ),'000.00'))"/> 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Apr. 2013 11:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

format-number(sum(translate($Rows/@Anzahl_x0020_Tage,',','.')),'000.00')

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
Tony23 Als Antwort am 2 Apr. 2013 12:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen Dank für die Hilfe, aber das kklappt leider auch nicht:

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Apr. 2013 12:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mir leid, aber ich habe keine Zeit das selbst ausgiebig zu testen. Die sum-Funktion erwartet ein Nodeset und translate liefert einen String. Versuche mal den in ein msxsl:node-set(...) zu packen

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
71 Beiträge
Tony23 Als Antwort am 2 Apr. 2013 12:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, ich werde es versuchen. Vielen Dank nochmal.