2017年12月17日 星期日

[google sheets]取特定日期區間的Data

因為開會需求,有時候會想抓這禮拜有更新的Data進來看
但又不想要為每個人員特地開一張表,這樣表很多很亂
最後結論是一行複雜的程式碼

=query(INDIRECT("'"&B1&"'!A3:AC"),"select * where A > date '"&text(datevalue(TODAY()-D1),"yyyy-mm-dd")&"'")

INDIRECT是要用變數的方式去取資料會用到
原本是Sheet1!A3AC但是為了可以動態改變Sheet Name i.e.Sheet1 所以要改為INDIRECT("'"&B1&"'!A3:AC"),B1裡面放'Sheet1'。另外,如果sheet name不是純英文在使用時要用'包覆sheetName e.g.'總表'!A3:AC

query 日期
要針對日期做比較 query code 要是
where A > date '2000-1-1'
因為我們原生日期很少長像'2000-1-1'這樣,所以需要轉換一下
'"&text(datevalue(TODAY()-D1),"yyyy-mm-dd")&"'
TEXT()               格式化輸出,將日期格式化成yyyy-mm-dd的格式
DATEVALUE()  將資料轉為日期格式
TODAY()            取得今天日期,減去D1之後表示D1天內的Data

沒有留言:

張貼留言