怎么用 Numbers 可视化展现初生宝宝拉粑粑💩的记录

记录初生宝宝拉粑粑💩有什么意义?没什么意义,just for fun👻

我们的目标是画一张这样的图:

竖轴是小时数,横轴是天数。如果小朋友哪个时间拉粑粑💩了,对应的方格会自动标绿

下面我们开始吧。首先,你得有数据,弄到一张表格上:

序号 粑粑💩发现时间
0 2017-10-28 23:29
1 2017-10-29 8:30
2 2017-10-29 12:00
3 2017-10-29 18:00
4 2017-10-30 1:10
5 2017-10-30 18:00
... ...

然后是做一些数据规整。

  1. 添加一列,用DATE(YEAR(...), MONTH(...), DAY(...))提取日期;
  2. 添加一列,提取距离出生日期的天数;
  3. 添加一列,用HOUR(...)提取拉粑粑💩的小时数;

现在,表格变成了这样:

序号 粑粑💩发现时间 粑粑💩间隔 date 出生🐣 查便时间
0 2017-10-28 23:29 10/28/17 0 23
1 2017-10-29 8:30 9h 1m 10/29/17 1 8
2 2017-10-29 12:00 3h 30m 10/29/17 1 12
3 2017-10-29 18:00 6h 10/29/17 1 18
4 2017-10-30 1:10 7h 10m 10/30/17 2 1
5 2017-10-30 18:00 16h 50m 10/30/17 2 18
... ... ... ... ... ...

然后,新建一张表格,画出「24×天数」的长条。现在的任务是让 Numbers 自动读取前一张表格的数据,然后讲相应方格标绿。

我们注意到:可以将前一张表格的最后两列作为坐标。我本来想分别读取X坐标 & Y坐标,但弄了半天,放弃了。最后决定添加一个辅助列hash,以编码坐标:

    = X × 48 + Y

这样,就可以用MATCH(...)定位坐标:

IF(
    IFERROR(
        MATCH(C$2×48+$B3,$hash,0),
        FALSE),
    " ",
    "   ")

这句函数的意思是:我们将方格的坐标编码,看看有没有这个数据点;如果查到了,返回「1 个空格」,否则返回「3 个空格」。之所以选用空格,是为了不显示出来。

现在就可以用「Conditional Highlighting」把「1 个空格」的方格标绿。

好了,现在只要录入数据,图标就会自动将相应方格标绿了👻


如果我们希望在标绿的同时能够根据数据大小标出深浅来,还可以进一步改进。

首先,将函数改为:

IF(
    COUNTIF($hash,C$2×48+$B3)=0,
    "",
    IF(
        COUNTIF($hash,C$2×48+$B3)=1,
        " ",
        IF(
            COUNTIF($hash,C$2×48+$B3)=2,
            "  ",
            "   ")))

不过就是一个switch语句,只是 Numbers 没提供,只好用这种丑陋的方式实现。

然后,依次将「1 个空格」「2 个空格」「3 个空格」标示成不同深浅的绿色就好了👻

这是我家宝宝喂奶🍼的时刻分布图😪
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 谈到表格软件,习惯性的会拿Numbers和Excel进行比较,不过在使用Numbers一段时间以后会发现,它们属于...
    scomper阅读 81,673评论 33 105
  • Numbers 中的对象 在前面的章节中,提及过 Numbers 是按照对象来进行操作的。这个概念在计算机编程中是...
    i7studio阅读 4,620评论 0 6
  • 六、可视化 原文:Visualization 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译...
    布客飞龙阅读 1,304评论 0 2
  • 如果能够将我的思念传达给你 水面上飘散着的琥珀色枯叶 也将会化作音符随风飞舞 左手捧着的月光的凝露 静静地与眼泪融...
    qtpifan阅读 575评论 0 0
  • 你好,我叫狐狸。 我平常不是一个话多的人,但从接触到这个app开始,我想每天都写一写自己的生活。 我的文笔并没有很...
    窝里爬出来的狐狸阅读 205评论 0 1