9

我想弄清楚如何在谷歌電子表格上使用條件格式,類似於你可以通過公式在Excel中做什麼。谷歌電子表格條件格式化腳本

我希望單元格A2變爲綠色,如果單元格O2的值爲「X」,並且這將在兩列都完成。我知道這將需要一個腳本。

我跑過了一個類似的鏈接,但我不知道如何調整它以滿足我的需求。這是可以做到的嗎?

鏈接:https://webapps.stackexchange.com/questions/16745/google-spreadsheets-conditional-formatting

回答

15

這裏是你可以用做你所描述的腳本:

function formatting() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); 
    var columnO = sheet.getRange(2, 15, sheet.getLastRow()-1, 1); 
    var oValues = columnO.getValues(); 

    for (var i = 0; i < oValues.length; i++) { 
    if (oValues[i][0] == 'X') { 
     sheet.getRange(i + 2, 1, 1, 1).setBackgroundColor('green'); 
    } 
    } 
} 
+0

完美的作品。我添加了另一行,所以如果單元格是空白的,它會變回白色。 –

+0

如何在編寫腳本後使用該腳本? –

+0

@DanielWilliams一旦將腳本保存在腳本編輯器中,就可以通過幾種方式運行腳本。最簡單的方法是在腳本編輯器中按運行按鈕(看起來像一個三角形/播放按鈕)。 https://developers.google.com/apps-script/execution_script_editor –

8

在新的谷歌片,這不再需要的腳本。

取而代之,在條件格式中,選擇「自定義公式」選項,並放入一個值,如=O2="X" - 或者任何可以返回布爾值true/false的表達式。

從我可以告訴,在這些自定義腳本列出的參考文獻都有點怪異,並應用如下...

如果這是你的選擇範圍內的單元格,則改爲「被突出顯示的單元格「。

如果它是所選範圍之外的單元格,則它將更改爲「該位置,加上與當前單元格偏移到所選範圍左上角相同的偏移量」。

也就是說,如果你的範圍爲A1:B2,則上面會相同,每個小區設置單獨的格式如下:

A1 =O2="X" 
A2 =O3="X" 
B1 =P2="X" 
B2 =P3="X" 

還可以指定固定的參考,像=$O$2="X" - 這將檢查所選範圍內所有細胞的特定細胞O2。

4

(2月2017)作爲另一個答覆中提到,谷歌現在表允許用戶直接從用戶界面添加Conditional Formatting,無論是在臺式機/筆記本電腦,Android或iOS設備。

同樣,與the Google Sheets API v4(和更新),開發人員現在可以編寫應用程序的CRUD條件格式規則。請查看guidesamples以瞭解更多詳情以及reference docs(搜索{add,update,delete}ConditionalFormatRule)。導引特徵這段Python代碼片段(假設SHEET_IDSHEETS作爲API服務端點文件ID):

myRange = { 
    'sheetId': 0, 
    'startRowIndex': 1, 
    'endRowIndex': 11, 
    'startColumnIndex': 0, 
    'endColumnIndex': 4, 
} 

reqs = [ 
    {'addConditionalFormatRule': { 
     'index': 0, 
     'rule': { 
      'ranges': [ myRange ], 
      'booleanRule': { 
       'format': {'textFormat': {'foregroundColor': {'red': 0.8}}} 
       'condition': { 
        'type': 'CUSTOM_FORMULA', 
        'values': 
         [{'userEnteredValue': '=GT($D2,median($D$2:$D$11))'}] 
       }, 
      }, 
     }, 
    }}, 
    {'addConditionalFormatRule': { 
     'index': 0, 
     'rule': { 
      'ranges': [ myRange ], 
      'booleanRule': { 
       'format': { 
        'backgroundColor': {'red': 1, 'green': 0.4, 'blue': 0.4} 
       }, 
       'condition': { 
        'type': 'CUSTOM_FORMULA', 
        'values': 
         [{'userEnteredValue': '=LT($D2,median($D$2:$D$11))'}] 
       }, 
      }, 
     }, 
    }}, 
] 

SHEETS.spreadsheets().batchUpdate(spreadsheetId=SHEET_ID, 
     body={'requests': reqs}).execute() 

除了Python中,谷歌的API支持variety of languages,所以你必須選擇。無論如何,該代碼樣本會格式化一張表格(請參見下圖),使年齡小於中位數年齡的人員以淺紅色突出顯示,而中位數以上的人員則以紅色字體着色他們的數據。

Conditional formatting example


公共服務公告

最新表API提供了舊版本無法使用,即給開發商一個表的編程訪問,如果你使用的用戶界面功能(條件格式[!],凍結行,單元格格式,調整行/列大小,添加數據透視表,創建圖表等)。

如果你是新來的API &希望再看看咯,使用API​​的更普遍的「真實世界」的例子,我創建了各種視頻&相關博客文章:

正如你所知道的,牀單API主要是爲文件取向的功能如上所述,但執行文件 -level訪問如上傳下載&,進口&出口(同上傳&下載,但轉換爲/來自各種格式),請改用Google Drive API

  • 導出谷歌表爲CSV(博客post只)
  • 「窮人的純文本到PDF」 轉換器(博客post只)(*)

:使用驅動API的例子(*) - TL; DR:將純文本文件上傳到雲端硬盤,導入/轉換爲Google文檔格式,然後將該文檔導出爲PDF。以上帖子使用Drive API v2;這follow-up post描述將其遷移到Drive API v3,這裏是一個video結合「窮人的轉換器」職位。

相關問題