复杂报表常见问题
1. 实际是有数据的,为什么G_LOOKUP函数匹配数据为0?
原因:视图2中的数据按照视图1的字段进行匹配时,可能是因为两个视图中匹配字段的字段类型不一致。
解决方案:保持不同视图里同一字段类型一致。转换类型需要新建计算字段用函数转换才能真正生效。
? 实际场景案例
公式:=G_LOOKUP(9,明细,可用数量,物料编码:A{r},仓库:C{r})
解决方案:
将视图1的物料编码用函数转换成文本类型字段,数据就可以正常匹配上了。
2. 能否把复杂报表里的0或者null值替换为其他符号?
答:4.8级以上版本:报表预览界面,点击展开右侧「特殊值」,可以配置多条替换规则。要注意替换规则(可点击添加后的图标查看)。4.8以下版本:仅支持null值替换
? 示例
3. 数据怎么设置千位分隔符?
本地编辑模式:在Excel里设置格式后上传模板即可。
在线编辑模式:
1)选中需要设置的单元格/公式;
2)表头选择“自定义格式”-“更多数字格式”,选择所需数字格式,点击确定。
?步骤示例
提示:
1)在线编辑模式下,目前具有千位分隔符格式的数值不支持同时显示为货币格式“¥...”;
2)千分位分隔符的功能在4.2.0及以上版本可用。
4. 为什么复杂报表数据显示#DIV/0?
原因:当分母为0时,会出现错误而返回#DIV/0!
解决方案:可以用excel自带的if(iserror())函数替换。比如:=G_CELLCALCEXP(if(iserror((B{r}-C{r})/B{r}),"--",(B{r}-C{r})/B{r}))
5. 为什么从工具栏里增加或减少小数位数不生效?
原因:单元格默认格式为“自动”,此时不支持调整小数位数,需要手动修改为带小数点的格式(例如数字、百分比、货币)后才能调整小数位数。
6. 派生表是什么意思?
答:派生表 ( 即 Dynamic Table ),即从原表选取进行纵向扩展的字段派生出新的一个表并自动进行排序和去重。默认升序排列,且不可调整排序方式。
原生公式与派生公式生成的报表预览对比:
7. 为什么小计公式不生效?
可能原因1:小计引用的范围字段所在的单元格,动态属性没有设置“分组”方式。
解决方案:给小计范围字段所在的单元格设置分组方式,有3种分组方式,一般常用的为“合并单元格”。
【实际场景案例】
这里小计范围字段为“物料编码”,即按照“物料编码”分组求和,那么A3单元格的“物料编码”动态属性必须勾选“分组”。
8. 横向扩展后列数为什么比期望列数多?
原因1:多行表头同时扩展、或者多列数据交替扩展时,动态属性里的“不额外添加行列数”没有勾选,导致多个单元格公式重复扩展。
解决方案:除了最后一个横向扩展公式,其他公式动态属性需要勾选“不额外添加行列数”。具体请参考 不额外添加行列数的解释和使用场景 。
原因2:派生公式里派生表使用不当,主要有2方面:1)同一列的不同单元格里的公式没有使用同样的派生表,导致每个公式扩展的列数不一致;2)错误使用了double数值、timestamp日期时间等字段当做派生表字段,导致扩展列数过多。
解决方案:1)同一列里的公式都使用同样的派生表;2)派生公式里使用文本string、整数int类型字段来做派生表。
原因3:不需要横向扩展的地方使用了派生公式。
解决方案:使用不带派生表的公式,或者手动创建只有一个值的派生表并使用。
9. 不想让行总计(G_COLTOTAL)、列总计(G_GRANDTOTAL)横向扩展,怎么实现?
解决方案1:行总计(G_COLTOTAL)、列总计(G_GRANDTOTAL)公式里必须引用派生表,不需要横向扩展时,可以在任一视图里新建一个固定字段,内容不限,然后拖到维度栏;然后总计公式了使用这个视图和字段做派生表。参考下图。这个方式对所有派生公式(例如G_LOOKUPEXP)都适用。
解决方案2:不使用总计公式,用sum()等其他公式代替,请参考 复杂报表列总计的不同计算方式。