Berechnungen
Mit Berechnungen fügst Du in jeden Text – Hinweisfelder, Endseite, E-Mails, Workflow-Aktionen – kleine Rechenformeln ein. Sie werden automatisch mit den Antworten des Formulars ausgefüllt, z. B. {{= {Menge} * {Preis} * 1.19 }} für einen Bruttobetrag.
Was ist eine Berechnung?
Eine Berechnung ist ein Platzhalter mit einer Formel. Statt eines festen Wertes schreibst Du eine Rechenanweisung, die Formenio beim Anzeigen bzw. beim Versand auswertet und durch das Ergebnis ersetzt.
Eine Berechnung steht immer zwischen doppelten geschweiften Klammern mit Gleichheitszeichen: {{= ... }}
Felder des Formulars referenzierst Du innerhalb der Formel mit einfachen geschweiften Klammern: {feldId}
Im Editor musst Du die Klammern in der Regel nicht selbst tippen – Du fügst Felder über die Schaltfläche „Variable" oder das Σ-Symbol ein und siehst sie als benannte Chips (z. B. Menge, Preis).
Berechnung einfügen
- Öffne ein Textfeld, das Platzhalter unterstützt (siehe Wo Berechnungen funktionieren).
- Klicke in der Werkzeugleiste auf Σ (Berechnung einfügen).
- Gib die Formel ein:
- Rechenzeichen
+ − * / %und Klammern direkt tippen. - Felder über „Variable" auswählen oder
{tippen und aus der Vorschlagsliste wählen. - Funktionen wie
round(tippen – die Autovervollständigung zeigt Signatur und Beschreibung. - Mehrere Angaben innerhalb einer Funktion trennst Du mit einem Semikolon:
round({Preis}; 2).
- Rechenzeichen
- Kontrolliere die Vorschau: Ergibt zeigt die Formel in Worten, Beispiel (alle Felder = 1) zeigt ein Probeergebnis.
- Mit Übernehmen wird die Berechnung als
{{= … }}-Chip in den Text eingesetzt.
Ungültige Formeln lassen sich nicht übernehmen – Formenio zeigt stattdessen eine konkrete Fehlermeldung an (z. B. „Unbekanntes Feld: preis").
Rechenzeichen
| Zeichen | Bedeutung | Beispiel | Ergebnis |
|---|---|---|---|
+ | Addition | 2 + 3 | 5 |
- | Subtraktion, auch negatives Vorzeichen | 10 - 4, -5 | 6, -5 |
* | Multiplikation | 4 * 2.5 | 10 |
/ | Division | 10 / 4 | 2,5 |
% | Rest (Modulo) | 10 % 3 | 1 |
^ | Potenz | 2 ^ 10 | 1024 |
( ) | Klammern für die Reihenfolge | (2 + 3) * 4 | 20 |
Rechenreihenfolge: Potenz vor Punkt- vor Strichrechnung; Klammern haben immer Vorrang.
Dezimalzahlen und Trennzeichen:
- Der Dezimaltrenner in der Formel ist der Punkt (
1.19) – ein eingetipptes Komma wird automatisch in einen Punkt umgewandelt. - Die Angaben innerhalb einer Funktion trennst Du deshalb mit einem Semikolon (
;), z. B.round({Preis}; 2)odermax({a}; {b}; 10).
Ältere Formeln, die Funktionsangaben noch mit Komma trennen (z. B. round({Preis}, 2)), werden weiterhin korrekt ausgewertet. Wenn Du eine solche Formel bearbeitest, verwende für neue Angaben das Semikolon.
Funktionen
| Funktion | Schreibweise | Beschreibung |
|---|---|---|
round | round(zahl; stellen) | Rundet auf so viele Nachkommastellen (Standard 0, max. 10). |
sum | sum(a; b; …) | Summe aller Werte. |
avg | avg(a; b; …) | Durchschnitt aller Werte. |
min | min(a; b; …) | Kleinster Wert. |
max | max(a; b; …) | Größter Wert. |
abs | abs(zahl) | Betrag – immer positiv. |
floor | floor(zahl) | Abrunden zur nächsten ganzen Zahl. |
ceil | ceil(zahl) | Aufrunden zur nächsten ganzen Zahl. |
sqrt | sqrt(zahl) | Quadratwurzel. |
pow | pow(basis; exponent) | Potenz (wie basis ^ exponent). |
if | if(bedingung; dann; sonst) | Ergibt dann, wenn bedingung ungleich 0 ist, sonst sonst. |
datum | datum() | Heutiges Datum im Format TT.MM.JJJJ, z. B. 31.12.2026. Siehe Datum und Uhrzeit. |
uhrzeit | uhrzeit() | Aktuelle Uhrzeit im Format HH:MM, z. B. 14:05. Siehe Datum und Uhrzeit. |
Funktionen lassen sich verschachteln: round(avg({a}; {b}; {c}); 1).
Hinweis zu if
Es gibt keine Vergleichsoperatoren (>, <, =) in Formeln. Die Bedingung von if ist eine Zahl: 0 = „nein", alles andere = „ja". Das eignet sich für Ja/Nein- bzw. Ankreuzfelder, die als 1 oder 0 in die Berechnung eingehen.
Datum und Uhrzeit
Mit datum() und uhrzeit() fügst Du das aktuelle Datum bzw. die aktuelle Uhrzeit in einen Text ein – z. B. auf der Endseite, in einer Bestätigungs-E-Mail oder in einer Workflow-Aktion „Feld aktualisieren".
| Formel | Ergebnis (Beispiel) |
|---|---|
{{= datum() }} | 31.12.2026 |
{{= uhrzeit() }} | 14:05 |
Beide Funktionen haben keine Angaben in den Klammern. Wenn Du sie über die Autovervollständigung auswählst, fügt Formenio sie direkt vollständig mit () ein.
Für Datum und Uhrzeit brauchst Du jeweils eine eigene Berechnung. Datum und Uhrzeit sind Text, keine Zahlen – Du kannst sie weder miteinander verbinden (datum() + uhrzeit()) noch mit ihnen rechnen (datum() + 7). Solche Formeln lassen sich nicht übernehmen und Formenio meldet „Mit Datum oder Uhrzeit kann nicht gerechnet werden."
Möchtest Du Datum und Uhrzeit anzeigen, fügst Du also zwei Berechnungen nacheinander in den Text ein und schreibst den verbindenden Text dazwischen:
Eingegangen am {{= datum() }} um {{= uhrzeit() }} Uhr
ergibt z. B. „Eingegangen am 31.12.2026 um 14:05 Uhr".
Welcher Zeitpunkt wird verwendet?
| Ort | Datum und Uhrzeit |
|---|---|
| Hinweis-/Richttext-Felder im Formular und Endseite | Zeitpunkt der Anzeige, nach der Uhr des Geräts, auf dem das Formular ausgefüllt wird. |
| E-Mail-Vorlagen und Workflow-Aktionen | Zeitpunkt des Versands bzw. der Ausführung, in deutscher Zeit (Europe/Berlin). |
Gut zu wissen:
- Innerhalb von
ifdarfst Dudatum()unduhrzeit()verwenden, z. B.if({Rueckruf}; uhrzeit(); datum()). Nur die Bedingung selbst muss eine Zahl sein. - Datum und Uhrzeit werden nicht formatiert oder gerundet – sie erscheinen immer genau im oben gezeigten Format.
Wie Feldwerte in die Berechnung einfließen
| Feldinhalt | Wert in der Formel |
|---|---|
Zahl bzw. Zahl als Text (12, 12,5, " 12 ") | die Zahl |
| Leeres oder nicht ausgefülltes Feld | 0 |
| Text, der keine Zahl ist | 0 |
| Daumen-/Ja-Nein-Bewertung | ja → 1, sonst 0 |
| Feld mit mehreren Werten (z. B. Mehrfachauswahl) | Summe der einzelnen Werte |
| Tabelle | Anzahl der ausgefüllten Zeilen; zusätzlich stehen Anzahl und Spaltensummen als eigene Werte zur Verfügung |
| Matrix | kein Zahlenwert (0) |
| Spalte eines gewählten Datensatz-Eintrags (z. B. „Produkt – Preis") | die Zahl aus dem Eintrag – auch mit Währung oder Tausenderpunkt (1.299,00 € → 1299) |
Weitere Regeln:
- Division oder Rest durch 0 ⇒ die Berechnung ergibt nichts (der Platzhalter bleibt leer).
- Eine leere oder ungültige Formel ergibt ebenfalls einen leeren Text – das Formular bricht nicht ab.
- Nur auf tatsächlich vorhandene Felder darf verwiesen werden; unbekannte Feld-IDs werden im Editor als Fehler markiert.
Ergebnis-Format
- Ganze Zahlen werden ohne Nachkommastellen ausgegeben (
1024). - Andernfalls wird auf 2 Nachkommastellen gerundet (
2,50). - Der Dezimaltrenner in der Ausgabe ist das Komma.
- Für ein anderes Rundungsverhalten
round(...)verwenden, z. B.round({betrag}; 0)für einen glatten Betrag oderround({betrag}; 4)für vier Stellen. datum()unduhrzeit()erscheinen unverändert alsTT.MM.JJJJbzw.HH:MM.
Wo Berechnungen funktionieren
| Ort | Wann wird ausgewertet? |
|---|---|
| Hinweis-/Richttext-Felder im Formular | Live, während die Person das Formular ausfüllt – das Ergebnis aktualisiert sich mit jeder Eingabe. |
| Info-Spalten in Tabellen | Live für jede Zeile – und beim Absenden noch einmal auf dem Server, der das Ergebnis mit der Antwort speichert. |
| Endseite (Text nach dem Absenden) | Beim Anzeigen der Endseite, mit den abgesendeten Antworten. |
| E-Mail-Vorlagen (Bestätigungs- und Benachrichtigungsmails) | Beim Versand auf dem Server. |
| Workflow-Aktionen – Statuswechsel, Feld aktualisieren, Datensatz anlegen, CleverReach | Bei der Ausführung des Workflows, mit den Antworten des auslösenden Datensatzes. |
In allen Fällen wird dieselbe Formel-Logik verwendet, sodass die Vorschau im Editor dem späteren Ergebnis entspricht.
Fehlerbehebung
| Problem | Ursache / Lösung |
|---|---|
| Platzhalter bleibt im Ergebnis leer | Division durch 0, ungültige Formel oder alle Felder leer. Formel und Feldreferenzen prüfen. |
| „Unbekanntes Feld: …" | Das referenzierte Feld existiert nicht (mehr) oder wurde umbenannt. Feld über „Variable" neu einfügen. |
Ergebnis ist immer 0 | Referenziertes Feld enthält keinen numerischen Wert (z. B. Textfeld) oder ist nicht ausgefüllt. |
| „Funktion … erwartet eine andere Anzahl an Argumenten" | Argumentzahl an die Signatur in der Funktionstabelle anpassen. Mehrere Angaben immer mit Semikolon trennen – ein im Editor getipptes Komma wird zum Dezimalpunkt. |
| „Mit Datum oder Uhrzeit kann nicht gerechnet werden." | datum() und uhrzeit() stehen mit einem Rechenzeichen oder in einer Rechenfunktion. Datum und Uhrzeit jeweils als eigene Berechnung einfügen (siehe Datum und Uhrzeit). |
| „Formel ist zu lang / zu komplex" | Eine Formel darf höchstens 1000 Zeichen umfassen. In mehrere Berechnungen aufteilen. |
| Komma statt Punkt in der Formel | Wird automatisch umgewandelt; in der Ausgabe ist das Komma korrekt. |
if reagiert nicht wie erwartet | if prüft nur „0 oder nicht 0". Für echte Schwellen mit min / max arbeiten oder ein Ja/Nein-Feld nutzen. |
Gut zu wissen
- Berechnungen werden sicher ausgewertet (eigener Formel-Parser, kein Code-Eval).
- Die Formel wird als
{{= … }}im Text gespeichert – Du kannst sie also auch direkt in den Quelltext schreiben, wenn Du die Feld-IDs kennst. - Innerhalb einer Berechnung sind keine verschachtelten
{{ }}erlaubt – Felder immer mit einfachen Klammern{feldId}. - Normale Platzhalter (
{{feldId}}) und Berechnungen ({{= … }}) lassen sich im selben Text beliebig kombinieren.