Richtige Vergleiche für Daten in Zusammenführungsfeldern (Microsoft Word)
Volker hat ein Problem beim Vergleichen von Daten in einem Zusammenführungsfeld. Seine Datenbank enthält ein Feld für das Geburtsdatum, das (offensichtlich) ein Geburtsdatum für jede Person in der Datenbank enthält. Während er jeden Datensatz zusammenführt, möchte er das Feld Geburtsdatum mit einem Referenzdatum vergleichen und dann basierend auf dem Ergebnis Maßnahmen ergreifen. Die Logik, die er zu verwenden versucht, sieht folgendermaßen aus:
{IF {MERGEFIELD Birthdate} > "02/26/1981" "Under 30" "Over 30"}
Das Problem ist, dass der Vergleich nicht richtig funktioniert. Es werden keine konsistenten Ergebnisse zurückgegeben. Eine mögliche Lösung besteht darin, einen Formatschalter im Zusammenführungsfeld auf folgende Weise zu verwenden:
{IF {MERGEFIELD Birthdate\@"MM/DD/YYYY"} > "02/26/1981" "Under 30" "Over 30"}
Dadurch werden die eingehenden Informationen in ein vergleichbares Format gebracht. Die Ergebnisse, die Sie mit diesem Ansatz erhalten, hängen jedoch möglicherweise von den Merkmalen der Datenquelle ab, unabhängig von Word. Sie können auch versuchen, die Daten in ein Format für das erste Jahr zu verschieben, z. B. das folgende:
{IF {MERGEFIELD Birthdate\@"YYYY/MM/DD"} > "2011/02/26" "Under 30" "Over 30"}
Wenn der Vergleich immer noch inkonsistente Ergebnisse liefert, besteht die einzige Lösung möglicherweise darin, eine mathematische Konvertierung des Datums (tatsächlich sowohl des Geburtsdatums als auch des Referenzdatums) durchzuführen, damit Sie einen tatsächlichen numerischen Vergleich erhalten. Sie können dies tun, indem Sie das Datum in einen julianischen Wert konvertieren, für den ein sehr komplexes Zusammenführungsfeld erforderlich ist, wie das hier gezeigte:
{IF {QUOTE {SET a{=INT((14-{MERGEFIELD BIRTHDATE \@ M})/12)}} {SET b{={MERGEFIELD BIRTHDATE \@ yyyy}+4800-a}} {SET c{={MERGEFIELD BIRTHDATE \@ M}+12a-3}} {SET d{MERGEFIELD BIRTHDATE \@ d}} {SET jd{=d+INT((153c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-32045}} {jd \#,0}} > 2,443,056 "over 30" "under30"}
Ein solcher Ansatz mag einschüchternd aussehen, ist jedoch nur die Brute-Force-Methode, die in einigen Fällen erforderlich ist.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (9995) gilt für Microsoft Word 2007, 2010, 2013 und 2016. Eine Version dieses Tipps für die ältere Menüoberfläche von Word finden Sie hier: