Formula filters(中文)
它们是什么¶
公式筛选器是作用于矩阵行或列的筛选器,在表单运行期间像 Excel 公式一样工作,并使得可以基于矩阵本身处理的数据来处理数据。
在矩阵设计期间插入公式(而不是直接插入到矩阵区域中)具有优势。以这种方式插入的公式在矩阵重新生成时或表单结构发生任何更改时也会被保留。相反,直接插入到 Excel 矩阵区域中的公式每次重新生成矩阵时都会被覆盖。
公式格式¶
支持的公式语法为英文,分隔符为“,”,无论 CCH Tagetik、加载项或 Excel 安装使用何种显示语言。在矩阵向导公式中,引用的是行/列中的筛选器,而不是像 Excel 中那样引用单元格坐标。需遵循的语法详述如下。
- {n}:行公式:第 n 行,当前列
- {m}:列公式:第 m 列,当前行
- {n,m}:行/列公式:第 n 行,第 m 列。
例如,Excel 函数“=SUM(A1: A2)”在矩阵向导中为“SUM({1}:{2})”。
在表单运行步骤中,系统会将矩阵向导公式转换为公式所引用的所有行/列筛选器的 Excel 公式。然后在生成矩阵时自动在 Excel 中添加“=”符号。
注意:在本地筛选器树中,除公式类型的 FST 项外,公式没有描述。在任何情况下,都可以使用字典项为公式分配描述。请参见 字典。
服务器公式¶
要在矩阵内的筛选器上添加信息,可以插入服务器公式。这些公式允许添加引用矩阵和表单的其他元素(相对于行上存在的维度,如果在列上工作,反之亦然,或其他矩阵或选项卡筛选器、表单筛选器)的单元格字段,以显示维度属性(例如描述、公司名称等)
优先公式¶
当包含公式的行和列相交时,系统默认考虑行公式。
要告诉系统在相交情况下对特定行或列的偏好,可以在所需行或列中启用 优先公式 选项。
注意:如果两个相交公式都设置为优先公式,则将应用默认行为。默认行为和优先公式选项不适用于包含小计的单元格。
行/列上小计的示例
当行和列上都存在小计计算公式时,如果两个公式中都将优先公式选项设置为活动,则小计将基于所有行和列计算。
行/列上不同小计的示例
通过激活优先公式选项,可以在同一矩阵中定义多种小计计算逻辑,并可以在表单运行步骤中设置所需小计的选择性显示。
例如,在以下矩阵中,您希望看到:
- 最后一行单元格中相交列数据的总计
- 同一列最后一个单元格中与最后一列数据的比率
如果在行上设置了求和公式,则矩阵会为最后一列的最后一个单元格报告一个不令人满意的数据。

如果在行上设置了求和公式,并在最后一列上设置了优先比率公式,则当表单运行时,该公式将优先于行上的求和公式,相关单元格将报告所需的值。

插入公式的快速操作¶
快速插入操作可用于优化表单中公式的插入,例如在整个行或矩阵上插入公式。有关更多详细信息,请参见 管理公式。
创建对特定单元格的引用¶
在标准的非动态表单上,可以创建引用表单中特定单元格的公式。
| 元素 | 描述 |
|---|---|
| 二维引用 | 对特定单元格的绝对引用。通过指示单元格坐标创建,构造如下: - 第一项 = 行号 - 第二项 = 列号 例如,{2,5} 对应于对第二行和第五列之间相交单元格的绝对引用。 |
| 偏移 | 对单元格的相对引用。通过指示单元格相对于正在定义引用的行/列的位置创建。 - 第一项 = 公式行/列上方或下方的行位置数(例如 -3 = 上方 3 行,+3 = 下方 3 行) - 第二项 = 公式列左侧或右侧的列位置数(例如 -3 = 左侧 3 列,+3 = 右侧 3 列) 例如,{+2, -3} 对应于对公式所在行/列下方第二行和左侧第三列之间相交单元格的相对引用。 |
| 混合 | 通过组合二维引用和偏移引用规则创建的引用。 例如,{1,-3} 对应于对第 1 行和公式所在行/列左侧第三列之间相交单元格的引用。 |
中断自动范围¶
当公式的两个或多个参数包含对相邻单元格的引用时,在运行表单时系统会将这些引用转换为范围。如果特定函数的语法不接受范围,系统会生成错误消息。在这种情况下,相邻单元格需要用占位符行或列分隔,该行或列可以隐藏。下面提供了一个示例:
| 带范围的语法 | 运行表单时的语法 |
|---|---|
| NETWORKDAYS({1},{2}, Holidays_Dates) | NETWORKDAYS(A1:A2, Holidays_Dates) 该语法包含不允许的范围。 |
| 行之间带占位符的语法 | 运行表单时的语法 |
|---|---|
| NETWORKDAYS({1},{3}, Holidays_Dates) | NETWORKDAYS(A1, A3, Holidays_Dates) 该语法不包含范围。 |
支持的 Excel 公式¶
加载项支持以下 Excel 公式:
| 公式 | 公式 | 公式 |
|---|---|---|
| Address | Hyperlink | Rank |
| Bin2Dec | If | Rate |
| Choose | Iferror | Replace |
| Code | ImReal | Rept |
| Column | Index | Roman |
| Columns | Indirect | Row |
| Complex | Intercept | Rows |
| Count | IPMT | Slope |
| Coounta | Irr | Substitute |
| Countbank | Lookup | Subtotal |
| Countif | Match | Sumif |
| Countifs | Mina | Sumifs |
| Days360 | Maxa | Sumproduct |
| Dec2Bin | Mirr | Sumx2my2 |
| Dec2Hex | Mode | Sumx2py2 |
| Variance | Na | Sumxmy2 |
| EDate | Now | T |
| Error.type | Npv | Text |
| Even | Oct2Dec | Time |
| Fact | Odd | Today |
| FactDouble | Offset | Value |
| Hex2Dec | PPMT | Vlookup |
| Hlookup | Quotient | Weekday |
注意:要在查看公式之前计算其值,例如在根据公式值对矩阵元素进行排序时,必须使用与高级选择脚本相关的 Excel 函数(参见 Excel 函数)。