如果文本与另一个单元格匹配,则使用 Google Apps 脚本有条件地格式化一个单元格

jon_win

我有一个电子表格,它的前四列(A、B、C、D)是从单独的主电子表格动态导入的。

列 E、F 旨在根据其左侧列中的动态数据进行静态输入。

A 列包含个人姓名。

我想使用 G 列作为 A 列的静态引用,以确保当 A 到 D 列中的动态数据随着新输入的到达而移动时,可以通过手动剪切和粘贴轻松地将 E 和 F 列中的输入维护在正确的行中或从母版中删除。

为此,我需要一个脚本,当 G 列中的条目与 A 列中的条目匹配(粗体、斜体、为文本着色)时,该脚本“有条件地格式化”这些条目,并且不会与使用剪切和粘贴相关的问题发生冲突谷歌表格中的标准 UI 条件格式,其中剪切和粘贴将“破坏”条件格式范围。

我们将动态列 A 中的值复制到静态列 G,然后使用条件格式引用回 A。

我这里有一个基本脚本(从另一个 stackoverflow 海报中收集),但是它需要一些工作来完成我需要它做的事情。

function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A:G");
var values = range.getValues();

//for each row that data is present
for(var i = 0; i < values.length; i++) {
var cell = sheet.getRange(i + 1, 7);

//check if the first value of that row is exactly "Client Name"
if(values[i][0] === "Client Name") {

//if it is, check for "Client Name" in the same row in G [6].  If so, make 
it green.

if(values[i][6] === "Client Name") {
    cell.setBackground('green');
  } else {
    cell.setBackground('white');
  }

} else {

//In any other case, make it white.
cell.setBackground('white');
}
}   
}    

我希望脚本检查单元格 A3:A 中的值是否等于 G3:G 中的值,以及它们是否按照指示格式化 G3:G 中的文本。

带有现有脚本的工作表“模型”在这里:

https://docs.google.com/spreadsheets/d/13iPM83I5ecskuBaBin8hepTyBqD29ng0Zp3e6DBcuEk/edit?usp=sharing

感谢所有帮助!

迭戈

如果您将条件格式设置为使用自定义公式

=AND($G1=$A1, NOT(ISBLANK($A1)))

然后您使用“仅粘贴值”(编辑 > 特殊粘贴或cmd + shift + vctrl如果在 Windows 上),那么您将不需要脚本。

使用条件格式和粘贴值会快得多。

否则,当 G 列与 A 中的相应值不匹配时,您可以使用此脚本更改列中的格式。

function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1"); // getActiveSheet() can yield unexpected results
  var rangeA = sheet.getRange("A:A");
  var rangeG = sheet.getRange("G:G");
  var valuesA = rangeA.getValues();
  var valuesG = rangeG.getValues();
  var backgrounds = []; // Create an array for the background colors
  var fontColors = []; // Create an array for the font colors

  //for each row that data is present
  for(var i = 0; i < valuesA.length; i++) {
    var aValue = valuesA[i][0];
    var gValue = valuesG[i][0];
    if((aValue != "") && (gValue === aValue)) { // If value in A is NOT blank AND A == G
      backgrounds.push(["green"]); 
      fontColors.push(["white"]);
    } else {
      backgrounds.push([null]); // Using null will reset the background color formatting
      fontColors.push([null]); // Using null will reset the font color formatting
    }
  }  
  rangeG.setBackgrounds(backgrounds); // Set the background colors all at once for speed.
  rangeG.setFontColors(fontColors); // Set the font colors all at once for speed.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Apps Script - 根据另一个单元格的值设置活动单元格的公式

来自分类Dev

如何根据一定范围的空白单元格有条件地格式化一个单元格?

来自分类Dev

使用脚本将特定文本从一个单元格移动到 Google 表格中的另一个单元格

来自分类Dev

Google Sheets - 如果一个单元格中的颜色与另一个单元格中的颜色匹配,则在另一个单元格中打印该内容

来自分类Dev

如何使用图表包装函数有条件地格式化Google可视化表格单元格?

来自分类Dev

如何使用图表包装函数有条件地格式化Google可视化表格单元格?

来自分类Dev

Google Spreadsheet-根据不同单元格中的文本,更改另一个单元格文本

来自分类Dev

Google表格+ Apps脚本,从一个工作表复制/粘贴到另一个工作表,但粘贴到特定列(B)中的第一个空单元格中

来自分类Dev

如果单元格包含文本,则有条件地格式化整行

来自分类Dev

Google Spreadsheet-仅在另一个单元格论坛中使用否定单元格

来自分类Dev

如果单元格部分匹配另一个单元格则格式化

来自分类Dev

Google表格复制一个单元格并粘贴到另一个单元格中

来自分类Dev

需要帮助来更改Google表格脚本中的单元格值以匹配另一个单元格

来自分类Dev

Google Sheets - 解析一个单元格以从另一个单元格中查找文本(然后标记为 TRUE 或 FALSE)

来自分类Dev

Google表格可以使用超链接从一个单元格跳转到另一个单元格并将数据复制到另一个单元格吗

来自分类Dev

根据 Google 表格中的第一个单元格格式化列中的单元格

来自分类Dev

匹配(同一工作簿)中的(另一个工作表)单元格时的条件格式?Google表格

来自分类Dev

根据第一个单元格有条件地对单元格进行格式化

来自分类Dev

有条件地格式化锚定到条件单元格的区域

来自分类Dev

在 PHP 中,如何根据单元格值有条件地格式化一行

来自分类Dev

来自另一个单元格值的Google电子表格单元格引用

来自分类Dev

用另一个单元格Google表格中的值填充空单元格

来自分类Dev

Google Sheets - 将单元格中的多个单词与另一个单元格进行比较并计算匹配数

来自分类Dev

jqGrid-根据日期值有条件地格式化单元格

来自分类Dev

有条件地格式化Tablix的某些单元格

来自分类Dev

有条件地格式化Shiny中的rHandsontable中的空单元格

来自分类Dev

根据其他单元格的值有条件地格式化单词

来自分类Dev

根据公式有条件地格式化单元格的子集

来自分类Dev

Google表格如何使用单元格值,在另一个标签中进行搜索,找到匹配项后,抓取所有行?

Related 相关文章

  1. 1

    Google Apps Script - 根据另一个单元格的值设置活动单元格的公式

  2. 2

    如何根据一定范围的空白单元格有条件地格式化一个单元格?

  3. 3

    使用脚本将特定文本从一个单元格移动到 Google 表格中的另一个单元格

  4. 4

    Google Sheets - 如果一个单元格中的颜色与另一个单元格中的颜色匹配,则在另一个单元格中打印该内容

  5. 5

    如何使用图表包装函数有条件地格式化Google可视化表格单元格?

  6. 6

    如何使用图表包装函数有条件地格式化Google可视化表格单元格?

  7. 7

    Google Spreadsheet-根据不同单元格中的文本,更改另一个单元格文本

  8. 8

    Google表格+ Apps脚本,从一个工作表复制/粘贴到另一个工作表,但粘贴到特定列(B)中的第一个空单元格中

  9. 9

    如果单元格包含文本,则有条件地格式化整行

  10. 10

    Google Spreadsheet-仅在另一个单元格论坛中使用否定单元格

  11. 11

    如果单元格部分匹配另一个单元格则格式化

  12. 12

    Google表格复制一个单元格并粘贴到另一个单元格中

  13. 13

    需要帮助来更改Google表格脚本中的单元格值以匹配另一个单元格

  14. 14

    Google Sheets - 解析一个单元格以从另一个单元格中查找文本(然后标记为 TRUE 或 FALSE)

  15. 15

    Google表格可以使用超链接从一个单元格跳转到另一个单元格并将数据复制到另一个单元格吗

  16. 16

    根据 Google 表格中的第一个单元格格式化列中的单元格

  17. 17

    匹配(同一工作簿)中的(另一个工作表)单元格时的条件格式?Google表格

  18. 18

    根据第一个单元格有条件地对单元格进行格式化

  19. 19

    有条件地格式化锚定到条件单元格的区域

  20. 20

    在 PHP 中,如何根据单元格值有条件地格式化一行

  21. 21

    来自另一个单元格值的Google电子表格单元格引用

  22. 22

    用另一个单元格Google表格中的值填充空单元格

  23. 23

    Google Sheets - 将单元格中的多个单词与另一个单元格进行比较并计算匹配数

  24. 24

    jqGrid-根据日期值有条件地格式化单元格

  25. 25

    有条件地格式化Tablix的某些单元格

  26. 26

    有条件地格式化Shiny中的rHandsontable中的空单元格

  27. 27

    根据其他单元格的值有条件地格式化单词

  28. 28

    根据公式有条件地格式化单元格的子集

  29. 29

    Google表格如何使用单元格值,在另一个标签中进行搜索,找到匹配项后,抓取所有行?

热门标签

归档