中国式报表Pro常见问题
1. 视图里设置的排序为什么在模板里不生效?
1.1. 案例1:单视图,视图里设置了自定义排序,在模板里预览不生效。
【原因】视图里对多维度排序时,排序按照字段放入排序栏的顺序生效,同时受维度分组影响;模板使用视图里排序后的数据,多个维度打乱次序使用时不会对数据重新排序。上图案例里,先对大区排序分组,每个大区里再按照城市线排序,仅看“城市线”时,“五线”就是排在“四线”前面的。
【解决方案】在视图里把维度栏和排序栏里的「城市线」都放到最前面。
1.2. 案例2:关联视图后视图里设置的日期排序不生效。
【原因】包含日期字段的视图在左关联中不是主表(左表),多视图左关联后会成为一个虚拟的宽表视图,排序以左表为准,右表里的字段排序都不生效。
【解决方案】日期字段从模板单元格的动态属性里设置排序方式。
1.3. 案例3:多视图关联后主表主键的排序不生效
【原因】多视图全关联、内关联时,由于不同视图主键值可能不一致,关联后主键值大概率会发生变化,所以关联后的新表统一不保留任何视图里的排序。
【解决方案】有自定义排序需求的情况下尽量使用左关联,把排序字段放到关联的左表视图里;需要升序、降序排列时,根据需要选择合适的关联方式,然后设置模板单元格动态属性里的排序方式。6.0版本开始取消全关联,仅支持左关联和内关联。
2. 有动态扩展时,使用Excel函数或者格间计算,计算结果为什么不正确?
【原因】有动态扩展时,Excel函数或者格间计算里引用的单元格位置会跟着偏移,导致计算范围错位。
【解决方案】需要根据情况(相对位置和绝对位置)添加$符号来控制偏移。
例如下图用 XLOOKUP 做多条件查询,扩展后查询条件“大区”和“月份”会合并单元格,单元格偏移导致计算错误,所以需要插入行列使这两个字段不合并单元格;然后“大区”位于A4,纵向扩展时列不变、行号会变,公式里要写作$A4; “月份”所在的D1,横向扩展时,列变行不变,写作D$1; Sheet2里的查询表范围也会跟着偏移,也需要加$来固定数据范围。具体使用参考 正确使用Excel Lookup函数。
3. 为什么页面不做筛选时显示数据不全,加筛选条件后显示正常?
【原因】卡片仅支持展示前2万行,视图里数据超过2万行,或者多视图关联后数据膨胀超过2万行,导致数据展示不全。
【解决方案】相同维度的数据尽量合并为一个视图后再关联,或者在ETL里提前处理数据,保证聚合后数据在2万行以内。
4. 预览报错14000
【原因1】5.9版本把空单元格转换为模板单元格后,{{}}里面没有属性,无法识别;6.0版本做了优化,{{}}里面会填充上默认属性S=None。
【解决方案】把空单元格转换为模板单元格后,5.9版本需要手动选择至少一个属性。
【原因2】==后跟Excel函数或者表达式,需要在数据都铺展开后才开始计算,相比起=(边铺展边计算),计算具有滞后性,即先计算=,再计算==。如果=引用的单元格的计算方式为==,无法计算,预览会报错。
示例:下图中第一行格间计算里分子用的=,分母用的==,用=D4/E4计算报错;第二行3个单元格都只有一个=,=D5/E5计算正常。
【解决方案】先在单元格里输入Excel函数或者表达式,然后再手动转换为模板单元格(转换后自动变成==);或者手动修改保持所有单元格等号数量一致。
【原因3】同一行的模板单元格,扩展方向和父子关系设置异常,无法正常铺开。
【解决方案】仔细检查动态属性,确保不互相冲突。
5. 动态扩展后,空白单元格样式为什么没有跟着扩展?
【原因】整个模板使用C属性设置父格时,每个单元格都按照父格扩展,但空白单元格没有设置父格,不会跟着扩展。
【解决方案】把空白单元格转换为模板单元格,然后设置父格;或者在表头上使用R属性来圈定子格范围。
6. 百分比字段导出后用Excel打开后格式失效,变成小数了
【原因】百分比字段是在视图里新建的字段,选择的数值类型,但实际是文本字段,在模板里设置成了百分比,导出后Excel依然识别为文本,
【解决方案】在视图里选择跟函数或表达式相匹配的字段类型。
7. 同一个模板里做了上下多个报表,为什么扩展后部分行列错位了?
【原因】复杂报表布局默认逻辑:额外添加行和列,实际上插入的是额外的单元格,不是完整的行列。那么同一个模板里做多张报表,上下表头参差不齐时,可能会导致不同报表的行列错位。例如截图里,上面表列数比下面表少1列,那扩展后,最后一列里不受父格影响的表头和总计部分就会上移错位。
【解决方案】把上面列数较少的表后面的空单元格转换成模板单元格,并设置父格,使扩展后上下多张表扩展的总列数一致;如果使用的R属性,则需要修改R范围,使同一行后面列的空格(不需要转换为模板单元格)在R范围内。