Excel作为一款数据领域的万物互联工具,连接一切外部的多种多样的数据源。将数据带到Excel的环境中,再进行数据处理、转换、统计分析等工作,是众多表哥表姐们每天都在经历的事情。 能最快速将其他来源数据,加工成日常所使用的数据结构,将是非常必要的技能之一,此篇介绍数据库中常见的父子结构的数据表,将之加工成我们能使用的数据结构,增加额外属性,排版美观化等。
在数据库领域中,数据存储以表为单位,数据存储为避免数据冗余和数据维护的合理性,有许多的父子关系的数据表存在,若直接读取此类数据,将非常难以对其进行下一步的数据信息提取加工等步骤,如下图:一般的原始记录为ID列及其ID列对应的父级ID列信息。同时带上一列描述信息,供人来识别其含义。
父子结构表-子父关系
这种结构的表,数据存储简洁,把该有的信息都存储到位了,如上图的A001是总部,最顶级,其不再有父级关系,pid为空,而A001下面有A002至A007的直辖关系的公司,然后再下来A007下面也有其管辖的其他公司如A008、A009等。
用人工的方式来少量解读这样的父子层级关系,还算可行,如大批量地处理,这种结构将很难进行分析利用,需要展开更多的额外信息附加到其他列中供筛选查询等调用。如下图所示。
更丰富信息的父子结构表
配合Excel自身的字体颜色、字号、筛选排序等操作,在上图的信息中,已经极大的丰富了对父子表所要的读取查询的信息。
例如,想查询A006下属的所有公司,仅需要关系链列筛选包含A006字样即可。
筛选A006及其下属的公司结构
同时还可以只查询最底层的叶子结构的记录数,使用【是否叶子级】列来筛选即可完成。
同时【组序号】列更可以查看不同树下的组织结构图(一个顶级结构为一棵树,如下图,示例数据为2棵树,两组的父子关系)
列表中出现两组数据,两棵父子关系树
以上示范的最终效果,经过【Excel催化剂】插件的形式,赋能普通用户,一键即可生成所需效果。
功能入口
列名不一定需要和示例列名一致,记录列数也不限,仅需核心的id列和pid列为必需列。
如下图:左侧为源数据列的配置,右侧为需要返回的额外列信息。
配置界面
同样采用过往的新建智能表和覆盖智能表原理,将数据生成至智能表中,供后续透视表等调用。
因生成的数据表,有【层级深度】一列,可利用此列的信息,对首列内容进行缩进处理,使用另外的缩进功能。
增加缩进功能入口
生成缩进量
缩进仅为单元格格式,真正单元格的内容值不改变,即没有真实的空格存在,数据是干净的,仍然可以用于其他关联引用操作等。
有缩进后的效果
当然有排版可视化效果更深入的话,可充分利用Excel的灵活排版功能,通过字体大小、字号、颜色等方式来作进一步的美化操作。
甚至借助【层级深度】列的内容属性,进行条件格式应用,对整行自动化格式设置。
单元格简单美化
有时已经缩进好的内容,反读取出其缩进量,本次使用自定义函数实现,最终得到的值和【层级深度】一致。
自定义函数读取缩进量
千万不要低估你手中的Excel的威力,也千万不要觉得自己学习Excel的能力用不起来,借助Excel催化剂+普通用户掌握的Excel一般技能,可以做出许多专业IT程序猿或专业数据分析人员都会刮目相看惊人的效果。此篇的父子结构的转换,实属惊艳之作。
此篇的父子结构,数据源为子父关系,下篇再来一个父子关系的,应用场景也是十分广阔,特别是制造业中的物料管理的BOM物料分解,敬请期待。