部門為了配合公司導入KPI政策


重新開始檢視各同仁的工作效率



為此,在Google Grive 開了一個Spreadsheet

將每次的工作項目分配,列在上面

並且規定了,各項工作的相關細節


包含工作內容 / 負責人 / 執行同仁 / 工作指派日 / 預定工作日……

整個結構如下圖


非常典型的表頭設計,特別是,這邊有使用合併儲存格





因為職務分配,我有時候會是負責人這個角色(F欄位 )


為了檢視我負責的所有工作事項


我在不影響總表的情況下,另外開了一個Sheet,準備把我的資料篩選過來這邊


假設,表頭沒有合併儲存格


其實只要在最左上角的儲存格,打上這段語法,就可以完成篩選工作


=QUERY(部門工作清單!A:P;”SELECT * Where F like ‘%Chieh%’ and N=’Open'”)


這段Query的概念其實跟SQL語法沒兩樣,用起來的概念是一樣的


意思大概是

  1. Query(部門工作清單 / 從部門工作清單(Sheet) 
  2. A:P / 取出A~P欄位的資料
  3. Select * / 選取步驟二,A~P欄位的內容資料
  4. Where F like ‘%Chieh%’ / 篩遠F欄位有包含Chieh的字串 (我的名稱縮寫Chieh)
  5. N=Open / 代表這個工作項尚未被完成 (所以我必須要關注一下 XD)
這個就是篩選過後的資料,也由於我是新開一個Sheet,所以每次只要我切換到這個Sheet
=Query….這段語法就會自動執行一次,保證看到的時候,都是最新的資料

參考上圖的左上角=> =Continue(A1,9,5)

在這邊,每個欄位的資料都是”參考”來的,所以,你在這邊進行任何的編輯,都是無效的

記得要到參考來源,”部門工作清單” Sheet 進行修改 !

到這邊,還缺個小小的美化功能
每一行都是空白背景,其實分不清楚所謂的Header跟Body

特別是Body還希望能夠依據序號,分不同顏色背景色,以利閱讀
下面這段Code,我是改自於Script Gallery的一個範例檔案
(用Alternating Row當關鍵字找到的)
我重新定義了一下顏色,跟背景色換色規則
改用序號這個欄位,當作判斷依據,基號一種背景色,偶數一種背景色
  1. 取目前正在被開啓的Sheet
  2. 找到有多少Rows跟Columns被使用中
  3. 每Row都檢查第一個欄位(序號欄位)
  4. 如果Row=1,當Header處理,給一個特別顏色’#AADAF2′
  5. 序號欄位基數偶數用%2來做判斷
  6. 每一Row都依據Color變數,決定該用哪種背景色
  7. 當然,如果你背景色都是白色,可以改寫最下面的While迴圈,提高執行效率

/**

 * Alternating row colors in Google Docs Spreadsheets
 * 
 * To adjust the alternate color applied, change the value of “setBackgroundColor” with a color 
 * name (‘grey’) or hex value (‘#F2F2F2’).  Default here is light grey.
 * 
 * Source http://www.alearningaday.me/post/11868586161/google-doc-hack-for-alternate-row-formatting
 */
function alternateColor() {
  var totalRows = SpreadsheetApp.getActiveRange().getNumRows();
  var totalColumns = 20;//SpreadsheetApp.getActiveRange().getNumColumns();
  var startRow = SpreadsheetApp.getActiveRange().getRow();
  var startColumn = SpreadsheetApp.getActiveRange().getColumn();
  var sheet = SpreadsheetApp.getActiveSheet();
  var row = startRow;
  var color = ‘#FFFFFF’;
  
  while (row < totalRows+startRow)
  {
    var column = startColumn;
    color = ‘#FFFFFF’;
    
    if(row==1)
    {
        color = ‘#AADAF2’;
    }
    else
    {
    if(sheet.getRange(row,1).getValue()%2 == 0 && row>2)
    {     
       color=’#FFF8D1′;
    }
    }
    while (column < totalColumns+startColumn){
       
         sheet.getRange(row, column).setBackgroundColor(color);
     
         column++;
       }
   
    row++;
  }
}
寫完,實際跑跑看,就可以看到你剛剛的Sheet開始變色
整個效果大概會變成這樣

Leave a Reply

Your email address will not be published. Required fields are marked *