記錄初生寶寶拉粑粑??有什么意義?沒什么意義,just for fun??
我們的目標是畫一張這樣的圖:
豎軸是小時數,橫軸是天數。如果小朋友哪個時間拉粑粑??了,對應的方格會自動標綠
下面我們開始吧。首先,你得有數據,弄到一張表格上:
序號 | 粑粑??發(fā)現時間 |
---|---|
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 |
... | ... |
然后是做一些數據規(guī)整。
- 添加一列,用
DATE(YEAR(...), MONTH(...), DAY(...))
提取日期; - 添加一列,提取距離出生日期的天數;
- 添加一列,用
HOUR(...)
提取拉粑粑??的小時數;
現在,表格變成了這樣:
序號 | 粑粑??發(fā)現時間 | 粑粑??間隔 | 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 個空格」標示成不同深淺的綠色就好了??
這是我家寶寶喂奶??的時刻分布圖??