Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Die 80% Regel - Berechnete Spalten in SharePoint 2010

Berechnete Spalten in SharePoint waren schon immer etwas hake­lig zu bedie­nen. Mit SharePoint 2010 ist dies nun end­lich kein Problem mehr – sollte man eigent­lich anneh­men kön­nen. Dass dies nicht der Fall ist, durfte ich ges­tern wie­der ein­mal festel­len.

Angenommen ein Nutzer erstellt sich eine Liste mit ver­schie­de­nen Spalten und eine die­ser Spalten stellt ein Datum dar. Nun könnte die­ser Nutzer auf die wahn­sin­nige Idee kom­men eine wei­tere Spalte hin­zu­zu­fü­gen, wel­che ledig­lich die Jahreszahl der Datumsspalte anzeigt. Für sol­che Zwecke bie­tet SharePoint den Spaltentyp "Berechnet". Mit Hilfe die­ses Spaltentyps las­sen sich ohne Entwicklung Inhalte einer oder meh­re­rer Spalten in einer aggre­gie­ren. Selbst kom­plexe Berechnungen sind mög­lich.

Vorghehensweise:

Unser ahnungs­lo­ser Nutzer erstellt nun solch eine Spalte, nennt Sie Jahr und trägt eine Formel ein.

Die Formel lau­tet wie folgt:

=TEXT(YEAR([Erstellt]),"0")

Mit Hilfe die­ser Formel wird das in der Spalte "Erstellt" ent­hal­tene Datum ver­wen­det um wei­tere Berechnungen damit aus­zu­füh­ren. Durch das Steuerwort TEXT und der Formatierungsangabe "0" kann die Ausgabe als Text und ohne Komma erfol­gen. Würde eine Formel wie "=YEAR([Erstellt])" ver­wen­det wer­den, wäre das Ergebnis fol­gen­des: 2,010.

Ergebnis:

Erwartungsgemäß erhält unser Nutzer nun keine Spalte, wel­che die Jahreszahl ent­hält son­dern fol­gende modi­sche Fehlermeldung:

Die Formel ent­hält einen Syntaxfehler oder wird nicht unter­stützt.

Hier endet das Szenario. Nach wei­te­ren 2h des erfolg­lo­sen Versuchens habe ich genervt auf­ge­ge­ben. Ausdrücke wie Year()… schei­nen tadel­los zu funk­tio­nie­ren. Werden "kom­ple­xere Ausdrücke" wie TEXT oder bei­spiels­weise TODAY ver­wen­det, schei­tert SharePoint!

Versuch Nr.2 :

Meist hilft es ja, wenn man über ein Problem ein­fach mal eine Nacht schläft. Gesagt – getan. Im zwei­ten Anlauf habe ich den SharePoint Designer 2010 instal­liert, die Liste auf­ge­ru­fen und im Reiter "Liste" die Funktion "In SharePoint Designer bear­bei­ten" auf­ge­ru­fen.

Über die "Spalte hin­zu­fü­gen" Funktion des SharePoint Designers habe ich nun eine Berechnete Spalte hin­zu­ge­fügt. Die Formel für diese Spalte ist die glei­che wie im ers­ten Versuch.

blank

Ergebnis:

Überraschenderweise stellt SharePoint nun den rich­ti­gen Wert in der Liste dar (2010). Die Spalteneinstellungen sowie die Formel sind genau die, wel­che auch in der Einstellung über die Oberfläche vor­ge­nom­men wur­den.

Warum SharePoint die Methode über die Benutzeroberfläche nicht mag konnte ich lei­der nicht her­aus­fin­den. Vielleicht hilft die­ser Workaround jedoch dem Einen oder Anderen.

Update:

Dank Ronnys Kommentar ist die Ursache des Problems gefun­den:

Anscheinend ist die Ursache ein Bug im SharePoint 2010. Laut MSDN Erläuterung zur Verwendung der Berechneten Felder wer­den die Anweisungen mit Komma getrennt. Dem ist aber nicht der Fall. SharePoint 2010 unter­stützt über die Oberfläche keine Kommas. Statt des­sen muss ein Semikolon ver­wen­det wer­den. Folglich lau­tet die Formel mit Semikolon geschrie­ben so:

=TEXT(YEAR([Erstellt]);"0")

Wird die Formel so über die Oberfläche ein­ge­ge­ben wird kein Syntaxfehler mehr bemän­gelt. Bei Verwendung des SharePoint Designers kön­nen Kommas ver­wen­det wer­den.

Related Posts

Bei 2007 musste man glaube ich noch mit deut­schen Funktionsnamen (Jahr, Monat, heute) rech­nen. Bei dei­ner Formel ist an sich nur das Komma falsch und muss durch ein Semikolon ersetzt wer­den.
=TEXT(YEAR([Erstellt]);"0")
2010 Foundation macht dann dar­aus ein über­setz­tes =TEXT(JAHR(Erstellt);"0")

Hallo Ronny,

tat­säch­lich hast du mit dei­nem Semikolon Recht. Die Übersetzung, also ob Jahr oder Year etc. über­nimmt SP2010 mitt­ler­weile zuver­läs­sig.

Mir ist jedoch unklar wes­halb jetzt auf­ein­mal Semikolons ver­wen­det wer­den. Laut MSDN (unter TEXT Funktion) (http://msdn.microsoft.com/en-us/library/bb862071.aspx) wird ein Komma ver­wen­det. SharePoint Designer selbst akzep­tiert auch das Komma.

Vielen Dank für den Hinweis.

VG,
Torsten

Ob Semikolon oder Komma ver­wen­det wer­den muss ergibt sich aus der Sprache des instal­lier­ten Systems. Also immer beach­ten ob man auf einem deut­schen oder eng­li­schen System arbei­tet

Hallo zusam­men,

mit den deut­schen Funktionsnamen fun­tio­niert es auf jeden Fall dafür erst­mal danke. Kann mir jemand erklä­ren, wass es mit dem "0" auf sich hat? Warum wird die­ses Parameter ver­langt?

DANKE, DANKE, DANKE!!!

Hab auch unge­fähr eine Stunde inves­tiert, um her­aus­zu­fin­den, dass es wohl an der TEXT-Funktion liegt. Dabei ist es wie du mit­ge­teilt hast, das Komma. Ersetzt man es durch ein Semikolon, klappt es!

🙂 🙂 🙂

Die Formel soll =TEXT(YEAR([Erstellt]),”0000″) lau­ten.

Super, Super, Super.
Benutze eng­lisch­spra­chi­gen SP…habe Komma ver­wen­det.
=TEXT(YEAR([Erstellt]),"0") ohne Vernwendung des Designers.

Hat alles nicht funk­tio­nert, aber mit die­ser Formel: =TEXT(Erstellt;"yyyy")

Comments are closed.

Pin It on Pinterest