1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
1.2 应用场景
希望找出目标字符串中指定字符共有多少个。
例如,希望找出目标字符串中 A 或 AA 字符的个数,如下图所示:
2. 实现思路
2.1 单个指定字符
将目标字符串拆分为数组,使用指定字符过滤数组得到新数组,然后统计新数组长度,即为指定字符的个数。
1)将目标字符串拆分为数组,分隔符为空,公式为:SPLIT(目标字符串, "")
2)使用指定字符过滤上一步得到数组得到新数组,公式为:GREPARRAY(上一步结果, item = "A")
3)统计新数组长度,公式为:LEN(上一步结果)
4)综合公式为:LEN(GREPARRAY(SPLIT(目标字符串, ""), item = "A"))
2.2 单个或多个指定字符
用指定字符和附加符拼接目标字符串得到一个新字符串,将新字符串拆分为数组,然后统计数组长度减去 2 ,即为指定字符的个数。
1)用指定字符和附加符拼接目标字符串得到一个新字符串,这里指定字符为 AA,附加符为 - ,公式为:CONCATENATE("AA",目标字符串,"-" )
在前面拼接一个指定字符串,保证目标字符串里完全没有指定字符的情况下,第二步的分割函数也能生效。
在后面拼接一个附加符,防止指定字符刚好在目标字符串的末尾,附加符可以是任何不包含于指定字符的字符。
2)将上一步得到的新字符串拆分为数组,分隔符为指定字符串 AA ,公式为:SPLIT(上一步结果,"AA")
3)计算数组的长度并减去 2 ,公式为:LEN(上一步结果)-2
4)综合公式为:LEN(SPLIT(CONCATENATE("AA",目标字符串,"-"),"AA"))-2
3. 示例
3.1 新建报表
点击顶部菜单栏「文件>新建普通报表」,新建一张普通报表。如下图所示:
3.2 准备数据
新建一个内置数据集 Embedded1 。如下图所示:
3.3 设计报表
1)A1-F1 单元格输入文本,A2、A3 单元格输入文本,B2、B3 单元格拖入数据集字段,设计报表样式。如下图所示:
2)依次选中 C2-F2、C3-F3 单元格,分别插入公式,如下图所示:
公式说明如下表所示:
单元格 | 公式 | 说明 |
---|---|---|
C2 | SPLIT(B2, "") | 将目标字符串拆分为数组 |
D2 | GREPARRAY(C2, item = "A") | 使用指定字符过滤目标数组形成新数组 |
E2 | LEN(D2) | 通过 LEN( ) 函数来计算新数组的长度 |
F2 | LEN(GREPARRAY(SPLIT(B2, ""), item = "A")) | 整合 C2-E2 的综合公式 |
C3 | CONCATENATE("AA",B3,"-") | 用指定字符串和附加符拼接目标字符串 |
D3 | SPLIT(C3,"AA") | 将目标字符串拆分为数组 |
E3 | LEN(D3)-2 | 通过 LEN( ) 函数来计算数组的长度 |
F3 | LEN(SPLIT(CONCATENATE("AA",B3,"-"),"AA"))-2 | 整合 C3-E3 的综合公式 |
3.4 效果预览
3.4.1 PC端
PC 端效果如下图所示:
3.4.2 移动端
移动端效果如下图所示:
4. 下载模板
点击下载已完成模板:计算字符串中指定字符个数.cpt