最近上白老师的课特别有收获,听到计算机不喜欢二维表,要把它转换成一维表,举例是课程表的二维表形式,需要转换成一维表,忽然就想起自己正在给吖安排幼小衔接的网课,记录的是一维表,有没有办法能将一维的数据源形式表再转换变成二维的课程表呢,说干就干,好奇心驱动我完成了如下实验,结果是成功了,先看效果图。
    一维表数据源:
    1.jpg
    华丽丽的变身成如下周历图
    2.jpg
    【步骤1】新建了一个课程安排的sheet,直接就开始录入基本信息,包括课程名,课程主题,课程内容,上课时间,节次,因为要以周来做安排,所以我录入了星期安排和周安排。把这个表格加载到power query里面,进行了一下数据整理,这样下面增加记录的的还时候也会自动自动识别到数据源里;
    1.gif
    【步骤2】这个时候我试着用透视表做了一下周历表格,发现最后值只能是计数或者求和等,不能显示我想要的值,于是导入到power pivot里,尝试建立了一个计算列,默认是黑色底纹,名字起的是上课星期内容(取名困难),意思是星期几对应那天课程的内容,是由课程主题-课程内容连接而成,该计算列的公式是: =’表1’[课程主题/目标]&”-“&’表1’[课程内容];
    2.gif
    【步骤3】建立度量值“上课内容星期安排”,用公式 =MIN(‘表1’[上课星期内容]),意思就是取到我想要的星期几上的课程主题和内容(的最小值),录屏是用的管理度量值是因为我已经创建好了,实际操作时点新建度量值就可以了。
    3.gif
    【步骤4】用这个数据模型创建透视表,然后把度量值“上课内容星期安排”(前面带有fx符号)放到值,然后把星期安排拖到列,课程名和节次拖到行,再增加一个周安排的切片器,基本上我想要的课程表就出来了,再调整一下表样式,还有手动排序一下,其实基本就出来了,解决了之前透视表无法显示出我要的课程值的问题。
    4.gif
    【步骤5】为了美化,我想起了跟日历模版联动,把透视表可以转换成函数,就是在数据透视表工具菜单里“OLAP工具”下拉选择“转换为公式”,日历表里面都会变成变成函数,行列标题是CUBEMEMBER函数,值是CUBEVALUE函数。
    5.gif
    【步骤6】在日历模版(网上搜的)中,重新排版,把对应位置放上对应的公式,也可以把转换成公式的透视表放在表格底下隐藏即可。
    6.gif
    【步骤7】完成后的周历,可以两步完成内容排版,第一步切片器选择正确的周,第二步调整日期,大功告成。
    7.gif

    • 有兴趣的话,数据源文件也上传到这

    课程表安排实例V4.0.xlsx