Logik

Logische Funktionen ermöglichen Fallunterscheidungen. Es gibt drei grundlegende Bausteine:

  • wenn / dann / sonst,
  • Vergleiche,
  • logische Verknüpfungen.

Die Fallunterscheidung

( wenn a dann b sonst c ) überprüft zunächst, ab die Bedingung a zutrifft. Ist dies der Fall, dann berechnet Sie b, sonst c.

Als Bedingung ist ein Ausdruck erforderlich, der Ja / Nein zurückliefert. Dies kann sein:

  • ein Ja / Nein-Feld,
  • ein Vergleich,
  • eine logische Verknüpfung.

Beispiele:

  • (wenn Ja dann 1 sonst 2) liefert immer 1 zurück
  • (wenn Nein dann 1 sonst 2) liefert immer 2 zurück
  • (wenn Alter >= 18 dann “volljährig” sonst “minderjährig”)

Vergleiche

Vergleiche liefern immer einen Ja / Nein-Wert zurück.

(a = b) a gleich b

(a ≠ b) a ungleich b

(a < b) a kleiner als b

(a ≤ b) a kleiner als oder gleich b

(a ≥ b) a größer als oder gleich b

(a > b) a größer als b

(a ungefähr wie b) textueller Vergleich zwischen a und b, bei dem Groß- und Kleinschreibung sowie einige Sonderzeichen ignoriert werden.

Logische Verknüpfungen

Mit logischen Verknüpfungen können komplexere Bedingungen konstruiert werden. Sie benötigen als Argument Ja / Nein-Werte und liefern ihrerseits wieder einen Ja / Nein-Wert zurück.

Ja der konstante Wert Ja

Nein der konstante Wert Nein

(a und b) ergibt Ja, wenn sowohl a, als auch b ebenfalls Ja ergeben – sonst Nein.

(a oder b) ergibt Ja, wenn a oder b oder beide Ja ergeben – sonst Nein.

(nicht a) ergibt Ja, wenn b Nein ergibt – sonst Nein.

 

55 Gedanken zu „Logik

  1. HI
    habe folgendes Problem:
    Ich habe eine Mehrfachauswahl mit 6 Auswahlmöglichkeiten. zu jeder Auswahl möchte ich eine Aktion haben, also bei Auswahl 1> Aktion1, Bei Auswahl3>Aktion3,
    Wenn ich nur eine Auswahl wähle ist es kein Problem (wenn/dann/sonst -Verknüpfung), jedoch wenn ich mehrere wähle geht es nicht mehr.
    Jemand eine Idee?
    Danke
    LG
    Tom

    1. So lässt sich abfragen, ob ein bestimmtes Feld (z.B. “Movies) angewählt ist:
      –––
      if index(text('Multiple Choice'), "Movies") >= 0 then
      ...
      end
      –––

      Birger – Ninox Support

  2. Ich habe ein Problem mit den Vergleichen und komme leider nicht weiter.

    Feld1 = Uhrzeit von
    Felde2 = Uhrzeit bis
    Felde 3= Dienstzeit von 05:00
    Feld 4 = Dienstzeit von 22:00
    Felde 4 = ja/nein Arbeitszeit berechnen

    Felde 4 soll Feld 1 prüfen und den Wert in Feld 3 eintragen wenn er den Kriterien entspricht das geht leider nicht.

    Felde 3:= if Felde 4 = true then
    if Feld1 >= 5 and Feld1 <= 22 then Feld1 else void end
    else void end

    1. Hallo DLZ.BB
      du versuchst die Uhrzeit mit Dezimalzahlen zu vergleichen.
      Die Zeit wird in Millisekunden dargestellt.(Zeitangabe*60*60*1000)
      in deinem Fall wäre die Formel

      if Feld1>=18000000 and Feld1<=79200000

      Grüße
      Leo

  3. Hallo !

    Ist es irgendwie möglich, bei der “Auflisten” Funktion doppelte Werte auszublenden ?
    Z.B.: Listet mir die Datenbank bei meinen gefahrenen Touren die Wochentage dazu auf. Wenn ich aber eine Tour in einem Monat 3x am Montag gefahren bin, dann wird mir hier jeder einzelne angezeigt ?

    Vielen Dank im voraus !!!

  4. Hallo,

    gibt es einen Befehl mit dem sich einer UND/ODER Entscheidung umsetzen lässt?

    Beispiel:

    Nur anzeigen wenn Auswahl=1 und oder Auswahl=3

    Sodass das Fehld angezeigt wird wenn Auswahl 1 oder 3 markiert ist oder beide.

  5. Hallo!
    Es geht um die Verknüpfung von vier Feldern:
    - In einem Auswahlfeld gibt es die Optionen “BA-Arbeit” und “MA-Arbeit”
    - ein Datumsfeld “”Anmeldedatum”
    - ein Ja/Nein-Feld “empirische Arbeit”
    - ein Funktionsfeld “Abgabedatum”

    Abhängig ob die Option “BA-Arbeit” oder die “MA-Arbeit” und Ja/Nein “empirische Arbeit” ausgewählt wurde sollen jeweils unterschiedliche Abgabedaten berechnet werden. Es gibt also vier verschiedene Möglichkeiten. Lässt sich so etwas berechnen?

    Was ich hinbekommen habe ist es das Abgabedatum für die Option Ja/Nein “empirische Arbeit” unterschiedlich zu berechnen.

    Herzlichen Dank im Voraus!

    1. Versuchen Sie mit dieser Formel im Funktionsfeld ‘Abgabedatum’:
      –––
      if text(Auswahlfeld) = "BA-Arbeit" and 'empirische Arbeit' then Anmeldedatum +60
      else
      if text(Auswahlfeld) = "BA-Arbeit" and 'empirische Arbeit' = false then Anmeldedatum +30
      else
      if text(Auswahlfeld) = "MA-Arbeit" and 'empirische Arbeit' then Anmeldedatum +15
      else
      if text(Auswahlfeld) = "MA-Arbeit" and 'empirische Arbeit' = false then Anmeldedatum +45
      else
      Anmeldedatum + 90
      –––

      Birger – Ninox Support

  6. Hallo,

    ich benötige eine Formal, damit sich das Feld, in welchem das Alter angezeigt wird, rot färbt sobald die Zahl dort höher oder gleich 62 ist.

    Sorry bin totaler Anfänger…

    Viele Grüße Steffi

      1. Hallo Alex,

        wie kann ich die Werte eines Formelfeldes anzeigen lassen und die Farbe des Feldes ändern. Mit dem Befehl color (“green”) als Funktion wird zwar das Feld grün aber der Inhalt wird nicht mehr angezeigt.

        Vielen Dank!

  7. Hallo,

    ich möchte den Wert eines Auswahlfelds in eine Formel integrieren. Die Bezeichnung des Feldes ist “Typ”, die Inhalte sind “Typ1″ und “Typ2″. Je nach Auswahl soll die Funktion einen Wert auswerfen. Leider klappt das nicht. Meine derzeitige Formel lautet:

    if Typ = “Typ1″ then
    14900
    else
    if Typ = “Typ2″ then
    13500
    else
    0

    Ich nehme an, dass ich den falschen Wert für die Rückmeldung aus dem Auswahlfeld gewählt habe ….. kann mir da jemand einen Tip geben?

    Viele Grüße, Alex

    1. Hallo Alex,
      den Inhalt des Auswahlfelds sprechen Sie mit

      text(Typ)

      an. Die Formel solle also lauten:

      if text(Typ) = "Typ1" then
      14900
      else
      if text(Typ) = "Typ2" then
      13500
      else
      0

      Gruß
      Birger – Ninox Support

      1. Ich habe es in ähnlicher Form versucht. Ich möchte die Kommunikation automatisieren.

        Es soll in der Kommunikation die Grußformel entsprechend des Anredefeldes in den Kontakten erzeugt werden.

        if text(kontakte.Anrede) = “Herr″ then
        “Sehr geehrter Herr”

        0

        leider bekomme ich einen Error, dass in Zeile 1, Spalte 26 ein unerwartetes Symbol sei.

        Wenn ich nachzähle, ist das das Gleichheitszeichen. Das Feld Anrede ist ein Auswahlfeld.

        Sicher liegt es daran, aber wie spricht man ein Auswahlfeld an?

        Danke

        1. in dieser Form:

          if kontakte.Anrede = “Herr” then
          “Sehr geehrter Herr”
          else
          “Sehr geehrte Frau”

          kommt kein Fehler mehr, allerdings bleibt das Berechnungsfeld immer auf Sehr geehrte Frau

Hinterlasse eine Antwort