财务申报中的高级格式设置选项

当您在财务申报中创建报表时,其他格式设置功能可用,包括维度筛选器、列和报告单位限制、非打印行和计算中的 IF/THEN/ELSE 语句。

下表说明了在设计报表时可用的高级格式设置功能。

职能 描述
维度筛选器 要访问特定数据集,您可以在行定义和列定义中使用维度。 很多报表仅使用行格式的自然科目段。 但是,可以修改行,以便让它们包含维度值。 列定义中的维度筛选器用于访问特定维度值。
报告单位限制 您可以设置一个报表行,以便让它仅显示与特定报告单位关联的信息。
非打印 (NP) 行 非打印行对很多报表有用。 如果需要进行某些计算来获取一个值,则可在打印的报表上隐藏这些计算。 非打印行还有助于解决报表设计问题和用于高级单位格放置。
列限制 行定义中的列限制用于隐藏仅与报表的某些行相关的值。 当对行执行百分比计算时,如果这些数字不适用,列限制将阻止打印合计列或其他列。
分列符 您可以在行定义中添加分列符以并排显示报表信息。 您可以在单个行定义添加多个分列符,列标题将在每个列的顶部的分列符后重复。 报表的注释在分列符之间显示。
IF/THEN/ELSE 语句 您可以修改行定义或列定义中的计算。
维度值使用单引号 ('') 和与号 (&) 设计报表时可使用维度值,包括与号字符。

高级单元格放置

高级单元格放置(也称为强制放置)涉及将特定值放到特定单元格中。 例如,强制放置通常用于将正确的余额移入现金流量表。 您可以将强制放置用于以下目的:

  • 将值从 Microsoft Excel 移至特定单元格中。
  • 将特定值硬编码到报表中。
  • 通过复制上一个单元格中的值并将该值乘以 -1 来修改符号。

注释

在大多数情况下,您必须配置报表定义,以便让列计算在行计算之前完成。 若要完成此设置,请执行以下步骤。

  1. 在报表设计器中,打开报表定义。
  2. 设置选项卡上的计算优先级下,选择首先执行列计算然后执行行计算

设计报表

在设计报表时,您应先创建所有细节行以确保按预期方式拉入值。 然后添加 NP(不打印)格式覆盖以禁止显示包含最终值的详细信息。

重要

在行定义中使用 CAL 格式代码时,您不能向下钻取到交易记录明细。

对于强制放置,公式使用以下格式:<目标列>=<原始列>.<行代码> 用逗号和空格分隔行的任何其他放置。 下面是一个示例:D=C.190,E=C.100

高级格式设置选项的示例

以下示例显示了如何对行定义和列定义进行格式设置以强制放置基本现金流量表(示例 1)和统计报表(示例 2)。

示例 1:基本强制放置

下表显示了使用基本强制放置的行定义的一个示例。

行代码 说明 格式代码 相关公式/行/单位 行修饰符 链接到财务维度
100 期初的现金 (NP) 科目修饰符 = [/BB] +Segment2 = [1100]
130 期初的现金 CAL C=C.100,F=D.100
160
190

注释

出于显示目的,空列已从前面的表格中删除:格式替代、标准余额、打印控制和列限制列不显示。

下表显示了在行中使用基本强制放置的列定义的一个示例。

格式 A B C E
标题 1
标题 2 A B C E
标题 3
列类型 ROW DESC FD FD FD CALC
帐簿代码/属性类别 ACTUAL ACTUAL ACTUAL
会计年度 BASE BASE BASE
期间 BASE BASE BASE
涵盖的期间 PERIODIC YTD/BB 年初至今
公式 E-D
列宽 5 30 14 14 14 14

示例 2:统计报表

下表显示了对统计报表使用强制放置的行定义的一个示例。

行代码 描述 格式代码 相关公式/行/单位 格式替代 标准余额 链接到财务维度
50 统计信息 REM
100 人数 - 美国 CAL 4 ###0.;($###0.)
115 人数 - 国际 CAL 11 ###0.;($###0.)
130
190 美国销售额 C +Segment2 = [41*]、Segment3 = [00]
220 国际销售额 C +Segment2 = [41*]、Segment3 = [01:99]
250
280
310 美国销售额 CAL D=C.190,E=C.100,F=(C.100/C.190)
340 国际销售额 CAL D=C.220,E=C115,F=(C.220/C.115)

注释

出于显示目的,空列已从前面的表格中删除:打印控制、列限制和行修饰符列不显示。

下表显示了对统计报表使用强制放置的列定义的一个示例。

格式 A B C E
标题 1 A B C E
标题 2 - - 年初至今 年销售额 职员 人均美元数
标题 3
列类型 ROW DESC FD CALC CALC CALC
帐簿代码/属性类别 ACTUAL
会计年度 BASE
期间 BASE
覆盖的期间 年初至今
配方 E-D
列宽度 5 30 14 14 14 14

将行限制到特定报告单位

当报表行被限制到特定报告单位时,该行将仅显示命名报告单位的关联数据并忽略报告结构树中的其他报告单位的数据。 例如,您可以创建为特定部门的总运营费用提供详细信息的行。 如果您的报表同时包含报告结构树和不仅包含自然科目的行定义,则该报表可以包含重复数据。 例如,您有一个列出您组织中的六个部门的报告,并且您还有列出了行中的科目和部门的特定组合的行定义。 在生成报表时,某个科目和某个部门的特定组合将在报告结构树的每个级别上打印,即使该部门可能在该树中不匹配。 此行为由通常由报表定义筛选出的行覆盖导致。 避免数据重复的一种方法是将行限制到特定报告单位。

注释

如果某个行包含维度,并且您将该行限制到子报告单位,则将为该子单位及其父单位包含行金额,但不会进行复制。

将行限制到报告单位

  1. 在报表设计器中,单击行定义,然后选择行定义以修改。
  2. 双击相应的相关公式/行/单位单元格。
  3. 报告单位选择对话框的报告树字段中,选择在报表定义中指定的树。
  4. 选择一个报告单位,然后单击确定。 限制将显示在行定义的单元格中。
  5. 双击受限制的行的链接到财务维度列中的单元格,然后输入指向财务数据系统的链接。

在行定义中选择打印控制

您可以使用打印控制单元格为每个列指定打印控制代码。

将打印控制代码添加到报表行

  1. 在报表设计器中,打开要修改的行定义。
  2. 双击打印控制单元格。
  3. 打印控制对话框中,选择打印控制代码或按住 Ctrl 键选择多个代码。 您还可以直接在打印控制单元格中键入打印控制代码。 使用逗号分隔多个打印控制代码。
  4. 选择所有有条件打印选项。
  5. 单击OK

常规打印控制代码

下表说明了行定义的常规打印控制代码。

打印控制代码 打印控制代码的解释 描述
NP 非打印行 阻止行中的金额在报表上打印,并从计算中排除金额。 要在计算中包含非打印列,请直接在计算公式中引用此列。 例如,非打印行 240 包含在以下计算中:230+240+250。 但是,非打印行 240 不包含在以下计算中:230:250
CS 货币符号;在此行中使用货币格式 在将货币符号包含在所有非百分比金额中。 百分比值不接受货币符号。
XD 在科目详细信息报表中禁止显示行 禁止在分期付款详细信息报表和交易记录详细信息报表上显示科目。 当行包含不应在科目详细信息报表或交易记录详细信息报表上列出的多个科目时,此打印控制很有用。
X0 在所有单元格均为零时禁止显示行 如果某个行中的所有单元格都是空或包含零,则从报表中排除该行。 仅当未在报表定义中选择禁止显示零余额的选项时,此打印控制才有意义。
B0 将零列留空 将行中包含零金额的列留空。
XR 禁止显示累计 禁止汇总。 如果报表使用报告结构树,此行中的金额不会累计到后面的父节点。
SR 禁止显示化整 阻止化整此行中的金额。
XT 在交易记录详细信息报表中禁止显示行 禁止在交易记录详细信息报表上显示交易记录。 当行包含不应在交易记录详细信息报表上列出的多个科目时,此打印控制很有用。

条件打印控制代码

下表说明了行定义的有条件打印控制代码。

打印控制代码 描述
(无) 清除条件打印选择。
删除行 仅打印此行的借方余额。
仅打印此行的贷方余额。

行定义中的“列限制”单元格

行定义中的列限制单元格具有多个用途。 根据行的类型,您可以使用列限制单元格指定以下功能之一:

  • 该单元格可限制行金额到特定列的打印。 如果您要创建表格式资产负债表,那么此功能十分有用。
  • 该单元格可指定要排序的金额的列。

使用行定义中的计算公式

行定义中的计算公式可包含 +-*/ 运算符,还可包含 IF/THEN/ELSE 语句。 此外,计算还可能涉及各个单元格和绝对金额(公式中包含的实际数字)。 此公式最多可包含 1,024 个字符。 计算不能应用于包含链接到财务维度(FD) 类型的单元格的行。 但是,您可以包含对连续的行的计算,禁止显示这些行的打印,然后将计算行合计在一起。

计算公式中的运算符

计算公式使用的运算符比行合计公式的更复杂。 但是,您可以将 */ 运算符与其他运算符一起使用以对金额进行乘 (*) 和除 (/) 运算。 要在计算公式中使用范围或合计,则必须在任何行代码前使用与号 (@),除非您在行定义中使用了列。 例如,要将行 100 中的金额与 330 行中的金额相加,则可以使用行合计公式 100+330 或计算公式 @ 100+@330

注释

您必须在您在计算公式中使用的每个行代码前使用与号 (@)。 否则,该数字将作为绝对金额读取。 例如,公式 @100+330 在行 100 中的金额中增加了 330 美元。 当您引用计算公式中的列时,不需要使用 at 符号 (@)。

创建计算公式

  1. 在报表设计器中,单击行定义,然后打开行定义以修改。
  2. 双击格式代码单元格,然后选择CAL
  3. 相关公式/行/单位单元格中,键入计算公式。

特定行的计算公式示例

在此示例中,计算公式 @100+@330 表示行 100 中的金额与行 330 中的金额相加。 行总计公式 340+370 将行 340 中的金额与行 370 中的金额相加。 (行 370 中的金额是此计算公式生成的金额。)

行代码 描述 格式代码 相关公式/行/单位 打印控制 行修饰符 链接到财务维度
340 期初的现金 NP BB +Account=[1100:1110]
370 年初现金 CAL @100+@330 NP
400 期初的现金 TOT 340+370

当行定义中的行的格式代码为 CAL,并且您在相关配方/行/单位单元格中输入了数学计算时,您还必须输入与报表上的相关列和行的字母。 例如,输入 A.120 表示列 A 行 120。 也可以使用与号 (@) 表示所有列。 例如,输入 @120 表示行 120 中的所有列。 没有列字母或与号 (@) 的任何数学计算均被视为实数。

注释

如果您使用标签行代码来引用行,则必须使用句点 (.) 作为列字母和标签之间的分隔符(例如,A.GROSS_MARGIN/A.SALES)。 如果您使用与号 (@),则不需要分隔符(例如,@GROSS_MARGIN/@SALES)。

特定列的计算公式的示例

在此示例中,计算公式 E=C.340 表示列 C、行 340 中单元格的计算,仅对列 E 执行。

注释

当您引用计算公式中的列时,不需要使用 at 符号 (@)。

行代码 描述 格式代码 相关公式/行/单位 打印控制 行修饰符 链接到财务维度
340 期初的现金 NP BB +Account=[1100:1110]
370 年初现金 CAL E=C.340 NP
400 期初的现金 TOT 340+370

修改所选列中的数字

当您要修改特定行的一个列中的数字或计算但不想影响报表上的其他列时,则可以在行定义的格式代码列中指定CAL(计算)。

  • 要对所有报表 (FD) 列执行计算,则不要输入列分配。
  • 要将公式限制到特定列,请依次输入列字母、等号 (=) 和公式。
  • 您可以指定多个列。 在您使用与号 (@) 进行特定列放置时,与号 (@) 与行相关。
  • 您可以在一个行中输入多个列公式。 使用逗号分隔公式。

计算示例

计算 创建的操作
@130*.75 对于每个列,行 130 中的值将乘以 0.75。 结果随后会放入每个列的当前行。
B=@130*.75 同一计算仅对列 B 执行。
A,B,C=(@100/@130)*.75 A=(A.100/A.130)*.75 B=(B.100/B.130)*.75 C=(C.100/C.130)*.75

行定义中的 IF/THEN/ELSE 语句

IF/THEN/ELSE 语句可以添加到任何有效计算中, 并与 CAL 格式一起使用。 您应在相关配方/行/单位列的单元格中输入IF/THEN/ELSE计算公式。 IF/THEN/ELSE 计算公式使用以下格式:IF <true/false 语句> THEN <公式> ELSE <公式> 语句的 ELSE <公式> 部分是可选的。

IF 语句

跟在 IF 语句后面的语句可以是计算结果为 true 或 false 的任何语句。 跟在 IF 语句后面的语句可能涉及简单评估,也可能是包含多个表达式的复杂语句。 下面举了一些示例加以说明:

  • IF A.200>0 (简单评估)
  • IF A.200>0 和 A.200<10,000 (复杂语句)
  • IF A.200>10000 OR((A.340/B.1200)*2 <1200) (包含多个表达式的复杂语句)

IF 语句中的 Periods 一词表示报表的期间数。 此术语通常用于计算本年迄今的平均值。 例如,当您运行期间 7 YTD 的报表时,语句 B.150/Periods 表示列 B 的行 150 的值除以 7。

THEN 和 ELSE 公式

THENELSE 公式可以是任何有效的计算 - 从非常简单的值分配到复杂的公式。 例如,语句 IF A.200>0 THEN A=B.200 表示,“如果行 200 的列 A 中的单元格大于 0(零),则将行 200 的列 B 中单元格的值放入当前行的列 A 中的单元格。”前面的 IF/THEN 语句会将值放入当前行的一个列。 但是,您还可以在 true/false 评估或公式中使用与号 (@) 来表示所有列。 下面是以下章节中所述的一些其他示例:

  • 如果 A.200 >0 THEN B.200:如果单元格 A.200 中的值为正值,则单元格 B.200 中的值将放入当前行的每一列中。
  • 如果 A.200 >0 THEN @200:如果单元格 A.200 中的值为正数,则第 200 行中每列的值将放入当前行中的相应列中。
  • 如果 @200 >0 THEN @200:如果当前列第 200 行中的值为正值,则第 200 行中的值将放入当前行中的同一列中。

将计算限制到行定义中的报告单元

要将某个计算限制到报告结构树中的单个报告单元,以便让生成的金额不累计到较高的水平,您可使用行定义中的相关配方/行/单位中的 @Unit 代码。 @Unit 代码在报告结构树的列 B单位名称中列出。 当使用 @Unit 代码时,值不会累计,但计算会在报告结构树的每个级别评估。

注释

要使用此功能,则必须将报告结构树与行定义关联。

该计算行可引用某个计算行或财务数据行。 该计算在行定义的相关配方/行/单位单元格和财务数据类型限制中记录。 该计算必须使用以 IF @Unit 开头的有条件计算。 下面是一个示例:IF @Unit(SALES) THEN @100 ELSE 0 此计算包含报表的每个列中的行 100 中的金额,但只针对销售单位。 如果有多个单位名为 SALES,金额将以所有这些单位显示。 此外,行 100 可以是财务数据行,也可以定义为非打印。 在这种情况下,系统将阻止金额以树中的所有单位显示。 您还可以将金额限制到报表的单个列(如列 H),方法是使用列限制仅打印报表的该列中的值。 您可以在 IF 语句中包含 OR 组合。 这里是一个示例:IF @Unit(SALES) OR @Unit(SALESWEST) THEN 5 ELSE @100。 您可以使用以下方法之一在计算类型限制中指定单位:

  • 输入单位名称以包含匹配的单位。 例如,IF @Unit(SALES)可启用对名为 SALES 的任何单位的计算,即使报告结构树中有多个 SALES 单位。
  • 输入公司和单位名称以将计算限制到特定公司内的特定单位。 例如,输入 IF @Unit (ACME:SALES) 以将计算限制到 ACME 公司内的销售单位。
  • 输入报告结构树中的完整层次结构代码以将计算限制到特定单位。 例如,输入 IF @Unit(SUMMARY^ACME^WEST COAST^SALES)

注释

若要找到完整层次结构代码,请右键单击报告树定义,然后选择复制报告单位标识符(H-代码)

将计算限定为报告单位

  1. 在报表设计器中,单击行定义,然后打开要修改的行定义。
  2. 双击格式代码单元格,然后选择CAL
  3. 单击相关配方/行/单位单元格,然后输入以 IF @Unit 结构开头的有条件计算。

列定义中的 IF/THEN/ELSE 语句

IF/THEN/ELSE 语句可使所有计算依赖于来自任何其他列的结果。 您可以引用其他列,但不能引用 IF 语句中的报表单元格。 任何计算都必须应用于整个列。 例如,语句 IF B>100 THEN B ELSE C*1.25 表示,“如果列 B 中的金额大于 100,则将列 B 中的值放入 CALC 列。 如果列 B 中的金额不大于 100,则将列 C 中的值乘以 1.25,并将结果放入 CALC 列。”始终在 IF 语句后面跟上可评估为 true 或 false 的逻辑语句。 用于 THEN 语句和 ELSE 语句的公式可包含对任意数量的列的引用,并且您可以根据需求设置这些公式的复杂度。

注释

您不能将计算的结果放入任何其他列。 结果必须在包含公式的列中。

行、列和树中的维度值使用单引号和与号

可使用包含与号 (&) 的维度值设计报表。

在任何链接到财务维度字段中,均可输入 'P&L' 这样的值。 如果维度值两端都有单引号 (' '),说明使用的是文字值,如包括与号字符 (&)。