Tipp 024 Alle Adminrechte nötig

onOffice Tipps und Tricks – 024

Die von onOffice mitgelieferten Anrede-Makros erzeugen die klassische „Sehr geehrter Herr Mustermann,". Mir persönlich ist das zu förmlich – ich wollte eine Feldformel, die stattdessen ein sauberes „Guten Tag" ausgibt und dabei auch die Sonderfälle vernünftig abfängt: fehlender Vorname, Firma, Familie, Eheleute und zwei Personen im selben Datensatz.

Mein erster Entwurf sah so aus:

="Guten Tag "&IF([Anrede]<>"";[Anrede]&" ";"Herr/Frau ")&IF([Titel]<>"";[Titel]&" ";"")&IF([Vorname]<>"";[Vorname]&" ";"")&[Name]&","

Der deckt den einfachsten Fall ab, aber ein paar Dinge fehlten mir noch:

Zwei Hilfsfelder für die Namensbausteine

Um die große Formel überschaubar zu halten, baue ich mir zunächst zwei Hilfsfelder (Typ Text), die jeweils nur den Namensteil einer Person zusammensetzen.

Hilfsfeld „Anrede-Baustein 1" (aus Anrede, Titel, Vorname, Name):

IF([Vorname]<>"";IF([Titel]<>"";[Titel]&" ";"")&[Vorname]&" "&[Name];IF([Anrede]<>"";[Anrede];"Herr/Frau")&" "&IF([Titel]<>"";[Titel]&" ";"")&[Name])

Hilfsfeld „Anrede-Baustein 2" (dieselbe Logik, nur mit den Feldern von Person 2):

IF([Vorname2]<>"";IF([Titel2]<>"";[Titel2]&" ";"")&[Vorname2]&" "&[Name2];IF([Anrede2]<>"";[Anrede2];"Herr/Frau")&" "&IF([Titel2]<>"";[Titel2]&" ";"")&[Name2])

Ist ein Vorname vorhanden, ergibt das z. B. „Max Mustermann". Fehlt er, springt die Formel auf „Herr/Frau Mustermann" (bzw. auf die tatsächliche Anrede, falls gepflegt).

Die eigentliche Briefanrede

Im dritten Feld (ebenfalls Typ Text) verbaue ich beide Hilfsfelder und behandle Firma, Familie, Eheleute sowie den Zwei-Personen-Fall mit „Damen zuerst":

IF(
  [Name2]<>"";
  "Guten Tag "&IF(AND([Anrede2]="Frau";[Anrede]<>"Frau");[ind_ANREDEBAUSTEIN2]&" und "&[ind_ANREDEBAUSTEIN1];[ind_ANREDEBAUSTEIN1]&" und "&[ind_ANREDEBAUSTEIN2])&",";
  IF(
    [Anrede]="Familie";
    "Guten Tag Familie "&[Name]&",";
    IF(
      [Anrede]="Eheleute";
      "Guten Tag Eheleute "&[Name]&",";
      IF(
        [Anrede]="Firma";
        IF([Vorname]<>"";"Guten Tag "&[ind_ANREDEBAUSTEIN1]&",";"Guten Tag verehrte Damen und Herren,");
        "Guten Tag "&[ind_ANREDEBAUSTEIN1]&","
      )
    )
  )
)

(ind_ANREDEBAUSTEIN1 / ind_ANREDEBAUSTEIN2 sind Platzhalter für die Feld-IDs der beiden Hilfsfelder – bei dir tragen sie andere Bezeichnungen.)

Damit ergibt sich zum Beispiel:

Wichtig

Die Formel ist hier nur zur besseren Lesbarkeit auf mehrere Zeilen aufgeteilt. Trägst du sie ins Formelfeld ein, kannst du die Zeilenumbrüche außerhalb der Anführungszeichen eigentlich stehen lassen – solltest du dennoch Probleme beim Speichern bekommen, einfach alles in eine Zeile packen. Angelegt werden alle drei Felder als individuelle Textfelder unter Extras -> Einstellungen -> Administration -> Eingabefelder (Modul Adressen).

Aus der Praxis