当前所在位置: 首页 > 儿童教育 > 正文

使用Excel进行个人计划执行记录与统计分析

2023-01-26 餐饮美食网 【 字体:

一转眼,2 19年已至4月,自从年初立下flag后,便努力朝着实现它的方向奔跑。有些执行得很好,比如每天更新 Excel微信,坚持每天学习,而有些则还没有开始。是时候该督促自已全面开始了!于是,制作了一个简单的计划执行情况统计分析表,加上少量的VBA代码,以方便自已每周检视计划的执行情况,提醒自已哪些没做,要赶快补上。

下面,将创建过程与大家分享。有兴趣的朋友可以作为模板,或者与自已的实际情况相结合,稍作修改,用作自已的一个工具。

下所示为我使用的数据记录表,工作表名“个人计划执行记录”,每天晚上睡觉前或者第二天上午上班前,我会将一天的学习生活情况记录在此。

在列G中,使用了“数据验证”功能(即原来的“数据有效性”),可以直接在列表中选择分类,如下所示。

“数据验证”设置如下所示。

其中,“category”是定义的名称,代表下所示工作表“计划执行统计”的单元格区域B7:B21。

在中,单元格C4是统计的起始日期,命名为startDate;单元格D4是统计的结束日期,命名为endDate,这是我们在这个工作表中唯一要输入的两个数值。输入日期后,单击其右侧的“更新”按钮,自动统计这两个日期之间的相应数据。该按钮关联了下文所的用于实现自动统计的VBA程序。

单元格区域C7:D21是输出区域,通过VBA程序自动生成各分类上花费的时间和做的次数。

单元格区域B7:B21除作为上文介绍的分类下拉列表项来源外,还设置了条件格式,如下所示。当统计的次数不符合要求时,相应分类的字体会显示红色。

在VBA代码中,使用了高级筛选功能。工作表“个人计划执行记录”的单元格区域J1:K2是条件区域,关联了工作表“计划执行统计”中输入的起始日期(startDate)和结束日期(endDate)。从单元格M1开始,放置符合筛选条件的数据,如下所示。

代码将筛选出的数据与分类(category)比较,计算相应分类上事项所花的时间及开展的次数,并输入工作表“计划执行统计”中的单元格区域C7:D21。

完整的代码如下:

Sub planstatistics()

‘数据分析汇总工作簿变量

Dim wksStat As Worksheet

‘数据工作簿变量

Dim wksRecord As Worksheet

‘数据区域

Dim rngDatas As Range

‘筛选数据放置的区域

Dim rngFilterData As Range

‘筛选条件区域

Dim rngCriteria As Range

‘循环变量

Dim rng As Range

Dim cell As Range

‘数据区域的最后一行

Dim lngDataLastRow As Long

‘筛选的数据的最后一行

Dim lngFilterLastRow As Long

‘数据分析区域的最后一行

Dim lngLastRow As Long

‘计数变量

Dim lngCount As Long

‘设置工作簿变量

Set wksStat = Worksheets(“计划执行统计”)

Set wksRecord = Worksheets(“个人计划执行记录”)

‘设置被筛选数据所在区域

lngDataLastRow =wksRecord.Range(“A” & Rows.Count).End(xlUp).Row

Set rngDatas =wksRecord.Range(“A1:G” & lngDataLastRow)

‘初始化筛选条件和筛选值放置的区域

With wksRecord

.Range(“J2″) =”>=” & [StartDate]

.Range(“K2″) =”<=” & [EndDate]

.Range(“M1:S” &Rows.Count).Clear

Set rngCriteria =.Range(“J1:K2”)

Set rngFilterData =.Range(“M1”)

End With

‘筛选数据

rngDatas.AdvancedFilterAction:=xlFilterCopy, _

CriteriaRange:=rngCriteria, _

CopyToRange:=rngFilterData

‘获取筛选的数据

lngFilterLastRow =wksRecord.Range(“M” & Rows.Count).End(xlUp).Row

If lngFilterLastRow = 1 Then Exit Sub

‘清除统计表中已有数据

lngLastRow = wksStat.Range(“B”& Rows.Count).End(xlUp).Row

wksStat.Range(“C7:D” &lngLastRow).ClearContents

‘分析数据并将结果输入到数据分析工作簿

For Each rng In [Category]

lngCount =

For Each cell InwksRecord.Range(“S2:S” & lngFilterLastRow)

If rng = cell Then

rng.Offset( , 1) =rng.Offset( , 1) + cell.Offset( , -2)

lngCount = lngCount + 1

End If

Next cell

rng.Offset( , 2) = lngCount

Next rng

End Sub

代码中有很多“硬编码”,例如wksStat.Range(“C7:D” & lngLastRow)和wksRecord.Range(“S2:S” &lngFilterLastRow)中的单元格引用。如果工作表中的分类或列数据有增减,要作相应的修改。

代码的图片版如下:

结语:不必拘束于代码的优雅,也不必在意通用性,只要能够解决问题,快速实现自已的目的,适合自已就行,这就是VBA最大的好处。

阅读全文
相关推荐

如何自制蛋挞

如何自制蛋挞
1、倒入低筋面、黄油和水,揉成面团状,藏一小时后取出,抹上黄油卷起,包上保鲜膜冷藏半小时。2、取出,将面团切成一厘米的面团,放入模具内,用力按压,中间稍薄,外缘要比模具高,将蛋挞液倒入蛋挞皮中,放入烤箱里烤30分钟即可。

肉火烧面怎么和面

肉火烧面怎么和面
1、首先用温水把酵母融开,加入面粉,用手把面粉揉成非常软的面团,可以放一点熬好的猪油在面团里面。2、然后放在温暖的地方,盖上保鲜膜发酵至2倍大,发好的面团用手插入不回缩,就说明面团发酵好了。

奶茶几分糖好喝

奶茶几分糖好喝
1、不同的人对奶茶的口感要求是不一样的,一般来说,奶茶有三分糖、五分糖、七分糖三种不同的口味。2、女生一般都喜欢喝甜一点的,而男生则喜欢喝不那么甜的,七分糖的奶茶最好喝。

过桥米线是哪里的?

过桥米线是哪里的?
过桥米线是来自云南省滇南地区的一种有名特色小吃。过桥米线最早是在清朝就已经出现,距离现在至少有一百多年的历史啦!起源于建水县东城外锁龙桥西侧的鸡市街头处,有建水的特产草芽、地椒作配料,风味独特而远近闻名。深受广大美食爱好者的喜欢,不少人为此专门长途跋涉,只为尝

面霜和乳液的区别

面霜和乳液的区别
面霜和乳液的区别,相较而言乳液的水分含量要比面霜高,乳液质地要轻薄一些,乳液主要作用是保湿,滋润可以隔离外界干燥的气候,面霜既可保湿,又可美白,还能抗衰老,乳液的吸收快一些,而面霜吸收比较慢一些,因为液体的吸收速度都比较快。

怎么摘隐形眼镜

怎么摘隐形眼镜
在摘隐形眼镜之前,先用洗手液将手清洗干净,以免将细菌带入眼睛内,对着镜子,用右手中指轻拉眼睛下眼睑,左手中指轻拉眼睛上眼睑,让黑色眼球暴露在空气中,用右手食指和拇指轻触镜片的两边缘部分,向中间推使镜片拱起,再用两手指轻轻捏出镜片即可。

粉饼和散粉的区别

粉饼和散粉的区别
粉饼是呈压缩固体状态,多呈圆形或者方形,散粉则是细腻的粉末状,粉饼遮瑕力会比较强一些,可以湿用做粉底,或者用来补妆,而散粉则是定妆的效果,粉饼通常用在底妆的第一步,而散粉通常用在底妆最后一步。

冷烫和热烫的区别

冷烫和热烫的区别
冷烫和热烫的区别:冷烫对头发的要求是要在保温状态下才能给卷有个好的效果,而热烫是在干和湿的情况下都行,热烫烫出来的头发比较自然明显而有弹力,冷烫的头发风干后基本看不出来,并且发质会有点干。

高品质香水如何鉴别?用三步就可以解决

高品质香水如何鉴别?用三步就可以解决
1、看色泽以天然香料调制而成的高级香水,都有它本来的颜色,且大都是琥珀色或褐色,看起来很像宝石,比如,从茉莉、玫瑰或水仙等天然鲜花中所萃取的精油都呈黄色、褐白或绿褐色;此外,香水中所添加的魅惑香气物性香料也是褐色,苔类中的橡树苔是绿色,从树根或树根脂类中萃取的

如何去除黑眼圈

如何去除黑眼圈
去除黑眼圈首先可以用热毛巾敷眼,然后再用冷毛巾敷,十分钟就能让黑眼圈淡化的不那么严重,其次将去壳后的鸡蛋用无菌纱布包裹住,敷于眼部轻轻转动,可以急救去除黑眼圈,另外抹完眼霜后,用双手顺时针按摩,可以促进血液循环消除黑眼圈。
本文Tag