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结合“穷人的转换器”职位。

相关问题