Word 邮件合并中的公式

Word 邮件合并中的公式

我有一个公寓业主数据库,可用作 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不起作用。)

如果楼层数可以为负数,事情就会变得稍微复杂一些。通常有几种方法可以实现相同的结果。最好先尝试这些类型的字段代码,而不是尝试覆盖所有不同的可能方法。

相关内容