Comparaisons appropriées pour les dates dans les champs de fusion (Microsoft Word)
Volker rencontre un problème pour comparer les dates dans un champ de fusion. Sa base de données contient un champ Date de naissance, qui contient (évidemment) une date de naissance pour chaque personne de la base de données. Au fur et à mesure qu’il fusionne chaque enregistrement, il souhaite comparer le champ Date de naissance à une date de référence, puis entreprendre une action en fonction du résultat. La logique qu’il tente d’utiliser ressemble à ceci:
{IF {MERGEFIELD Birthdate} > "02/26/1981" "Under 30" "Over 30"}
Le problème est que la comparaison ne fonctionne pas correctement; il ne renvoie pas de résultats cohérents. Une solution possible consiste à utiliser un changement de format dans le champ de fusion, de la manière suivante:
{IF {MERGEFIELD Birthdate\@"MM/DD/YYYY"} > "02/26/1981" "Under 30" "Over 30"}
Cela met les informations entrantes dans un format comparable. Les résultats que vous obtenez de cette approche peuvent toutefois dépendre des caractéristiques de la source de données, indépendamment de Word. Vous pouvez également essayer de mettre les dates dans un format annuel, tel que le suivant:
{IF {MERGEFIELD Birthdate\@"YYYY/MM/DD"} > "2011/02/26" "Under 30" "Over 30"}
Si la comparaison donne toujours des résultats incohérents, la seule solution peut être de faire une conversion mathématique à la date (en fait, à la fois à la date de naissance et à la date de référence) afin que vous ayez une comparaison numérique réelle. Vous pouvez le faire en convertissant la date en une valeur julienne, ce qui nécessite un champ de fusion très complexe, comme celui montré ici:
{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"}
Une telle approche peut sembler intimidante, mais ce n’est que la méthode de la force brute nécessaire dans certains cas.
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (9995) s’applique à Microsoft Word 2007, 2010, 2013 et 2016. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu de Word ici:
link: / word-Proper_Comparisons_for_Dates_in_Merge_Fields [Comparaisons appropriées pour les dates dans les champs de fusion]
.