楼主 嘉昆2011 |
素材来源,在Chandoo先生的博客推荐下,对日期型图表进行仿制:- http://www.powerpivotpro.com/2012/08/explaining-the-powerpivot-calendar-chart-plus-an-updated-xlsx-download/
Rob Collie大师杰作交互式链接如下:- https://insights.hostedpowerpivot.com/sites/Demo/Pages/CalChart.aspx
发帖初衷: 1,引入一种新型的日期型图表,便于观测具体某天某时段具体发生的事件的频率; 2,利用PowerPivot(PP)的OLAP功能对透视表区域进行函数化,筛选出有效数据,建立模型; 3,Excel 2007就引入Cube系列函数,而论坛上少有人提及,用于图表分析的更是少之又少,在这抛砖引玉,希望得到大家进一步研究探讨。
图表知识点及原理分析: 1,函数:Cube系列函数,多单元格数组公式,时间函数,Rows/Columns函数 2,模板:日期模板(原作中把它形象称为DNA片段,一点也不为过)。在没有附加信息的情况下,对其模板引入时间函数进行修改,减轻对Cube系列函数的理解负担,同时减少原作中的参数数量。 3,其他:条件格式,名称标签
制作步骤: 1,将表格字段[Year],[Month]提交到PP中,插入切片器。 (注:也许有人会问为什么要利用PP,而不是PT呢?原因大体可以理解为:PT不能将透视表区域利用OLAP装换为Cube系列函数,PT通常是二维平面的,而PP是多维度的,可以从转换后的Cube系列函数看出有魔方多维的意味。本文重点不对原理做过多分析,重在图表,下面的Cube函数原理一样,重在应用,不做深入探讨在文中。)
2,制作模板 a,手动输入或是公式都行:- =COLUMNS($A:A)+(ROWS($1:1)-1)*7
注:有兴趣的朋友,可以想想模板中为什么是37。提示:某月第一天星期天开始与在星期六开始就很简单了。
b,读取切片器数据集,第一所选项,共选几项:- =CUBESET("PowerPivot Data",Slicer_Year,"Year")
- =CUBERANKEDMEMBER("PowerPivot Data",B16,1)
- =IF(B17="All",CUBESET("PowerPivot Data",Y_Prefix&"Children","YearSet"),CUBESET("PowerPivot Data",B16,"YearSet"))
c,读取切片器所选的依次选项,控制开关,起始位,该月多少天:- =IFERROR(CUBERANKEDMEMBER("PowerPivot Data",YearSet,C1),"")
- =IF(AND(C$1<=SelYearCount,$A12<=SelMonthCount),"Show","Hide")
- =IFERROR(WEEKDAY(DATE(D$1,$A13,1)),"")
- =IFERROR(EDATE(DATE(D$1,$A13,1),1)-DATE(D$1,$A13,1),"")
d,读取日期“DNA”片断,多元格数组公式:- =IF(F1="Show",DaysAbb,"")
- =IF(F$1="Show",CalNDA-H1+1,"")
对区域进行条件格式判定:不在1和该月天数上,格式设定为“;;;” 完成一个日期DNA片断的读取后,复制,粘贴其他即可。
注:Cube 系列函数可参数官方给出的解释,全称“多维数据集函数”。- http://office.microsoft.com/zh-cn/excel-help/HA102753237.aspx?CTT=1
仿制效果:
原文参考:- http://www.powerpivotpro.com/2012/08/introducing-the-calendar-chart/
- http://www.powerpivotpro.com/2012/08/explaining-the-powerpivot-calendar-chart-plus-an-updated-xlsx-download/
其它参考,微软官方给出PP在BI(商业智能)方面的典型例子,中文高清视频:- http://office.microsoft.com/zh-cn/excel-help/HA010288281.aspx?CTT=1
附件:
CalendarChart.rar
欢迎留言探讨Cube系列函数。 |