使用 Excel 进行柳比歇夫式时间记录

折腾背景

使用Excel 进行复式记账 以后,(更加清晰的明了自己悲剧的财务状况,目光自然投向更加宝贵和稀缺、也更易滥用和虚掷的——时间),一直在考虑是否能像复式记账一样便捷、准确、清晰地记录时间的支出(时间无收入,或者说,时间收入恒定,每人每天24小时)。

最终在柳比歇夫那里找到了答案(详见《奇特的一生》摘录, 《奇特的一生》生动的描述了柳比歇夫和他的时间统计法,这位科学的圣徒、时间的主人和奴仆及其神奇而又苛刻的时间之书)。于是,参考已经良好运行数月的 Ledger.xlsm ,打造了一个时间记录工作簿 Timer.xlsm——柳比歇夫式时间记录表(下文简称 Timer )

模板说明

表格模板

Dropbox 预览及下载 (弹出 Dropbox 注册面板可关闭)

百度网盘下载 密码: kbeg(仅能预览 Log 工作表,提示页面不存在请刷新)

工作表说明

Cat 分类

时间分类决定了统计的粒度,可根据需求灵活定制。例如需要对全天的零碎时间进行详细的了解,可把所有时间分类细化;如果要寻找时间黑洞,可以把容易出现时间黑洞的时间分类细化。可在分类名前添加数字序号以调整报表中的分类顺序。

睡觉 0睡眠 0睡眠
步行 1运动 1运动
学习 2学习 2学习
折腾 3折腾 3+
工作 6工作 3工作
中饭 7杂务 7杂务
起床 9挥霍 9挥霍
其他 其他 其他

Log 日志

B:B 日期 加入 VBA 代码后可自动填充,注意凌晨后睡觉的话,日期仍应设置为上一天,以保证报表中睡眠时间统计更加直观。

C:C 时间 (加入 VBA 代码后)实时记录可以自动填充,大部分时候需要手动填充,

D:D 事件 需手动填充,注意与 Cat 分类表匹配

E:E 备注 可填写具体的行动内容或自由发挥

F:F 持续 根据 C:C 时间列自动计算。

G:G 质量 辅助列,可对行动(如睡眠、工作)质量进行评分,方便加权统计或回溯参考

H:I 分类 根据 Cat 分类 和 D:D 事件列自动匹配

J:J 持续 根据 F:F 自动换算,以小时为单位

Date Time Event Notes Duration Quality Hour
2/4 22:30 睡觉   450   0睡眠 0睡眠 7.5
2/5 6:00 起床 万恶的周一,赖床一小时 60   9挥霍 9挥霍 1.0
2/5 7:00 杂务   60   7杂务 7杂务 1.0
2/5 8:00 步行   30   1运动 1运动 0.5
2/5 8:30 上网 无心工作,随意闲逛 210   8信息 8信息 3.5
2/5 12:00 中饭   60   7杂务 7杂务 1.0
2/5 13:00 rss   30   8信息 8信息 0.5
2/5 13:30 打盹   15   0睡眠 0睡眠 0.3
2/5 13:45 weibo 仍然不想干活,继续划水 75   8信息 8信息 1.3
2/5 15:00 上网   60   8信息 8信息 1.0
2/5 16:00 工作 嗯,终于能干活了 120 0.5 6工作 3工作 2.0
2/5 18:00 步行   30   1运动 1运动 0.5
2/5 18:30 杂务   60   7杂务 7杂务 1.0
2/5 19:30 论坛   30   8信息 8信息 0.5
2/5 20:00 美剧   150   a娱乐 9挥霍 2.5
2/5 22:30 睡觉   450   0睡眠 0睡眠 7.5

Rep 汇总

Log 日志的透视表,右侧备注栏可在每日回顾时记录

Event (全部)                      
                         
求和项:hour 列标签                      
行标签   0睡眠 1运动 2学习 6工作 7杂务 8信息 9挥霍 a娱乐 总计   备注
2018/2/4   7.5               7.5    
2018/2/5   7.8 1.0   2.0 3.0 6.8 1.0 2.5 24.0   万恶的周一
2018/2/6   7.8 1.0   7.8 3.8 1.0 0.3 2.5 24.0   ……
2018/2/7   7.8 1.0 3.0 7.8 3.8 0.5 0.3   24.0   时间利用的不错
2018/2/8   7.8 1.0 3.0 7.8 3.8 0.5 0.3   24.0   时间利用的不错
2018/2/9   7.8 1.0 3.0 7.8 3.8 0.5 0.3   24.0   时间利用的不错
2018/2/10   10.3 1.0   7.8 3.5 0.5 7.5   30.5   糟糕……
总计   56.5 6.0 9.0 40.8 21.5 9.8 9.5 5.0 158.0    

VBA 代码

(因安全原因请自行补充,添加 VBA 代码说明详见 使用 Excel 进行复式记账

自动填充日期(时间)

实时记录 在 Event 列新输入内容时,会以当前日期时间自动填充日期栏和时间栏

补充记录 在 Time 列新输入内容时,会以上一行日期栏内容填充日期栏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Change(ByVal Target As Range)
    With Sheet2
        If Target.Column = 4 Then
            If Target.Offset(0, -1) = "" Then
                .Cells(Target.Row, 2) = Date
                .Cells(Target.Row, 3) = Time
            End If
        Else:
            If Target.Column = 3 Then
                If Target.Offset(0, -1) = "" Then
                    .Cells(Target.Row, 2) = .Cells(Target.Row - 1, 2)
                End If
                Else: Exit Sub
            End If
            Exit Sub
        End If
    End With
End Sub

自动刷新透视表

切换到 Rep 后透视表自动刷新

1
2
3
Private Sub Worksheet_Activate()
        Sheets("Rep").PivotTables("数据透视表4").RefreshTable
End Sub

辅助工具

虽然 Excel 公式和 VBA 代码能减轻部分工作量,但还是觉得太麻烦了?不用担心,还有各种强大的辅助工具

PC 端被动记录 ManicTime

(安装之后就不用管了)软件会详细记录桌面每一个窗口的标题和起止时间,以及离开电脑的准确起止时间,免费版就够用,收费版的自动标签功能不错,但对 Timer 作用不大。另外需要提醒的是,免费版没有密码保护。统计功能相比 Timer 较弱,毕竟提供的视图和方案有限(这也是其他软件的通病,虽然操作便利一些,但自定义程度远逊于 Excel),而且无法涉及不在电脑旁的时间。

移动端被动记录 LifeCycle(iOS)

应用会默默地根据地点(其实是wifi和移动网络)的变化自动汇总形成每天的日程表,加入常用地点标签后可以清晰的查阅设备任意时间的所处位置(移动情况只会汇总成一段时间记录),提醒同上,(免费版)没有密码保护。

移动端主动记录 Workflow + Evernote (iOS)

Workflow 脚本 实现点击 Widget 按钮自动录入时间到 Evernote,AFK 状态可在需要标记的时间界线处打卡,这样回头补充记录时有准确的时间节点。

记录说明

Timer 记录的时间是连续整体

因为持续时间是每一行的时间减去上一行的时间,所以整个日志的时间是无限连续的整体,虽然可以进行额外的处理,但最好将所有的事件时间全部记录,这也符合 Timer 设计的初衷(和柳比歇夫的时间统计法有些出入)。

来不及 / 忘了记录怎么办

虽然电脑端的行为通过 ManicTime 很容易回溯,但回溯无法自动填充时间,所以建议在时间有限的情况下用空格键什么的在 Timer 上打卡(加入 VBA 后,在 D 列输入任何内容都会自动填充当前日期和时间)标明时间界线,回头可根据 ManicTime 记录补充事件和备注等内容。

电脑以外的事件,LifeCycle 对相同位置的行为完全无解,只能依靠 Workflow 打卡,或者根据之前类似行为及回忆估算。

复合行为如何分类

复合行为选择相对重要的分类记录,例如步行上班,步行属于锻炼,对于运动时间回顾更加重要,所以记入步行。通勤+阅读,如果阅读时间达到一定程度,可以记入阅读,但注意重要时间分类(如学习、阅读、锻炼、睡眠)等应尽量计算净时间,将毛时间放入杂务等分类。

与其他系统的衔接

与番茄钟的衔接

番茄工作法过于要求完整的番茄,虽然有利于保持大块时间的专注,但对零碎时间的处理比较乏力,特别是被频繁中断的时间,而实际生活中中断往往无处不在。Timer 的粒度更小而跨度更大,更适合频繁变化更迭的时间记录。

使用 Timer 后,可以取消番茄钟和任务之间的联系,只用其提醒工作间隔的休息时间(可怜的 Pomodone……),利弊因人而异,好处是不用再为番茄钟的任务选择、计时中断头痛了(如果中断已经包含休息了,甚至可以直接重置计时)。

与 GTD 的衔接

Timer 的主要作用只是时间向的记录和回顾,计划刚好用 GTD 来处理,两者并行不悖,甚至相辅相成。

和 Toggl 的差异

之所以提到 Toggl,是因为两者在某些方面非常相似,都能记录详细的事件时间,不同的是,Toggl 只能实时记录,无法补充,对 AFK 的时间更是无能为力。而 Timer 可以方便灵活的编辑和补充记录。

为什么要如此麻烦

「噢,路齐利,一切都不是我们的,而是别人的,只有时间是我们自己的财产,」赛纳卡写道,「造物交给我们,归我们所有的,只有这个不断流逝的、不稳定的东西。就连这个东西,谁只要愿意,都可以把它从我们手里剥夺走……人一点也不珍惜别人的时间,虽然它是唯一再怎么想也无法收回的东西。你可能会问,我对你训诲开导,我自己又是怎么做的呢?老实说,我的所作所为同那些挥霍浪费然而有条理的人一样,对自己的每一笔支出都要记账。我不能说我一点也没有浪费,但我总是心中有数,我浪费了多少,是怎么浪费的,为什么浪费的」