Jump to content

Recommended Posts

Posted (edited)

Liebe Community

wir haben im smapLabs beim Entwickeln des supportBots oder dem smapifier festgestellt, dass die KI oft fehlende Formeln verwendet, die intuitiv eigentlich da sein könnten.

Ich frage mich, ob ihr auch oft auf "Lücken" stoßt, deren Behebung oder Ergänzung euch das Leben erleichtern würden.

Hier die aktuelle Sammlung der Verbesserungsvorschläge:

Formel Beschreibung Example Prio
SEARCHNUMBER(text) Parst einen Text zu einer Zahl, ignoriert ungültige Zeichen. SEARCHNUMBER("5a") → 5, SEARCHNUMBER("a") → NULL Medium
TONUMBER(text) Wandelt einen Text in eine Zahl, strikt nur wenn der Text genau eine Zahl darstellt. NUMBER("10") → 10, NUMBER("5a") → NULL, NUMBER("a") → NULL High
TEXT(number) Wandelt eine Zahl in einen Text. Text(23.343) → "23.343" High
ISNUMBER(text) Prüft, ob ein Text ein Zahlenwert ist. ISNUMBER("123") → true Medium
ABS(a) Gibt den absoluten Wert einer Zahl zurück. ABS(-5) → 5 High
FLOOR(number, significance) Rundet eine Zahl auf das nächste Vielfache eines Werts ab. FLOOR(5.67, 0.1) → 5.6 Medium
CEIL(number, significance) Rundet eine Zahl auf das nächste Vielfache eines Werts auf. CEIL(5.67, 0.1) → 5.7 Medium
MOD(a, b) Gibt den Restwert der Division von a durch b zurück. MOD(10, 3) → 1 High
POWER(base, exponent) Berechnet eine Potenz (Basis hoch Exponent). POWER(2, 3) → 8 Medium
ROOT(base, degree) Berechnet die Wurzel einer Zahl. ROOT(8, 3) → 2 Medium
LN(number) Berechnet den natürlichen Logarithmus einer Zahl (zur Basis e). LN(10) → 2.302585 Low
LOG(number, base) Berechnet den Logarithmus einer Zahl zur angegebenen Basis. LOG(100, 10) → 2 Low
LOG10(number) Berechnet den Logarithmus einer Zahl zur Basis 10. LOG10(1000) → 3 Low
EXP(number) Gibt den Wert von e hoch der angegebenen Zahl zurück. EXP(1) → 2.71828 Low
SIN(angle) Berechnet den Sinus eines Winkels in Radiant. SIN(PI()/2) → 1 Low
COS(angle) Berechnet den Cosinus eines Winkels in Radiant. COS(PI()) → -1 Low
TAN(angle) Berechnet den Tangens eines Winkels in Radiant. TAN(PI()/4) → 1 Low
MEDIAN(a,b,..) Berechnet den Median einer Liste von Zahlen. MEDIAN(1, 3, 5) → 3 Medium
COUNT(Repeater1) Zählt die Anzahl der Einträge in einer Wiederholungsgruppe. COUNT(Repeater1) → 3, wenn Repeater1 drei Einträge enthält. High
COUNTIF(repeater, condition) Zählt die Anzahl der Einträge in einer Wiederholungsgruppe, die einer bestimmten Bedingung entsprechen. COUNTIF(Repeater1, EQUALS({Repeater1.Selection}, "Non")) → 2, wenn in Repeater1 "Non" zwei Mal gewählt wurde. High
INDEX Gibt den Index (Iteration) eines Eintrags in einer Wiederholungsgruppe zurück. INDEX → 1 für den ersten Eintrag in einer Wiederholungsgruppe. High
CONTAINS(multiselect) Überprüft, ob ein Wert in einem Multiselect enthalten ist. CONTAINS({multi1}, "Option1") → true, wenn "Option1" ausgewählt ist. High
EMPTY(DSAB[Spalte]) Prüft, ob eine Spalte in einer Datenquelle leer ist. EMPTY(DSAB[Name]) → true, wenn die Spalte "Name" leer ist. Medium
RPAD('5', 3, '0') Füllt eine Zeichenkette rechts mit einem Zeichen auf. RPAD('5', 3, '0') → "500" Medium
LPAD('5', 3, '0') Füllt eine Zeichenkette links mit einem Zeichen auf. LPAD('5', 3, '0') → "005" Medium
TRIM(text) Entfernt führende und nachfolgende Leerzeichen aus einem Text. `TRIM(" Hallo Welt ") → "Hallo Welt" Medium
PROPER(text) Wandelt den ersten Buchstaben jedes Wortes in einem Text in Großbuchstaben um. `PROPER("hello world") → "Hello World" Medium
REVERSE(text) Kehrt die Zeichenfolge eines Textes um. `REVERSE("hello") → "olleh" Medium
REGEX(pattern, string) Extrahiert Teile eines Strings basierend auf einem regulären Ausdruck. `REGEX("\d+", "abc123") → "123" Medium
RANDOM(?min, ?max) Gibt eine zufällige Zahl zwischen den optional angegebenen Grenzen zurück. Ohne Grenzen wird eine Zufallszahl zwischen 0 und 1 generiert. RANDOM(1, 10) → 4, RANDOM() → 0.6843 Medium
DATETIME(year, ?month, ?day, ?hour, ?minute, ?second) Erstellt ein DateTime-Objekt aus den angegebenen Komponenten. DATETIME(2024, 9, 25, 12, 30, 0) → 2024-09-25 12:30:00 Medium
ADD_DATE(datetime, period1, ?period2, ...) Addiert eine oder mehrere Perioden zu einem Datum/Zeitpunkt. ADD_DATE({start_time}, P8H, {pause_duration}) → Berechnet das Ende der Arbeitszeit (Startzeit + 8 Stunden + Pausendauer). Medium
WEEKDAY(date) Gibt den Wochentag eines Datums zurück. `WEEKDAY("2024-09-25") → "Wednesday" High
MONTH(date) Gibt den Monat eines Datums zurück. `MONTH("2024-09-25") → 9 High
YEAR(date) Gibt das Jahr eines Datums zurück. `YEAR("2024-09-25") → 2024 High
TODATE(text) Wandelt einen Text in ein Datum um. `TODATE("2024-09-25") → 2024-09-25 Medium
TOTIME(text) Wandelt einen Text in eine Zeit um. `TOTIME("12:30") → 12:30 Medium
TODATETIME(text) Wandelt einen Text in ein Datum und eine Zeit um. `TODATETIME("2024-09-25T12:30:00") → 2024-09-25 12:30:00 Medium
TOPERIOD(text) Wandelt einen Text in einen Zeitraum (Period) um. `TOPERIOD("P1D") → 1 Tag Medium
EPOCH(date) Gibt den Unix-Timestamp eines Datums zurück. `EPOCH("2024-09-25T12:00:00Z") → 1727203200 Medium
NETWORKDAYS(start_date, end_date, ?holidays) Berechnet die Anzahl der Arbeitstage (Werktage) zwischen zwei Datumswerten. Optional können Feiertage angegeben werden. `NETWORKDAYS("2024-09-25", "2024-09-30") → 4 (zählt nur die Werktage) Medium
WEEKNUM(date) Gibt die Kalenderwoche eines bestimmten Datums zurück. `WEEKNUM("2024-09-25") → 39 High
HOUR(datetime) Extrahiert die Stunde aus einem DateTime-Objekt. `HOUR("2024-09-25T14:30:00") → 14 High
MINUTE(datetime) Extrahiert die Minute aus einem DateTime-Objekt. `MINUTE("2024-09-25T14:30:00") → 30 High
SECOND(datetime) Extrahiert die Sekunde aus einem DateTime-Objekt. `SECOND("2024-09-25T14:30:00") → 0 High
TIME(hour, minute, second) Erstellt einen Zeitwert aus Stunde, Minute und Sekunde. TIME(14, 30, 0) → 14:30:00 Medium
NOW() Gibt das aktuelle Datum und die Uhrzeit zurück. NOW() → Aktuelles Datum und Uhrzeit High
TODAY() Gibt das aktuelle Datum zurück. TODAY() → Heutiges Datum High


Ich wäre sehr interessiert, wenn ihr eure Findings und Wünsche hier entweder mit preis gebt oder wenn euch was auffällt, immer an diesen Thread hier denkt und eure Erkenntnisse teilen würdet.

HK

Edited by HK alias Holger
  • Like 5
  • Thanks 5
Posted (edited)

Was mir noch eingefallen ist:

NETWORKDAYS() -> Anzahl der Arbeitstage zwischen zwei Datumswerten. Mit Parametern Samstag ja/nein und Urlaubstage z.B. 3.10 , 1.1, 25.12. etc...

Zur Priorisierung:

ABI 2006 - 09/2024 ..... Es gab in den 18 Jahren dazwischen nur ganz ganz wenige Momente wo ich dachte "Jetzt hilft nur noch die e-Funktion!"

Edited by Manuel Rühl
typo
  • Like 5
  • 1 month later...
Posted

Formelzugriff auf die Metadaten einer Nutzergruppe

Auf einen Nutzer (z.B. user:email) kann man ja schon referenzieren aber leider noch nicht auf eine Gruppe.

Bsp.:

IF(EQUALS({user:email},"[email protected]"), "abc", "def")

Dann können die Mailadressen im Hintergrund wechseln und es können mit einem Mal alle Mailadressen der Gruppe angesprochen werden.

Vorschlag: {group:name}

  • Like 2
  • Agree 3
Posted (edited)
vor 35 Minuten schrieb HK alias Holger:

wie willst du das verwenden? Also wo könnte man das array was da zurückkommt weiterverwenden?

Das war in dem Test für Markus Ketelhut, mit der Annahme alle Codes in ein Eingabefeld mit einem Suffix "#" zu scannen und diese anschließend, anhand des Trennzeichens, extrahieren zu lassen. Daher kam Nova auf die Idee.

Wollte es nur vollständigkeitshalber aufführen 😅

Edited by Bülent Erbas
  • Like 2

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...