合并字段中日期的正确比较(Microsoft Word)
Volker在比较合并字段中的日期时遇到问题。他的数据库包含一个“生日”字段,(显然)该字段包含数据库中每个人的生日。在合并每条记录时,他希望将“出生日期”字段与参考日期进行比较,然后根据结果采取一些措施。他尝试使用的逻辑如下所示:
{IF {MERGEFIELD Birthdate} > "02/26/1981" "Under 30" "Over 30"}
问题是比较无法正常进行。它不会返回一致的结果。一种可能的解决方案是以下列方式在合并字段中使用格式切换:
{IF {MERGEFIELD Birthdate\@"MM/DD/YYYY"} > "02/26/1981" "Under 30" "Over 30"}
这样会将传入的信息转换为可比较的格式。但是,通过这种方法获得的结果可能取决于数据源的特性,而与Word无关。您也可以尝试将日期设置为以年为单位的格式,例如:
{IF {MERGEFIELD Birthdate\@"YYYY/MM/DD"} > "2011/02/26" "Under 30" "Over 30"}
如果比较仍然产生不一致的结果,则唯一的解决方案可能是在日期(实际上是在出生日期和参考日期)进行数学转换,以便进行实际的数值比较。您可以通过将日期转换为儒略值来实现,这需要一个非常复杂的合并字段,如此处所示:
{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"}
这种方法可能看起来令人生畏,但这只是某些情况下必需的蛮力方法。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)此技巧(9995)适用于Microsoft Word 2007、2010、2013和2016。您可以在此处找到适用于Word的较早菜单界面的该技巧的版本: