如何在 Word 合并字段中使用 OR 语句比较多个值?

如何在 Word 合并字段中使用 OR 语句比较多个值?

我想要做的是:

{ IF v1 = 0 OR v2 = 0 "Lorem Ipsum.." }

如何撰写或者在 Word 合并字段语法中?

我特别要求Word 2013- 我认为语法在 2013 年已经发生了变化。

答案1

如果 v1、v2 是 MERGE 字段,一般情况下需要 { MERGEFIELD v1 } 和 { MERGEFIELD v2 }。然后可以使用如下结构进行 OR 运算:

{ IF { =OR({ COMPARE { MERGEFIELD v1 } = 0 },{ COMPARE { MERGEFIELD v2 = 0 }) } = 0 "Lorem Ipsum.." }

(通常,所有 { } 都必须是特殊字段代码括号对,您可以在 Windows Word 中使用 ctrl-F9 插入它们。

或者对于简短的结果文本,您可以使用数字图片开关来产生正确的结果,例如

{ =OR({ COMPARE { MERGEFIELD v1 } = 0 },{ COMPARE { MERGEFIELD v2 = 0 }) }) \#"'';'';'Lorem Ipsum..'" }

对于更多的比较项,你需要嵌套 OR

在这种情况下,您还可以执行以下操作

{ IF { =ABS({ MERGEFIELD v1 })+ABS({ MERGEFIELD v2 }) } = 0 "Lorem Ipsum.. }

恕我直言,我不相信 Word 2013 在这方面的语法发生了变化,但如果您有这种差异的例子,请分享!

答案2

我认为上面的第一个例子是错误的。第二个例子看起来是正确的。如果 COMPARE 为真,则返回 1;如果为假,则返回 0。=OR 也以这种方式工作 - 算术上。因此,如果您的 COMPARE 命题之一为真,则对它们进行 OR 将得出 1。如果 COMPARE 命题之一为真,则您希望输出“Lorem Ipsum”。因此,IF 应该与 1 进行比较,而不是与 0 进行比较。或者,与 0 进行比较,如果匹配为 FALSE,则可以输出“Lorem Ipsum”。我认为这是另一个错误:我认为 IF 期望输出真和假参数。{IF <condition> <true-text> <false-text>}。

更复杂的逻辑条件可以通过再次创造性地使用算术来经济地(不嵌套)表达。假设,对于以下任何一个条件来说,项为真,则其真值之和可用作 IF 的条件。如果全部为假,则结果为零。可以使用 {=} 在 Word 字段中应用常规算术。例如:

{IF {=({COMPARE {MERGEFIELD v1} = 0} + {COMPARE {MERGEFIELD v2} = 0} + {COMPARE {MERGEFIELD v3} = 0})} = 0 "None are zero." "At least one is zero."}

相关内容