Google Spreadsheet Query ImportRange

@Merge

由於公司每週五都要有人花數小時去整理team member的工時跟週報,用的方式卻是非常傳統的複製貼上,覺得太浪費時間,所以用Google Spreadsheet的一些函數來改善這些問題

已知問題

  1. 現有Excel template 大家都不同,加上office版本不統一,有的2010有的2013等等

  2. 專案名稱不統一,由於是自行修改的,所以常常會出現一個專案跑出名稱不同

  3. 時數不易合併計算

統一表單

首先第一個問題,就是開一個統一格式的表單給大家去填,但表單內容要容易統整,一開始本來想說同一個worksheet開不同sheet給大家填,但這樣所有人都看的到你的週報,會有隱私問題,最後還是一人開一張worksheet

專案名稱

@統一專案名稱

如何將專案名稱統一,而且未來要更改的話也方便更改,作法就是用下拉選單,但由於下拉選單無法從其他worksheet匯入,只好在每個人的worksheet裡面多開一個sheet去跟總表的同步專案名稱

這邊使用的是IMPORTRANGE

=IMPORTRANGE(“YOUR-SHEET-KEY”,”ProjectName!A1:A30”)

使用函數

使用函數有:Query, ImportRange, Where

再開一張總表把所有人當週的Man hour跟report收進來,在這邊卡了一點關,原來在這邊的不用A,B,C去代表欄位,要用Col1, Col2, Col3等代表A,B,C。

避免程式太長,先開了張UserList去記錄每個人worksheet的key,Where則是新增條件選擇當週,在這邊不知道為啥不給直接用

where = weeknum(today())

只好把weeknum寫在另個ProjectName這張sheet的C1,如下方這段:

=query(IMPORTRANGE(UserList!B1,”report!A2:E1000”),”where Col3 contains “&ProjectName!C1&””)

Reference

Query Seperate Spreadsheet With Import Range