热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【理解】运用数据透视表制作三栏账

今天学习了三栏账制作出自书本《Excel2010数据透视表应用大全》,要我说在全书中,实现这个事件步骤还是不少的。然而要写一篇小文章的关键在于,对于我个人来说这个三栏账对Excel的公式和功能的

今天学习了三栏账制作出自书本《Excel2010数据透视表应用大全》,要我说在全书中,实现这个事件步骤还是不少的。然而要写一篇小文章的关键在于,对于我个人来说这个三栏账对Excel的公式和功能的应用还是很丰富的,并且很有用。以下就是实现效果,高亮部分是自己觉得需要注明的地方。


三个红框是想着重介绍的第一部分,

首先讲借贷那个,其实它就是个表格自定义格式的应用,具体公式如下。

[>0]"借";[<0]"贷";"平"
再说它隔壁那一竖排,为啥没有正负号呢?还是因为自定义格式。

#,##0.00_);#,##0.00_)
最后那个白底二级目录其实呼应了蓝底。蓝底的二级会因为白底的二级而改变。这个主要是VBA实现的啦。但是白底的那个二级目录可以因为选不同的一级目录而改变哦。它应用了数据有效性的功能,使用了List格式。而这里真正比较tricky的其实在于这个变动的list是怎么来的呢?其实这是使用了名称管理器定义好了这个list如何随一级目录改变的。

以下截图是科目表,即一级科目与二级科目的关系。


名称管理器里面要定义一个

code2=OFFSET(科目表!$B$1,MATCH(三栏账!$C$6,科目表!$B$1:$B$998,)-1,2,COUNTIF(科目表!$B$4:$B$998,三栏账!$C$6))
公式解析: 先定位好抓list的位置,是从科目表的B1开始。让三栏目账的一级目录算选的项目来match科目表里面的一级目录的位置。找到以后往B栏的右边移两步,也就到了二级科目了。然后这个list的长度就是最后的参数,数一下这个一级目录的步长,取下一级目录的步长即可。二级目录的List也就全了。

最后再注明一下白底二级目录怎么带动蓝底二级目录。代码本身不难。但要小心那些乱码处(如果Excel版本是英文那么 km2 = "All",是中文的话应该是"全部")。其他几处乱码也是这个问题。

Sub select2()
Dim km2$
Application.ScreenUpdating = False

If Range("i6") = "" Then
km2 = "È«²¿"
Else
km2 = Range("i6")
End If

ActiveSheet.PivotTables("Êý¾Ý͸ÊÓ±í1").PivotFields("¶þ¼¶¿ÆÄ¿").CurrentPage = km2
Application.ScreenUpdating = True

End Sub




推荐阅读
author-avatar
手机用户2502860763
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有