Jump to content

Moritz Münzenmaier

smap Experts
  • Posts

    55
  • Joined

  • Last visited

  • Days Won

    12

Community Answers

  1. Moritz Münzenmaier's post in Tageszeitabhängige Funktionen was marked as the answer   
    Guten Morgen @Vincent Mayer,

    in deinem konkreten Beispiel würde würde der versteckte Zeitbaustein nicht funktionieren, da man diesen nicht mit 0 Uhr vorbelegen würde. 
    Wenn du einen Zeitstempel oder ein Zeit- und Datumsfeld hast, dann wäre die Funktion zur Überprüfung, ob der Zeitpunkt nach 20 Uhr liegt, folgende: 
    GREATERTHANOREQUAL(SUBTEXT(TEXT({Timestamp}),12,2),"20") 
    Wenn du nur einen Zeitbaustein hast, dann wäre es entsprechend: 
    GREATERTHANOREQUAL(LEFT(TEXT({Timestamp}),2),"20") 
    Was diese Formeln machen, ist die ersten beiden Zeichen der Uhrzeit mit dem Wert 20 zu vergleichen und zu prüfen, ob diese Zeichenfolge größer ist als die Zeichenfolge "20". Es ist zwar immer noch ein String als Datenformat, allerdings funktioniert der Vergleich auf diese Art. 
    Man muss nur ein bisschen darauf achten, dass man nicht in die "Nach 0 Uhr" Falle tappt. "02" ist per Definition kleiner als "20" und würde damit nicht unter diese Aktivierungsregel fallen. Das bedeutet in dem konkreten Fall müssten man die Formel noch erweitern und prüfen, ob der Zeitpunkt bspw. zwischen 0 Uhr und 8 Uhr liegt. 
     
    Unterbringen würde ich das dann alles in einer IF Funktion, in dem Fall in einem Zahlenergebnisfeld, welches den eventuellen Aufschlag (bzw. Faktor) ausgibt, wenn die Funktion WAHR ist, und ansonsten eben eine 0 (oder falls Faktor eben eine 1). Dann dies zur ursprünglichen Zahl addieren (bzw. multiplizieren).
  2. Moritz Münzenmaier's post in Formel: kleiner gleich, aber max. was marked as the answer   
    Ich fühlte mich gerade in meine Schulzeit zurückversetzt - das Trauma der Mathe-Textaufgaben wurde wieder aufgebrochen 😄 "Helge möchte eine Schweißnaht vermessen...." 
    Und die Frage die ich mir damals schon gestellt habe, stelle ich mir hier erneut: "Habe ich das überhaupt richtig verstanden?!" 
    Ist es das hier: SMAP IMPORTIEREN ?
     
     
     
  3. Moritz Münzenmaier's post in Elemente von Wiederholungsgruppen im Bericht gruppieren was marked as the answer   
    Hi @Connor Jessen

    Ich bin relativ sicher, dass ich die Anforderung verstanden habe 🙂

    Du hast richtig festgestellt, dass du ein logisches Problem bekommst, wenn du eine Bedingung stellen willst, die sich auf einen Wert innerhalb der Wiederholungsgruppe (WDHG) bezieht. Die einfachste Variante ist es hier innerhalb der smap diesen Wert aus der WDHG herauszuholen. 
    Ich mache es meistens so, dass ich dafür innerhalb der WDHG ein Zählerfeld (Zahlenergebnis mit id "zaehler_rohware") baue, dass bspw. für Rohware folgende Formel hat: 
    IF(EQUALS({Art},"Rohware"),1,0)
    Damit habe ich in der WDHG eine 1, wenn die Art "Rohware" ist. Diesen Zähler baue ich für jede Art, die ich im Bericht später individuell ausweisen möchte und blende die Felder in der smap aus. 
    Außerhalb der Wiederholungsgruppe mache ich nun analog zu jedem Zählerfeld ein Summenfeld für die jeweiligen Arten - an unserem Beispiel wäre das einfach nur SUM({zaehler_rohware}). Dieses Feld bekommt die id "summe_rohware". Damit habe ich einen klaren Indikator, auf den ich mich beziehen kann, wenn ich im Bericht gewisse Tabellen komplett ein- oder ausblenden will. 
    Im Bericht wird es nun ein wenig "spannend" 🙂 
    Wir nutzen unser gebautes Feld, um darüber die allgemeine Steuerung der Kopfzeile abzubilden ({%IF bricks.summe_rohware > 0 %}) und machen dann eine Positionszeile pro Position, die sich auf ein Wertfeld innerhalb der Wiederholungsgruppe beziehen kann (
    {%FOREACH bricks.position%}
    {%IF art == “Rohware”%}
     
    . Lange Rede, kurzer Sinn - das sieht dann so aus: 

    Hier ist meine Lieblingsfunktion von Word extrem hilfreich, nämlich das Teilen einer Tabelle, das man oben über Tabellenlayout findet. 

     
    Ich gehe nur davon aus, dass du mit dieser Logik deinen Index vergessen kannst, da diese Teiltabellen nicht jeweils neu indiziert werden, sondern die Zahlen dort wild hin und her springen werden. Das liegt daran, dass es immer noch ein gesamter Index für die gesamte Wiederholungsgruppe ist. 
     
  4. Moritz Münzenmaier's post in Selektierung in einem Datensatz ... was marked as the answer   
    Hallo @Benjamin Knöner, 
    ich würde das wahrscheinlich so machen, dass ich den DSAB im Suchfeld mit dem Wert der Einfachauswahl vorbelege, alle anderen Werte nicht durchsuchen lasse und die notwendigen Werte innerhalb der smap in einem Ergebnisbaustein ausgebe. 
    Was bedeutet das genau? 
    Beispielhaft habe ich die smap mal auf 3 Bausteine reduziert - Firmenauswahl, Datensatzauswahlbaustein für die Exceltabelle und ein Ergebnisfeld.

     
    Die Firmenauswahl hat 2 Firmen zur Auswahl und hat die Baustein-ID {Select}

     
    Diese Firmen finden sich im Datensatzauswahlbaustein unter "Firma" wieder - hier sind die roten Kästchen wichtig. Da wir die Firma als Suchbegriff/Filter verwenden wollen, müssen wir in dieser Spalte die Suche (Symbol "Lupe") aktivieren. In allen anderen können wir sie deaktivieren, da die Mitarbeiter nach Auswahl der Firma aus der Liste gewählt werden. Daher sind die "Augen", also die Ansicht auch nur bei den Mitarbeiterdaten aktiv. 

     
    In den Einstellungen des DSABs (rechte Seite, nachdem wir ihn angeklickt haben), belegen wir das Suchfeld mit dem Wert der Einfachauswahl vor. 

     
    Der Ergebnisbaustein gibt alle anderen Felder einfach nur aus.

     
    Die smap sieht dann folgendermaßen aus: Der Nutzer wählt in erster Instanz die Firma aus. 

     
    Wenn er nun danach den Datensatzauswahlbaustein anklickt, dann sind lediglich die Mitarbeiter dieser Firma zu sehen, da die Tabelle nach diesem Kriterium gefiltert wird.
     

     
    Nach der Auswahl des Mitarbeiters werden alle weiteren Daten im Ergebnisbaustein ausgegeben. 

     
  5. Moritz Münzenmaier's post in Zeitraum abhängiges Senden Baustein "E-Mail versenden" was marked as the answer   
    @Matthias Johs

    Puh, was für eine Kopfnuss. 🙂
    1. Die Klammer um die zweite Hälfte der AND Bedingungen muss eh weg - die scheint den Designer zu verwirren - damit sollte es schonmal besser funktionieren - warum das so ist, kann ich mir allerdings auch nicht erklären.  
    2. Wenn ich dich richtig verstanden habe, dann hat deine erste Formel dennoch eh einen kleinen Logikfehler
    AND(LESSTHAN({ZeitstempelAlsText_2}, "08_00_00"), (GREATERTHAN({ZeitstempelAlsText_2}, "17_00_00"))) Das würde bedeuten, dass bspw. 4 Uhr nicht in diese Bedingung fällt, denn 04 ist kleiner als 17 und damit wäre die gesamte AND-Bedingung FALSE. Dem kann man entgegenwirken, indem man das AND in ein OR verwandelt. Entweder kleiner als 08 oder größer als 17. 
    3. Es ist zwar äußerst unwahrscheinlich, aber du hast 2 Sekunden am Tag keine Mails - ich würde der zweiten Bedingung jeweils noch ein "OREQUAL" dahinter spendieren, damit die auch abgefangen sind. 

    Einmal die beiden Formeln mit Dank für die Denksportaufgabe zurück 🙂
    Erste Bedingung: OR(LESSTHAN({ZeitstempelAlsText_2}, "08_00_00"), GREATERTHAN({ZeitstempelAlsText_2}, "17_00_00"))
    Zweite Bedingung: AND(GREATERTHANOREQUAL({ZeitstempelAlsText_2}, "08_00_00"),LESSTHANOREQUAL({ZeitstempelAlsText_2}, "17_00_00"))
    Damit sollte es funktionieren. 
  6. Moritz Münzenmaier's post in Wiederholungsgruppen ausgeben auf Protokoll was marked as the answer   
    Moin @Connor Jessen,
    um jeden Inhalt einer Wiederholungsgruppe muss ein {%FOREACH bricks.namederwiederholungsgruppe %} am Anfang und ein {%ENDFOREACH%} gebaut sein. Das ist in deinem Screenshot vermutlich nicht zu sehen. 🙂 
    Jetzt ist es so, dass in dieser Bedingung das "bricks" schon mitgegeben wird. Daher ist zwischen dem FOREACH und dem ENDFOREACH auf das "bricks" vor den Bausteinen zu verzichten. 
    Generell empfehle ich immer einmal bei den Bausteinoptionen der Wiederholungsgruppe ganz unten bei den Berichtsoptionen den Haken zu setzen bei "Als Tabelle ausgeben" und sich dann als Inspiration die generierte Vorlage herunterzuladen. Da wird die Logik einigermaßen klar. Die Nummerierung der Positionen kannst du zwischen dem FOREACH und dem ENDFOREACH mit {{INDEX}} ausgeben. 
    Ansonsten, gebe ich zu dass es etwas versteckt ist, aber hier wird es auch nochmal beschrieben in der Hilfe. 🙂 

  7. Moritz Münzenmaier's post in Date in Excel mit Bildern als Link was marked as the answer   
    Ich versuche es mal in einem kurzen Video (3:30) darzustellen 🙂

    Die hinzugefügte benutzerdefinierte Spalte: 
    "https://platform.smapone.com/Portal/Creator/Data/File?smapId="&[Column1.smapId]&"&recordId="&[Column1.id]&"&fileId="&[Column1.data.Photo.fileId]
     

    2023-04-26_13h43_00.mp4  
     
     
  8. Moritz Münzenmaier's post in Filtern von Daten was marked as the answer   
    Ich habe es eben mal durchprobiert mit allen möglichen Wildcards, davon hat nichts funktioniert. 😞

    Wenn ich jetzt dringend eine Lösung bräuchte, dann wäre der einzige Lösungsansatz für den konkreten Fall mir das Zeichen herauszusuchen, dass sich alle Einträge, die Daten haben, teilen. In dem konkreten Fall wäre das wohl das @-Zeichen und damit diese Bedingung


    Funktioniert auch bei einem Datums-Feld, bspw. mit einem Leerzeichen oder einem Punkt. 

    "Ist leer" und "ist nicht leer" halte ich ebenfalls für deutlich pragmatischer als meinen untenstehenden Lösungsansatz. Ich gebe es mal an die Kollegen aus dem Produktmanagement weiter, mit Referenzierung auf diesen Post hier.
  9. Moritz Münzenmaier's post in Bericht Text mit Bedingung anzeigen was marked as the answer   
    Hi @Ina Roth, 
    ich antworte einfach mal an deiner Frage vorbei - wenn mein vorgeschlagener Weg bei euch nicht umgesetzt werden kann aus Gründen, die mir nicht bekannt sind, dann sag einfach Bescheid. Meine Faustformel ist immer so wenige Formeln wie möglich im Bericht zu verorten. 
    Meine Empfehlung ist es die Bedingung für die Warnung nicht einmal im Bericht und einmal in der smap zu pflegen, sondern den Hirnschmalz, den du in der Formel der smap schon reingesteckt hast auch im Bericht zu nutzen. 
    Damit meine ich, dass du in der smap Aktivierungsregeln auf Textergebnisfelder setzt und im Bericht einfach nur diese Textergebnisfelder ausgibst, ohne Bedingung oder weiteres. In deinem ersten Beispiel wäre dies ein Textergebnisfeld mit folgendem Inhalt: 

    CONCAT("ACHTUNG! \n\nFolgender Mitarbeiter ist in der Auswahlliste nicht vorhanden:\n\nName: ",{Textbox_2},"\nPersoNr.: ",{Textbox_3},"\n\nEine Info an das SmapOne Team wird nun generiert. Die Datensatzliste im Hintergrund der Smap wird aktualisiert, so dass eine Auswahl des Mitarbeiters zu einem späteren Zeitpunkt möglich ist.")
    Dabei gilt es natürlich {Textbox_2} und {Textbox_3} durch die entsprechenden Variablen aus deiner smap zu ersetzen. Auf dieses Feld legst du deine Aktivierungsregel mit den vordefinierten Bedingungen, die du ja schon fertig definiert hast. 
    Im Bericht fügst du nun lediglich das Ergebnisfeld an der Stelle ein, wo dieser Text stehen soll. 

    Fall 1 - Das Feld ist deaktiviert: Dieser Text wird nicht angedruckt und generiert auch keine Leerzeile
    Fall 2 - Das Feld ist aktiviert: Der Text wird entsprechend der hinterlegten Formatierung im Bericht angedruckt: 

    Damit spart man sich dieses Formeln nachbauen im Bericht und kann, wenn man ein Feld hinzufügt, dass ebenfalls im Bericht auftauchen soll, dieses in den Ergebnisbaustein verfrachten. 
    Analog dazu die Textausgabe des zweiten Texts mit einer eigenen Aktivierungsregel befüllen und direkt darunter in den Bericht einfügen. 
    Ist einmalig etwas Aufwand sich mit der CONCAT-Formel zu beschäftigen, macht aber später das Leben wirklich leichter. 
     
  10. Moritz Münzenmaier's post in Blocksatz eines Textfeldes was marked as the answer   
    @Silke Jung: 

    In Word auf Datei > Optionen 
    Menüpunkt Erweitert - ganz runter bis zu den Layout-Optionen > Haken setzen bei "Zeichenabstände in Zeilen, die mit UMSCHALT + EINGABE enden, nicht erweitern". Unten die Ergebnisse meines Tests 🙂






     
  11. Moritz Münzenmaier's post in Bereiche von smaps per "Passwort schützen" was marked as the answer   
    Es kommt immer mal wieder die Anforderung, dass ein gewisser Bereich der smap nicht jedem zugänglich sein soll, bspw. wenn der Schichtleiter den Stundenzettel des Mitarbeiters unterschreiben soll, der Mitarbeiter allerdings nicht die Möglichkeit haben soll diese Unterschrift selbst leisten zu können oder den Datensatz ohne Unterschrift abzusenden, sei es im Zuge einer Aufgabe oder bei einer gemeinsamen Erfassung auf einem Gerät. 
    Die naheliegendste Idee wäre hier mit Aktivierungsregeln zu arbeiten: 

     
     

    Hier ist allerdings das Problem, dass diese Aktivierungsregel nicht verhindert, dass der Mitarbeiter (trotz Pflichtfeld) den Datensatz mit einem falschen Passwort, aber ohne gültige Unterschrift, absendet:

     
    Die Lösung: 
    Eine Validierungsregel! Eine Pflichtfeld das eine Validierungsregel hat verhält sich bei Eingaben die dieser Regel nicht entsprechen wie ein leeres Feld. 
     
     
     
    Damit besteht keine Möglichkeit für den Nutzer den Datensatz aus Versehen abzusenden, solange er das Kennwort nicht kennt. 


     
    Nur derjenige mit dem richtigen Kennwort kann den Datensatz final absenden. 
     
     
     
  12. Moritz Münzenmaier's post in Dynamische smaps - oder dem Datensatzauswahlbaustein (DSAB) das "Mitdenken" überlassen was marked as the answer   
    Hallo zusammen, 
    da es immer mal wieder vorkommt, dass man innerhalb einer smap mehrere Teilvorgänge hat, aber der Erfassende in dem Moment der Erfassung vielleicht keinen Überblick darüber hat, welche Teilvorgänge in diesem Erfassungsvorgang eine Rolle spielen, kann man den Datensatzauswahlbaustein an dieser Stelle sehr gut dafür nutzen. 
    Der Satz ist so herrlich abstrakt und unverständlich, dass ich anhand von zwei Beispielen etwas konkreter werden möchte. 
    Szenario 1: Die Logistikabteilung muss regelmäßig nachweisen, dass die Fahrer gewisse Scheine haben, die sie für die Ausführung ihrer Rolle benötigen. Alle Mitarbeiter brauchen einen Führerschein, einige einen Gefahrgutschein und wiederum einige einen Personenbeförderungsschein (beliebig erweiterbar). Idealerweise werden alle Scheine gemeinsam kontrolliert, allerdings so, dass der kontrollierende nicht immer nachschauen oder -fragen muss, welcher Schein kontrolliert werden muss. 
    Daher pflegt er eine Tabelle mit den Mitarbeitenden, in der die relevanten Dokumente mit einem "x" festgehalten sind: 

    Damit wird durch eine Aktivierungsregel auf das "x" in einer speziellen Spalte, innerhalb der smap ein gewisser Teilbereich eingeblendet. 


    Durch das Auswählen des Mitarbeiters ändert sich damit der Aufbau der smap und der Kontrollierende hat mittelbar die Info was er im Zuge der Kontrolle ebenfalls "mitkontrollieren" muss. Einen neuen Mitarbeitenden füge ich, entsprechend der Logik, einfach der Liste hinzu.
    Diese Information muss nicht unbedingt "wahr" (x) oder "falsch" (leer) sein, sondern kann sich auch innerhalb eines Teilprozesses aufgabeln, doch dazu mehr in...
    ...Szenario 2: Die Verwaltung eines Maschinenparks setzt eine regelmäßige Wartung und Kontrolle der Maschinen und derer einzelnen Bauteile voraus - die Maschinen setzen sich aus einigen Standardbauteilen und einigen individuellen Bauteilen zusammen. Die Kontrolle soll innerhalb einer smap durchgeführt werden - dabei soll der kontrollierende nicht aus einer Liste von unterschiedlichen Bauteilen wählen, sondern idealerweise die Maschine auswählen (vielleicht sogar per gescannten QR Code), die er warten oder kontrollieren möchte. Folgender DSAB hilft uns dabei: 

    Was wir hier nun tun, ist innerhalb der smap nicht die Frage zu stellen, ob in der Spalte ein "x" steht, sondern einen konkreten Wert abzufragen, um einzelne Bestandteile der smap einzublenden. 


    Damit habe ich eine smap, die für mich entscheidet auf was genau ich bei dieser Maschine achten muss und mich ggf. auf Besonderheiten bei unterschiedlichen Bauteilen hinweist. 
    Der weitere, nicht zu unterschätzende, Vorteil ist, dass, wenn ich eine neue Maschine in meinen Park bekomme, ich nichts anderes tun muss als den DSAB entsprechend meines Syntax zu erweitern. Die smap muss ich nur anpassen, wenn neue Bauteile dazu kommen. 
     
    Es gibt wahrscheinlich unzählige Beispiele in der diese Logik ebenfalls Anwendung finden kann. Aber ein kleiner Tipp: Man sollte es nicht zu sehr verkomplizieren. Manchmal ist auch der bessere Weg einfach eine zweite smap zu machen - ist ja auch schnell gebaut. 
  13. Moritz Münzenmaier's post in Zeiterfassung / Pausenzeit was marked as the answer   
    @Holger Sprenz: 

    Da verstecken sich ja sozusagen zwei Fragen 🙂
    1. Die angepasste Formel: Nehmen wir an die Startzeit der Arbeit ist {DateTime_10} und der Endzeitpunkt ist {DateTime_11} 
    Dann ist die Erweiterung der oben stehenden Formel:
    ROUND(IF(AND(GREATERTHANOREQUAL(TOTALHOURS(SUB_DATE({DateTime_11},{DateTime_10})),6),LESSTHAN(TOTALHOURS({ResultPeriod}),0.5)),0.5,TOTALHOURS({ResultPeriod})),2)
    Damit findet die Rundung erst statt, wenn die Differenz der Arbeitszeiterfassung in Stunden >= 6 ist UND weniger als 0,5 Stunden Pause erfasst wurden. Wenn eine der beiden Bedingungen nicht erfüllt wurde, entfällt das Aufrunden. Damit sparst du dir die Extra-Felder und hast in der Powerquery immer ein Feld, dass den richtigen Pausenwert ausgibt. Im Prinzip hast du das eigentlich schon mit dem Einblenden der Gruppe gemacht. Habe nur beides verbunden 🙂
    2. Die Gruppe wird in der Query vermutlich nicht angezeigt, da sie später hinzugefügt wurde (Schuss ins Blaue). Falls dem so ist, dann ist die Vorgehensweise folgende: Datenbindung in Excel erneut öffnen (per Doppelklick) im Query auf der rechten Seite in die "angewendeten Schritte" zurück auf den Schritt "Erweitere Column1.data" (Doppelklick) -> In diesem Schritt sollte irgendwo ein "mehr laden" stehen. Da drauf klicken, kurz warten, und dann sollte die Repeatgroup in der Liste sein. Anklicken und "OK". 
    Dann wieder bei den "angewendeten Schritten" in den letzten Schritt springen, die Repeatgroup in der Tabelle suchen und auf den kleinen Doppelpfeil neben dem Spaltennamen klicken. Dort dann "auf neue Zeilen erweitern", dadurch wird eine Zeile pro Wiederholungsgruppeneintrag generiert. Dann erneut auf den Doppelpfeil klicken und dann solltest du die Felder der Wiederholungsgruppe auch auswählen können. 
     
  14. Moritz Münzenmaier's post in Weiterleitung von Aufgaben mit Pflichtfeld was marked as the answer   
    Moin @Robert Hüben, 

    du hast zwar einen anderen Moritz gefragt, aber da wir alle mit diesem Vornamen eh so eine Art Kollektivbewusstsein sind, würde ich stattdessen antworten. 

    Wenn es konkret um die Anforderung aus deinem Post geht, dann würde das mit diesem wundervollen Workaround meines Kollegen Jan funktionieren: 

    Diese versteckte Regel auf die Checkbox anwenden und die Aufgaben können nicht ohne diesen Haken abgesendet werden. 

    Allerdings möchte ich noch eine andere Lösung vorschlagen, die sich in meiner Wahrnehmung für den Anwender nicht groß unterscheidet, allerdings in der Administration deutlich geschmeidiger ist. 

    Dazu einfach eine Gruppe für die Historie verwenden und dort die unscheinbare Option "Als Unterseite" anwenden. 

     
    Die Darstellung in der smap sieht dann so aus. Anstatt des An- und Abhakens zum Einblenden, klickt der Anwender in die Unterseite hinein, um sich die Fotos anzuschauen: 

    Nach dem Reinklicken in die Gruppe kann sich der Anwender die kitschigsten Weihnachtsbilder aller Zeiten anschauen (oder aber natürlich auch sinnvolle Bilder) und über den Pfeil oben links in der Ecke wieder zurück in die Hauptansicht. 

     
  15. Moritz Münzenmaier's post in Nächster Prüfungstermin was marked as the answer   
    Moin @Robert Hüben, 

    wenn ich die Anfrage richtig verstehe, dann geht es hierbei um die Text-Ausgabe des neuen Prüftermins? Falls ja, dann ist die einfache Variante mit einem Textergebnisfeld zu arbeiten, dass die letzten beiden Stellen des Jahres entsprechend ersetzt. Dazu identifiziert man diese über SUBTEXT, tauscht diese über eine IF aus und führt diese mit den ursprünglichen Bestandteilen des Datums über CONCAT zusammen:  

    Wenn der Baustein für den Zeitstempel {Timestamp} wäre, dann ist die Formel: 
    CONCAT(LEFT(TEXT({Timestamp}),8),
    IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"22"),"26",
    IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"23"),"27",
    IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"24"),"28",
    IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"25"),"29",
    IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"26"),"30"))))))
     
    Wenn es sich um eine Datumsauswahl handelt, die nur eine Datumseingabe erlaubt (keine Uhrzeit), dann können wir für die Identifizierung des Jahres einfach die letzen beiden rechten Stellen über RIGHT abfragen: 
    CONCAT(LEFT(TEXT({Timestamp}),8), 
    IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"23"),"27",
    IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"22"),"26",
    IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"24"),"28",
    IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"25"),"29",
    IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"26"),"30"))))))

    Damit ist man zumindest bis inklusive 2026 auf der sicheren Seite - dieses Textergebnisfeld kann man dann entsprechend an die richtige Stelle des Berichts schreiben. 
×
×
  • Create New...