我创建了一个自动计分的Google表格电子表格。在总计(V)列中,我使用了条件格式来使用颜色对团队从最高到最低进行排名。
Link to spreadsheet (comment-only)
我想根据V的值对第一列(A)进行有条件的格式设置,或者自动将条件格式从A转换为V,以使 A的颜色与V相同。但是,我不确定该怎么做:我尝试将条件格式从A粘贴到V,这是行不通的。我已经看到了基于适用于其他单元格/列的逻辑运算符的条件格式示例,但我认为这不适用于此处。
任何指导将不胜感激!
答案 0 :(得分:0)
通过使用Google脚本,您可以将以下两个脚本应用于工作表以实现所需的功能。
首先,用于在第V列中添加新数据的OnEdit()。
function onEdit(e) { //When a cell is edited
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cellColumn = e.range.getColumn(); // Cell column that was edited
var cellRow = e.range.getRow(); //Cell row that was edited
if(cellColumn == 22){ //If the edited cell is in column 22 i.e. column V
var editedCellBackground = ss.getActiveSheet().getRange(cellRow, cellColumn).getBackground(); //get color of cell in column V
ss.getActiveSheet().getRange(cellRow, 1).setBackground(editedCellBackground); //set color of A to corresponding color in column V
}else{ //if the edited cell is not in column V
//do nothing
}
}
第二,OnOpen()用于当工作表中已有数据时,应在打开工作表时对其进行格式化。工作表的名称可能需要更改,因为它当前设置为“ Sheet1”。
function onOpen() { //when sheet is open
var ss = SpreadsheetApp.getActiveSpreadsheet();
var row = 1;
while(ss.getSheetByName("Sheet1").getRange(row, 22).getValue() != ""){ //while there is another row with data in column V (given by 22)
var cellBackground = ss.getSheetByName("Sheet1").getRange(row, 22).getBackground(); //get value of color in column V
ss.getSheetByName("Sheet1").getRange(row, 1).setBackground(cellBackground); //set color value of column A to corresponding value of V
row++; //go to next row
}
}