历史版本20 :行列转换之行转列 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:


目录:

1. 概述编辑

1.1 版本

FineBI 版本JAR 包
5.12020-02-28

1.2 应用场景

很多时候用户也会从不规范的数据源中提取数据到 FineBI 中,比如将 Excel 文件导入。而 Excel 文件的字段和展示样式并不固定,往往会与规范化的数据库表数据不能很好的兼容合并,导入 Excel 后就有可能用到行列转换,将很多行展示数据转化为规范的列字段进行分析。

1.3 功能介绍

行列转换是指将关系数据表中的行转换成列或者列换换成行,简单来说就是讲转换前数据表中某个字段的所有值取出来,配以某个指标字段,成为新表的列名。

数据下载:学生成绩.xls

2. 示例编辑

2.1 操作思路

学生成绩表保存了学生成绩,每个学生都有多门课程的成绩:英语、语文、数学等,如果保存在 FineBI 业务包中每人将占据多条记录,即每人分学科分别存储。如下图所示:

1582020468731799.png

而将不同学科的值作为字段名,保存的学生信息表每个学生只会有一条记录,实现的是如下图的效果。

222

2.2 导入源数据

参考 添加数据表 将源数据表学生成绩表添加到 FineBI 的业务包中,添加并更新后在数据准备>业务包中可以看到该表的信息。如下图所示:

64.png

注:在添加完成表以后需要进行数据更新操作,在更新完成后才能进行后续行列转化处理。

2.3 行列转化

1)选择数据表设置中的编辑按钮,对该表进行编辑处理。如下图所示:

1582023049792404.png

2)进入数据表编辑界面,进行字段设置,默认选择全部字段。在左侧字段处理操作流程处点击+,选择行列转换。如下图所示:

1582023163129766.png

3)进入行列转换设置界面,需要进行栏次名、原始指标字段和识别生成指标所在列的根据字段的选择。如下图所示:

40.png

  • 根据字段识别生成的指标所在列:是指数据表中根据需要转化的字段值重复的字段,在之前的学生成绩表中,姓名就根据“需要被转化字段-科目”重复出现(即因为有多个科目的成绩导致每个人重复出现),那么该下拉框中的字段可以选择姓名,该选项可以选择最终显示时需要唯一值的字段;

  • 栏次名是指需要被转化的行字段名称,在本示例中,是指科目字段;

  • 原始指标字段:原始数据表中包含的字段都会出现,在本示例中,需要选择成绩字段;

  • 生成的指标字段:是指被转化字段所对应的值字段,在本示例中,是指每个科目的成绩字段值;

4)设置完成后,效果如下图所示:

383.png

注:在选择栏次名下选择字段后默认勾选该字段下全部值,若选择的栏次名字段下 数据更新 有新增的字段值,新增字段值默认不勾选。如有需要,可再次进入编辑界面手动重新勾选。

5)点击保存该行列转换设置。进入更新信息进行单表更新。如下图所示:

1582077432701350.png

2.4 效果查看

数据更新成功后,在数据预览处,可以看到转化成功的列字段:学科-成绩。如下图所示:

29.png

每个学生都变成一条数据记录成绩,而不同科目都变为新的字段来保存成绩,完全达到需求。

行列转换的列转行操作请参考 行列转换之列转行 。