我有一个公寓业主数据库,可用作 MS Word 合并到电子邮件中的数据源。我可以分离单元号来识别单元所在的塔楼、楼层和堆栈。例如,3802 位于 Ewa 塔楼(所有偶数),38 是楼层,堆栈是 02。我需要使用公式来确定单元号是偶数还是奇数,并使用楼层来确定它是否在某个楼层范围内,例如 32 到 42,以及堆栈(垂直堆栈,即:堆栈 2、4、6)。
这可以在 Word 邮件合并到电子邮件中实现吗?还是我应该只向数据库添加字段?
答案1
如果在数据库中维护附加字段确实很容易(例如,使用视图或类似的东西),那么我会这样做,部分原因是无论您需要多少个不同的 Mailmerge 主文档,您都拥有所有必要的数据。
您可以使用 { = } 字段进行计算,并使用 { IF } 字段根据计算结果插入不同的文本。
例如,如果您的数据源中名为 的列中的所有单位编号都是正 4 位数字unit
,则您可以使用
{ =MOD({ MERGEFIELD unit },2) \#0 }
确定单位是奇数还是偶数(结果为0
偶数,1
奇数)
注意,全部它们{ }
必须是您可以使用 ctrl-F9 在 Windows 桌面 Word 上插入的特殊字段代码括号,而不是可以通过键盘输入的普通{
字符}
。
你只需要\#0
确保你得到结果,0
而不是0.0
你可以使用
{ IF { =MOD({ MERGEFIELD unit },2 \#0 } = 0 "text if the unit number is even" "text iif the unit number is odd" }
根据单位是奇数还是偶数插入不同的文本。
你可以使用
{ =INT({ MERGEFIELD unit }/100) }
获取底线。如果你总是需要底线为两位数,你可以使用
{ =INT({ MERGEFIELD unit }/100) \#00 }
你可以使用
{ ={ MERGEFIELD unit }-(INT({ MERGEFIELD unit }/100))*100 }
获取堆栈。(MOD 最高可达到 MOD(,99),但不能达到 MOD(,100))
您可以使用 SET 字段存储中间结果,例如
{ SET unitx { MERGEFIELD unit } }
{ SET oddeven { =MOD(unitx,2) } }
{ SET floor { =INT(unitx/100) } }
{ SET stack { =unitx-(floor*100) } }
然后你可以做类似的事情
{ IF floor >= 32 "{ IF floor <= 42 "floor is 32 thru 42" "above 42" }" "below 32" }
(请注意 IF 比较中的间距,例如floor >=32
不起作用。)
如果楼层数可以为负数,事情就会变得稍微复杂一些。通常有几种方法可以实现相同的结果。最好先尝试这些类型的字段代码,而不是尝试覆盖所有不同的可能方法。