1. Home
  2. Dokumente
  3. Benutzer-Handbuch
  4. Become a Pro
  5. Formelreferenz
Drucken

Formelreferenz

Formelspalte bei SeaTable

Eine der stärksten Funktionen von SeaTable ist die Formelspalte. Mit Formeln können Sie die Werte von anderen Spalten automatisch transformieren, kalkulieren, kombinieren oder beliebig zusammenfassen. Darauf können Sie natürlich auch weiteren Formelspalten hinzufügen, die die Resultate aus den existierenden Formalspalten nehmen und rechnen. Die von den anderen Spalten abhängige Formelspalten werden automatisch aktualisiert, sobald die Werte dort geändert werden.

Momentan bietet SeaTable die folgenden Funktionen:

  • Konstanten
  • Operanden
  • Mathematische Funktionen
  • Textfunktionen
  • Datumsfunktionen
  • Logische Funktionen
  • Statistische Funktionen
  • Verknüpfungsfunktionen

Außer den oberen Funktionen gibt es im Formeleditor noch 1 bzw. mehrern Spaltenlisten. Die sind die Spalten in der aktuellen Tabelle und die verlinkten Spalten der anderen Tabelle in der Base. Wenn Sie auf das “+” Symbol daneben klicken, wir den Spaltennamen als Element in den Eingabefeld hinzugefügt, und zwar in dem Format {Spaltename} bzw. {VerlinktenTabelle.Spaltenname}. Dieses Element können Sie direkt in Ihrer Formel nutzen.

In diesem Artikel zeigen wir Ihnen eine komplette Übersicht von allen Formeln in SeaTable mit Beispiele. Wenn Sie nach einer bestimmte Funktion suchen, können Sie die Tastenkombinatioin Ctrl+F nutzen, um schnell einen Eintrag auf dieser Seite zu finden.

 

Die Formelsammlung von SeaTable mit Beispiele

Konstanten

OperatorBeschreibungEingabeResultat
eGibt die Eulersche Zahl e=2.71828... zurück.e+13.71828183
piGibt die Kreiszahl Pi zurück.pi3.14159265
true()Gibt den logischen Wert 'true' zurück.true()true
false()Gibt den logischen Wert 'false' zurück.false()false

Operanden

OperatorBeschreibungEingabeResultat
concatenate(string1, string2, ...)Verknüpft mehrere Zeichenfolgen (string1, string 2, ...) zu einer Zeichenfolge.concatenate({Supplier}, " has the product ", {Product})Microsoft has the product Windows
Alternativ: &{Supplier} & " has the product " & {Product}Microsoft has the product Windows
equal(number1, number2)Prüft, ob zwei Werte (number1, number 2) gleich sind und gibt jeweils den logischen Wert 'true' oder 'false' zurück.equal({Old price}, {New price})
false
Alternativ: ==={Old price}==={New price}false
unequal(number1, number2)Prüft, ob zwei Werte (number1, number2) ungleich sind und gibt jeweils den logischen Wert 'true' oder 'false' zurück. unequal({Old price}, {New price})
true
Alternativ: <>{Old price}<>{New price}true

Mathematische Funktionen

OperatorBeschreibungEingabeResultat
abs(number)Gibt den Absolutbetrag einer Zahl (number) zurück.abs(-2)2
ceiling(number)Ordnet einer reellen Zahl (number) die nächstliegende größere ganze Zahl zu.ceiling(2.14)3
even(number)Ordnet einer reellen Zahl (number) die nächstliegende größere gerade Zahl zu.even(2.14)4
exp(number)Exponentialfunktion für die Eulersche Zahl e. Gibt den Wert von e hoch gegebener Zahl (number) zurück.exp(1)2.71828...
floor(number, significance)Wenn keine Signifikanz gegeben ist, wirkt floor() als eine Abrundungfunktion, genau wie int() (s. unten).floor(2.86)2
Wenn Signifikanz (significance) gegeben ist, wird die Zahl (number) nach unten zu dem nächstliegenden Vielfach der Signifikanz abgerundet.floor(-3.14, 5)-5
int(number)Ordnet einer reellen Zahl (number) die nächstliegende kleinere ganze Zahl zu.int(-3.14)-4
lg(number)Logarithmusfunktion (number) mit 10 als Basis. lg(100)2
ln(number)Logarithmusfunktion (number) mit der Eulerschen Zahl e als Basis.ln(e)1
log(number, base)Logarithmusfunktion (number) mit definierbarer Basis (base).log(81, 3)4
Wenn aber keine Basis gegeben ist, wirkt diese Funktion genau wie lg(), also mit 10 als Basis.log(1000)3
odd(number)Ordnet einer reellen Zahl (number) die nächstliegende größere ungerade Zahl zu.odd(-2.14)-1
round(number, digits)Rundet einer Zahl (number) zu der nächstligenden ganzen Zahl. Wenn keine Dezimalstelle (digits) angegeben ist, wird die Zahl zur 1. Stelle links vom Komma gerundet.round(3.14)3
Wenn eine positive Dezimalstelle (digits) gegeben ist, wird zu der Stelle rechts vom Komma gerundet.round(3.14, 1)3.1
Wenn eine negative Dezimalstelle (digits) gegeben ist,
wird nach links vom Komma gerundet.
round(3.14, -3)0
round(99.1, -2)100
rounddown(number, digits)Rundet eine Zahl (number) in Richtung Null ab. Wenn keine Dezimalstelle (digits) gegeben ist, wird die Zahl zur 1. Stelle links vom Komma gerundet.rounddown(3.12, 1)3.1
rounddown(-3.15)-3
roundup(number, digits)Rundet eine Zahl (numbers) von Null aus auf. Wenn keine Dezimalstelle (digits) gegeben ist, wird die Zahl zur 1. Stelle links vom Komma gerundet.roundup(3.12, 1)3.2
roundup(-3.15)-4
sign(number)Prüft ob eine Zahl (number) größer, gleich oder kleiner als 0 ist. Gibt jeweils den Wert 1, 0 und -1 zurück. In anderen Worte: es gibt das Vorzeichen von einer Zahl zurück, jeweils für '+', 'Null' und '-' mit 1, 0, und -1.sign(-2)-1
sqrt(number)Gibt die Quadratwurzel einer Zahl (number) zurück.sqrt(81)9
sum(num1, num2, ...)Gibt die Summe von den Zahlen (num1, num2, ...) zurück.sum(7,8,9)24

Textfunktionen

OperatorBeschreibungEingabeResultat
exact(string1, string2)Prüft, ob zwei Zeichenfolge (string1, string2) exakt identisch sind. Gibt jeweils die Werte 'true' oder 'false' zurück. Groß-/Kleinschreibung wird beachtet.exact('SeaTable', 'Seatable')false
find(findString, sourceString, startPosition)Gibt die Startposition einer Zeichenfolge (findString) innerhalb einer anderen Zeichenfolge (sourceString) zurück. Groß-/Kleinschreibung wird beachtet.
Ohne Fund wird 0 zurück gegeben. Wenn die Startposition (startPosition) als Dezimal gegeben wurde, wird sie abgerundet.
Wenn die Zelle in der Spalte für das Stichwort (findString) noch leer ist, wird 1 zurück gegeben. Wenn die Zelle in der Spalte für das Zielstring (sourceString) noch leer ist, wird ein leerer Wert ('') zurück gegeben.
find('Sea', 'seaTable', 1)0
Die Suche wird ab der gegebenen 'startPosition' anfangen. Diese 'startPosition' hat aber keinen Einfluß auf das Ergebnis: es gibt dann immer die absolute Startposition zurück. Wenn die 'startPosition' der zu suchende Zeichenfolge (findString) hinter der tatsächlichen Startposition der Zeichenfolge (sourceString) gegeben wurde, wird 0 zurückgegeben, da ab dieser Position nichts gefunden wurde.find('table', 'big table', 4) 5
find('table', 'big table', 6) 0
left(string, count)Gibt die angegebene Anzahl (count) von Zeichen am Anfang einer Zeichenfolge (string) zurück.left('SeaTable', 3)Sea
len(string)Gibt die Anzahl der Zeichen in einer Zeichenfolge (string) zurück.len('SeaTable')8
lower(string)Wandelt eine Zeichenfolge (string) in Kleinbuchstaben um.lower('DeutscH')deutsch
mid(string, startPosition, count)Gibt die angegebene Anzahl (count) von Zeichen ab der angegebenen Startposition (startPosition) aus einer Zeichenfolge (string) zurück.mid('SeaTable is the best', 1, 8)SeaTable
Startposition (startPosition) und Anzahl (count) dürfen nicht leer, negativ oder gleich Null sein. Wenn aber Startposition (startPosition) und Anzahl (count) als Dezimal gegeben wurde, werde sie abgerundet. Zu viel gegebene Anzahl (count) werden ignoriert.mid('SeaTable is the best.', 10.9, 27.3)is the best.
replace(sourceString, startPosition, count, newString)Ersetzt einen Teil (count) einer Zeichenfolge (sourceString) ab einer bestimmten Startposition (startPosition) mit einer anderen Zeichenfolge (newString). Anzahl (count) von Zeichen wird nur für die alten Zeichenfolge (sourceString), aber nicht für die neue Zeichenfolge (newString) berücksichtig. replace('SeaTable is the best.', 1, 8, 'Seafile')Seafile is the best.
Wenn Anzahl (count) als Null gegeben ist, wird die neue Zeichenfolge (newString) einfach ab der Startposition (startPosition) in der alten Zeichenfolge (sourceString) hinzugefügt.replace('SeaTable is the best.', 1, 0, 'Seafile')SeafileSeaTable is the best.
rept(string, number)Wiederholt eine Zeichenfolge (string) so oft (number) wie angegeben.rept('Sea ', 3)Sea Sea Sea
right(string, count)Gibt die angegebene Anzahl (count) von Zeichen am Ende einer Zeichenfolge (string) zurück.right('SeaTable', 5)Table
search(findString, sourceString, startPosition)Gibt die Startposition einer Zeichenfolge (findString) innerhalb einer anderen Zeichenfolge (sourceString) zurück. Groß-/Kleinschreibung wird nicht beachtet.
Ohne Fund wird 0 zurück gegeben. Wenn die Startposition (startPosition) als Dezimal gegeben wurde, wird sie abgerundet.
Wenn die Zelle in der Spalte für das Stichwort (findString) noch leer ist, wird 1 zurück gegeben. Wenn die Zelle in der Spalte für das Zielstring (sourceString) noch leer ist, wird ein leerer Wert ('') zurück gegeben.
search('Sea', 'seaTable', 1)1
Die Suche wird ab der gegebenen 'startPosition' anfangen. Diese 'startPosition' hat aber keinen Einfluß auf das Ergebnis: es gibt dann immer die absolute Startposition zurück. Wenn die 'startPosition' der zu suchende Zeichenfolge (findString) hinter der tatsächlichen Startposition der Zeichenfolge (sourceString) gegeben wurde, wird 0 zurückgegeben, da ab dieser Position nichts gefunden wurde.search('table', 'big table', 4) 5
search('table', 'big table', 6) 0
substitute(sourceString, oldString, newString, index)Ersetzt bestehenden Text (oldString) durch einen neuen Text (newString) in einer Zeichenfolge (sourceString). Wenn es in der Zeichenfolge (sourceString) mehrmals den Text (oldString) gibt, wird nur der 'index'-te Text ersetzt. Groß-/Kleinschreibung wird beachtet.substitute('SeaTableTable', 'Table', 'file', 1)SeafileTable
T(value)Prüft, ob ein Wert (value) Text ist. Wenn ja, wird der Text zurück gegeben. Wenn nein, dann ist der Rückgabewert leer.T(123)(leer)
T('123')123
text(number, format)Wandelt eine Zahl (number) in Text um und formatiert ihn im angegebenen Format (format). Das Format kann Prozent ('percent') und Zahl sowie Dollar ('dollar'), Euro ('euro') und Yuan ('yuan') sein.text(150, 'euro')€150
Wenn eine Zahl direkt in Prozent umgewandelt ist, bleibt ihr absoluter Wert beibehalten. Das heißt, 50 wird in 5000% umgewandelt. Wenn Sie aber 50% wünschen, müssen Sie die Zahl (number) noch vor der Umwandlung durch 100 teilen.text(50, 'percent')5000%
text(50/100, 'percent')50%
trim(string)Entfernt Leerzeichen am Anfang und Ende einer Zeichenfolge (string).trim(' SeaTable ')SeaTable
upper(string)Wandelt eine Zeichenfolge (string) in Großbuchstaben um.upper('DeutscH')DEUTSCH
value(string)Wandelt einen Text (string), der eine Zahl darstellt, in eine Zahl um.value('123')123

Datumsfunktionen

OperatorBeschreibungEingabeResultat
dateAdd(date, count, unit)Addiert die angegebene Anzahl (count) an Jahren ('years'), Monaten ('months'), Wochen ('weeks'), Tagen ('days'), Stunden ('hours'), Minuten ('minutes') oder Sekunden ('seconds') einem Datum/einer Uhrzeit (date) hinzu.dateAdd('2020-02-03', 2, 'days')2020-02-05
Tipp: wenn Sie eine komplexe Zeitdauer (count) wie z. B. 1 Tag 12 Stunden addiren wollen, können Sie diese in z.B. 24+12=36 Stunden ('hours') umrechnen und als eine einheitliche Dauer (count) in die Formel eingeben. Dabei umrechnen die Dauer zu der kleinste Einheit: in diesem Fall, Stunden. dateAdd('2020-09-04 13:05:18', 36, 'hours')
ODER
dateAdd({form submission}, 36, 'hours')
2020-09-06 01:05:18
day(date)Gibt den Tag eines Datums (date) als eine Zahl zurück. Die zurückgegebene Zahl liegt zwischen 1 und 31.day('2020-01-03')3
days(startDate, endDate)Gibt die Anzahl an Tagen zwischen zwei Datumswerten (startDate und endDate) zurück.days('2020-01-01', '2020-02-03')33
hour(date)Gibt die Stunde einer Zeitangabe (date) als eine Zahl zurück. Die zurückgegebene Zahl liegt zwischen 0 und 23.hour('2020-02-14 13:14:52')13
Wenn keine Stunde in der Zeitangabe (date) enthalten ist, wird 0 zurückgegeben.hour('2020-02-14')0
minute(date)Gibt die Minuten einer Zeitangabe (date) als Zahl zurück. Die zurückgegebene Zahl liegt zwischen 0 und 59.minute('2020-02-14 13:14:52')14
Wenn keine Minuten in der Zeitangabe (date) enthalten ist, wird 0 zurückgegeben.minute('2020-02-14')0
month(date)Gibt den Monat eines Datums (date) als Zahl zurück. Die zurückgegebene Zahl liegt zwischen 1 (Januar) und 12 (Dezember).month('2020-02-14 13:14:52')2
networkdays(startDate, endDate, holiday1, holiday2, ...)Gibt die Anzahl ganzer Arbeitstage zwischen zwei Datumswerten (startDate und endDate) zurück. Dabei kann man auch Feiertagen außer Samstag und Sonntag definieren (holiday1, holiday2, usw.), diese werden auch abgezogen. Wenn keine Feiertagen mitberechnet werden soll, kann man diese Parameter einfach weg lassen.networkdays('2020-01-01', '2020-01-07','2020-01-01')4
Beachten Sie darauf, dass der angegebene letzte Tag (endDate) in der Formel auch mitgerechnet wird. Das heißt, wie zum Beispiel in dieser Formel, es wird drei Werktagen gezählt: der 7., 8. und 9. vom September, 2020.networkdays('2020-09-07', '2020-09-09')3
now()Gibt das aktuelle Datum und Uhrzeit zurück. Diese Spalte wird nur dann automatisch aktualisiert, wenn die Base neu geladen wurde. now()2020-09-07 12:59
second(date)Gibt die Sekunden einer Zeitangabe (date) als Zahl zurück. Die zurückgegebene Zahl liegt zwischen 0 und 59.second('2020-02-14 13:14:52')52
today()Gibt das aktuelle Datum zurück. Diese Spalte wird nur dann automatisch aktualisiert, wenn die Base neu geladen wurde.today()2020-09-07
Diese Funktion ist praktisch für die Berechnung von Zeitdauer zwischen einem bestimmten Datum & Uhrzeit und jetzt. Auf jedem Neuladen oder Neuberechnung der Base wird die Berechnung aktualisiert.networkdays('2020-09-01', today())4
weekday(date, weekStart)Gibt den Wochentag eines Datums (date) als Zahl zurück. Die zurückgegebene Zahl zwischen 1 und 7. Dabei kann man den ersten Tag der Woche (weekStart) definieren: Montag ('Monday') oder Sonntag ('Sunday' oder weg lassen, da der Start als Sonntag standardmäßig ist). Eine dritte Option ist nicht möglich. Groß-/Kleinschreibung werden nicht beachtet. weekday('2020-01-01', 'Monday')3
Wenn kein 'weekStart' gegeben ist oder wenn ein anderer 'weekStart' als 'Monday' oder 'Sunday' gegeben wurde, wird es immer als 'Sunday' angenommen. Deshalb wenn es 'Monday' sein sollte, geben Sie 'Monday' ein; wenn es 'Sunday' sein sollte, können Sie dieser Parameter weg lassen.weekday('2020-01-01', 'Thursday')
ODER
weekday('2020-01-01')
4
weeknum(date, weekStart)Gibt die Wochennummer (KW) eines Datums (date) als Zahl zurück. Die zurückgegebene Zahl liegt zwischen 1 und 53. Dabei kann man den ersten Tag der Woche (weekStart) definieren: Montag ('Monday') oder Sonntag ('Sunday' oder weg lassen, da der Start als Sonntag standardmäßig ist). Eine dritte Option ist nicht möglich. Groß-/Kleinschreibung werden nicht beachtet. weeknum('2020-01-12', 'Monday')2
Wenn kein 'weekStart' gegeben ist oder wenn ein anderer 'weekStart' als 'Monday' oder 'Sunday' gegeben wurde, wird es immer als 'Sunday' angenommen. Deshalb wenn es 'Monday' sein sollte, geben Sie 'Monday' ein; wenn es 'Sunday' sein sollte, können Sie dieser Parameter weg lassen.weeknum('2020-01-12', 'thursday')3
year(date)Gibt das Jahr eines Datums (date) als Zahl zurück. Die zurückgegebene Zahl liegt zwischen 1900 und 9999.year('2020-01-01')2020

Logische Funktionen

OperatorBeschreibungEingabeResultat
and(logical1, logical2, ...)Prüft, ob alle Argumente (logical1, logical2, ...) wahr (valid, nicht leer und ungleich Null) sind. Wenn ja, wird 'true' zurückgegeben, ansonsten 'false'.and(1, '', 2)false
if(logical, value1, value2)Prüft, ob ein Argument (logical) wahr ist und wenn ja, gibt den ersten Wert (value1) zurück und wenn nein, gibt den zweiten Wert (value2) zurück. if(1>2, 3, 4)4
Für die Bedingung (logical) ist nur ein Vergleich mit < oder > zugelassen. Wenn Sie nur Bedingung (logical) und den ersten Wert (value1) eingeben: es wird den ersten Wert (value1) zurückgeben, wenn die Bedingung (logical) wahr ist; und es wird einen leeren Wert ('') zurückgegeben wenn die Bedingung (logical) falsch ist.if({Budget}>{Preis}, 'Ja')Ja
not(boolean)Umkehrt den logischen Wert (boolean). In anderen Worte: wandelt 'true' in 'false' und 'false' in 'true' um.not(and(1, '', 2))true
or(logical1, logical2, ...)Prüft, ob mindestens 1 der Argumente (value1, value2, ...) wahr (valid, nicht leer und ungleich Null) ist, und gibt in diesem Fall 'true' zurück. Wenn alle Argumente falsch sind, gibt dann 'false' zurück.or(1, '', 2)true
switch(logical, matcher1, value1, matcher2, value2, ..., default)Wertet einen Ausdruck (logical) anhand einer Werteliste (matcher) aus und gibt das Ergebnis (value) zurück, das dem ersten übereinstimmenden Wert entspricht. Wenn es keine Übereinstimmung gibt, dann wird ein optionaler Standardwert (default) zurückgegeben. Mindestens müssen 3 Parameter (logical, matcher, value) angegeben werden.switch({Noten}, 1, 'Sehr gut', 2, 'gut', 3, 'befriedigend', 4, 'bestanden', 'nicht bestanden')Sehr gut
Wenn es in der Werteliste (matcher) mehrere identischen Werte gibt, wird nur der ersten Treffer berücksichtigt.switch(int(68/10), 6, 'OK', 6, 'KO')OK
xor(logical1, logical2, ...)Gibt die Kontravalenz aller Argumente zurück. In anderen Worte: Prüft, ob die Anzahl von wahren Argumente (logical) ungerade ist und gibt den Wert 'true' zurück. xor(1, 0, 2<1, 1)false

Statistische Funktionen

OperatorBeschreibungEingabeResultat
average(number1, number2, ...)Gibt den Durchschnitt der Zahlen (number1, number2, ...) zurück. average(1, 2, 3, 4, 5)3
count(number1, number2, ...)Gibt die Anzahl von Zahlen (number1, number2, ...) zurück. Es werde nur validen und unleeren Zahlen berücksichtigt. In diesem Beispiel, '' ist ein leerer Wert, und '3' ist nicht eine Zahl, sondern ein Text.count(1, '', 2, '3')2
counta(textORnumber1, textORnumber2, ...)Zählt die Anzahl von nicht leeren Zellen (textORnumber1, textORnumber2, ...). Diese Zellen können Text oder Nummer sein. In diesem Beispiel, 1 und 2 sind Zahlen, '3' ist ein Text, und '' ist ein leerer Wert.counta(1, '', 2, '3')3
countall(textORnumber1, textORnumber2, ...)Zählt die Anzahl von Elementen (textORnumber1, textORnumber2, ...) inklusiv Zahlen (1, 2), Text ('3') und leeren Zellen (''). countall(1, '', 2, '3')4
countblank(textORnumber1, textORnumber2, ...)Zählt die Anzahl leerer Zellen.countall(1, '', 2, '3')1
max(number1, number2, ...)Gibt den größten Wert aus den angegebenen Zahlen (number1, number2, ...) zurück.max(-1, 3, 4, 2, -1)4
min(number1, number2, ...)Gibt den kleinsten Wert aus den angegebenen Zahlen (number1, number2, ...) zurück.min(-1, 3, 4, 2, -1)-1

Verknüpfungsfunktionen

OperatorBeschreibung
rollup({link}, {columnName}, summary)Gibt einen berechneten Wert von verknüpften Zeilen ({link}) in anderen Tabellen ({columnName}) zurück. Berechnungen (summary), die durchgeführt werden können, sind 'average', 'concatenate', 'count', 'max', 'min' und 'sum'.
{link}.{columnName}Gibt den Wert aus der Spalte '{columnName}' einer verknüpften Zeile in einer anderen Tabelle zurück. Dabei gibt man auch den Namen der Zelle in der aktuellen Tabelle ({link}), die eine Verlinkung zu einer anderen Tabelle hat. Wenn mehrere Zeilen verknüpft sind, wird der Wert der ersten Zeile zurückgegeben.
War dieser Artikel hilfreich Ja, klar! Nein Dieser Artikel wurde bisher noch nicht bewertet. Sei der Erste.