美文网首页首页投稿(暂停使用,暂停投稿)
怎么用 Numbers 可视化展现初生宝宝拉粑粑💩的记录

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

作者: Pope怯懦懦地 | 来源:发表于2017-11-04 11:25 被阅读104次

    记录初生宝宝拉粑粑💩有什么意义?没什么意义,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 可视化展现初生宝宝拉粑粑💩的记录

        本文链接:https://www.haomeiwen.com/subject/wjjfmxtx.html