Excel之PowerQuery 将每个人的家庭成员横向展开
网友提问:

放大图片:

我用的是最原始的思考过程给你写的代码,因为PowerQuery你目前还没有熟练掌握,不适合上来就传递参数。1+2+3+4 虽然用等差数列计算更好,但是逐步计算的过程必须要先掌握。这就是为什么不在小学一年级讲等差数列的原因。
也是我为什么不在《火力全开》中讲DAX原理的原因,九年义务教育的根本目的是为了保障适龄儿童、少年接受义务教育的权利,保证义务教育的实施,提高全民族素质。并不是要大家竞争,并不是让谁在初三之前退学,竞争是在中考时比分数,但是所有人都要完成九年义务教育。我讲的《火力全开》就是让每个人都能接触到新的软件,并不是想吓跑谁,不想继续学可以降低你的需求,简化你的表格。就好比初三毕业后,你可以从事流水线、厨师、司机、超市理货、三通一达等工作,你想找一个不卖力气风不吹雨不淋日不晒的工作可以读高中考大学,要求再高可以考研... 你觉得《火力全开》不够你解决问题的标准,可以继续学习《DAX神功》文字版。但是,任何人无权歧视零基础的小伙伴。你可以比别人强,但是你不能剥夺新人学习的权利。
欢迎所有人把自己的方法发出来,但是不要歧视,特别是像那种说小学没讲等差数列,让人家从1+2+3+4...是坑人这种话。大家懂我的意思,我们都希望看到的是大家的方法,而不是藏着自己的方法去说那些不该说的话。
为什么大家都不建议玩盗版游戏,因为如果中国买正版游戏的人稀少,游戏公司将来可能就不再发行中文游戏了,如果某人不玩正版请不要干涉别人买正版。同理,很多人不喜欢中文配音的电影,他可以看原声,但是不要到某奇异、某讯、某酷的国配电影中发那种弹幕,不要反对国配,学语文不是用来打擦边球的,如下图

第1步:导入原始数据到PowerQuery

第2步:对指定列向下填充

当然"学生姓名"这里可以写成动态,比如取表的表头,返回一个列表,取列表第一个元素,这样就动态了。我就不演示了,这些很基础,有需要你就用。
第3步:拼出我们需要的表头样子

第4步:将上面的样子通过Text.Split转成列表

第5步:计算每个List中的元素数量
其实熟练运用PowerQuery的人没必要增加这个列,直接就可以筛选了,这里是照顾新人

第6步:拿到表头要显示的效果

第7步:拿到每个组对应的数据

第8步:展开时发现表头都是固定的


蓝色的线表头要显示的样子,我们有了,可是Column1...Column6是动态展开我们没有
所以,我们删除展开这一步,做动态表头,方法我们之前多次讲过

第9步:写展开代码

第10步:上载后的结果


PowerQuery合集:https://www.bilibili.com/video/BV1oa4y1j75e