OOo 墙外奇谈:表格概念,第二部分

作者:Bruce Byfield

表格公式——或者我应该说是公式?——是 OpenOffice.org Writer 的独特功能之一。 Writer 使用类似于 OpenOffice.org Calc 中的公式栏,但选项集更有限。表格公式的语法类似于电子表格公式,但只有细微的差异,足以让电子表格专家感到沮丧。然而,尽管存在这些明显的缺点,表格公式仍然是 Writer 工具箱中受欢迎的新增功能。正如一个实际示例可以表明的那样,通过一点规划,您可以使用 Writer 的表格公式构建出令人惊讶的复杂文档,更重要的是,减少日常任务的枯燥感。

公式栏

公式在 Writer 表格中使用公式栏输入。公式栏可以通过选择“视图” -> “工具栏” -> “公式栏”来访问。不过,更可能的是,您会发现按 F2 键是访问公式栏更方便的方式。公式栏可用于向表格单元格或常规文本添加公式。

OOo Off the Wall: Tabling the Notion, Part 2

图 1. Writer 中的公式栏与 Calc 中的公式栏非常相似。

公式栏由四个项目组成

  • 输入行,公式在其中手动输入或通过您的选择输入。

  • “公式”按钮,它打开基本公式的下拉列表,例如“求和”、“百分比”和“平方根”。还有几个类别的公式可用。总共有大约二十几个公式可用。它们包括基本用户可能想要的大多数函数。此外,您还可以手动输入 +、-、*(用于乘法)和 /(用于除法)。

  • “取消”按钮,用于关闭公式栏。当您选择此按钮时,输入行中的任何内容都将丢失。

  • “应用”按钮,它给出公式的结果或错误消息。不幸的是,错误消息只是“表达式错误”,而不是解释您做错了什么。

表格公式与电子表格公式

Writer 表格单元格和公式的行为与电子表格单元格非常相似,但存在许多重要的差异。与电子表格单元格一样,表格单元格也具有地址,地址由列的字母和行的数字组成。在这两种情况下,地址都从左上角的单元格开始,即 A1。在这两种情况下,您也可以通过在开始地址和结束地址之间输入冒号来输入地址范围。例如,A2:D4 包括 A2 和 D4 之间的所有单元格(包括 A2 和 D4)。

然而,如果输入带有小写字母的地址,电子表格会很宽容,但 Writer 表格只要求大写字母。如果您输入 a2:D4,OpenOffice.org Calc 可以毫无问题地读取它。但是,Writer 会返回错误消息。

与电子表格一样,Writer 公式以等号 (=) 开头。只要使用地址范围,公式看起来就非常相似。例如,如果您想在 Calc 中将单元格 A1 和 A2 的结果相加,则 Calc 和 Writer 表格中的公式都将是 =SUM(A1:B1),尽管 Writer 出于某些原因会输入它而不会将首字母大写。但是,如果您想对两个不相邻的单元格求和,在 Calc 中公式将是 =SUM(A1;A5),但在 Writer 表格中它将是 =sum <A1>+<C2>——并且需要手动输入。

如果您习惯于使用电子表格,这些差异可能会令人沮丧。问题是这些差异很小,容易忘记,但又足够重要,会引起困难。对于某些 Writer 表格函数,例如 Round,语法差异很大,您可能需要耐心通过试错和参考在线帮助来学习。为什么语法与 Calc 的语法不完全相同尚不确定,但请注意,它可能会让您感到痛苦,尤其是在您匆忙时。

创建发票

要了解公式在 Writer 表格中的实际用途,请想象您经营一家家庭计算机维修业务。当您向客户开账单时,您通常会发送一份两页的文件。第一页是一般信函,礼貌程度各不相同,具体取决于账单的逾期时间。如果您愿意,可以使用输入列表字段来选择每个逾期阶段的短语。在第二页上,您将提供一份明细发票。如果您选择,您可以手动输入每项服务的工时数和小时费率,并使用计算器将它们相加。但是,您可以通过以下流程自动生成发票来节省时间

  1. 创建一个包含 4 列和 12 行的表格。在 OOo 版本 1.x 中,命令是“插入” -> “表格”。在版本 2.0 中,它是“表格” -> “插入” -> “表格”。

  2. 从左到右,将列标题标记为“服务”、“工时”、“小时费率”和“成本”。

  3. 选择“小时费率”和“成本”列。然后,通过从右键单击菜单中选择“数字格式”将数字格式设置为货币。请务必选择带有两位小数的格式。

  4. 如果您使用的是 OOo 2.0,请选择“工时”列并将数字格式设置为“数字”。如果您使用的是版本 1.x,则无需执行此步骤,因为它默认情况下启用了数字识别。版本 2.0 中更改了默认设置,因为它经常让新用户感到沮丧。

  5. 在“小时费率”列的最后三行中,从上到下输入“小计”、“销售税”和“总计”。通过为它们定义段落样式或使用工具栏中的手动“右对齐”按钮来右对齐这三个条目。

  6. 在“小时费率”列的第二行 C2 中输入“小时费率”。对于此示例,我们假设标准费率为每小时 65 美元。请注意,由于设置了数字格式,您只需输入 65。美元符号和小数点将为您输入。

  7. “成本”是工时数乘以小时费率。要让 Writer 为您计算“成本”,请将鼠标光标放在“成本”列的第二行 D2 中。然后,按 F2 打开公式栏。

  8. 使用鼠标选择表格单元格 B2。 <B2> 将输入到公式栏的输入行中。在输入行中添加星号 (*),然后选择单元格 C2,然后单击“应用”按钮,即输入行旁边的绿色复选标记。

    单元格 D2 现在包含单元格 B2 和 C2 内容相乘的结果。公式为 =<B2>*<C2>。

    由于 B2 为空,D2 显示 0.00 美元。如果您更改工时数 (B2) 或小时费率 (C2),则 D2 会自动更新。

  9. 接下来,将公式添加到可以细分服务的每一行中。选择单元格 B2、C2 和 D2。然后选择“编辑” -> “复制”。最后,选择单元格 B3 到 D9 并选择“编辑” -> “粘贴”。

    此操作会将公式复制到其他行中。由于表格单元格公式中的地址是相对的,它也会更新行中的公式。例如,如果您将鼠标暂停在单元格 B4 上,您可以看到其公式引用的是第 3 行,而不是第 2 行。

    如您所知,在电子表格中,您可以选择单元格并在右下角用鼠标拖动以达到相同的效果。但是,Writer 表格单元格不如电子表格单元格通用。

  10. 要创建一个计算每项服务成本总额的公式,请将鼠标光标放在 D10 中,即“小计”标题右侧的单元格中,然后按 F2 打开公式栏。从“公式”按钮提供的下拉列表中选择“求和”。然后,选择单元格 D2 到 D9,然后单击“应用”按钮。

    单元格 D10 现在包含公式 =sum <D2:D9>。单元格地址之间的冒号表示单元格范围,即 D2 到 D9(包括 D2 和 D9)。

    这是一个二代公式,由 D 列中所有其他公式的结果组成。如果表格中的任何工时数或小时费率发生变化,小计将自动更新。

    如果某些服务行是空白的,请不要担心。如果未输入工时数,则该行中的公式将设置为零。

  11. 假设销售税为 7%,您可以通过单元格 D11 中的第三个公式计算销售税: =<D10>*.07。

  12. 最后,可以通过在单元格 D12 中输入公式 =sum <D10:D11> 来计算总计。

OOo Off the Wall: Tabling the Notion, Part 2

图 2. Writer 仅包含基本公式,但它们足以创建许多复杂的、节省时间的文档。

表格现在有四代公式。每次更改工时数或小时费率时,每个公式都会自动更新。

每次创建发票时都做这么多工作很麻烦,因此您自然希望使用“文件” -> “模板” -> “保存”将包含发票的文档另存为模板。这样,表格在您需要时随时可用。在每种情况下,您只需要输入工时数和小时费率——无需计算。

如果您需要更长的发票,您只需在“小计”上方添加额外的行,然后复制并粘贴现有行之一,就像最初创建发票时所做的那样。

结论

与电子表格相比,Writer 表格中的公式受到限制,并且差异很大,以至于有经验的电子表格用户经常发现它们难以使用。事实上,如果您需要超出基本功能的任何功能,或者只是偶尔使用它们,并且不想每次都重新学习它们,您可能更喜欢使用“插入” -> “对象” -> “OLE 对象”将电子表格导入到您的 Writer 文档中。通过一些格式设置选项,例如使单元格边框可见,导入的电子表格可以看起来与 Writer 表格完全相同。

但是,如果您的需求很简单,或者您是许多认为电子表格过于复杂而不予考虑的人之一,那么 Writer 表格可能就是您所需要的全部。与导入电子表格不同,使用表格公式不需要维护两个单独的文档。而且,只要有点耐心和一个模板,它们就是另一个用于自动化工作的有用工具。

Bruce Byfield 是一名自由课程设计师和讲师。他是Linux Journal和 Newsforge 的定期撰稿人。

加载 Disqus 评论