1

我需要一个公式/脚本的谷歌电子表格,将做到这一点:如果当前单元格的值大于单元格中的数值越高彩色细胞RED如果上述值单元格较低

以上使当前单元格背景红色(如果小于或等于然后留白色),像这样:=IF((C34>B34),"make background red","leave background white")只是不知道这是否会工作,或者我需要一个更复杂的脚本。

我需要这个公式来处理224个单元格(28列和8行)。条件格式不会工作。

当天将有多达20人查看该文档,只有一个人正在编辑数据。脚本会减慢实时电子表格的工作速度,因为我需要计算主工作表中的数据到汇总表中的一些更复杂的公式。

我已经在这里和其他论坛搜索,但每个人的公式都是独一无二的!

干杯

回答

1

可以通过从上方的一个刚改变了细胞读取值,使得比较,并适当地着色使用onEdit()触发到的变化作出反应。您必须在脚本中执行此操作,您无法控制自定义函数的颜色。

您说过“如果当前单元格的值高于上面的单元格中的值”,但您的示例中有=IF((C34>B34)...,即“旁边”,而不是“上面”。此代码使用.offset(-1,0)作为“高于”,并确保它不会混淆第1行以上的行 - 如果您的意思是“旁边”,则需要更改该行。

function onEdit(event) 
{ 
    if (isNaN(event.value)) return;  // If change was not a number, exit 
    var changedCell = event.range; 
    if (changedCell.getRow() == 1) return; // Nothing to do in Row 1 
    var cellAbove = changedCell.offset(-1, 0); 
    var background = 'white';    // Assume white background 
    // Is the changed value greater than the value in the cell above? 
    if (parseFloat(event.value) > parseFloat(cellAbove.getValue())) { 
    background = 'red';     // Yes, so red background 
    } 
    changedCell.setBackground(background); 
} 

WRT性能,则触发功能将放缓事情有点,但我怀疑你会看到一个更大的滞后,由于大量多的观众,如谷歌,文档做它的东西,以保持所有这些不同的视图同步。 (我已经看过< 100张单元的纸张,没有任何配方跟上< 10个观众)。

1

有条件的格式将无法使用。

可能不是在写的时候,但它现在。

假设你的阵列开始在B34以其左上角,清晰的格式和选择B35:AC41和格式,条件格式...如果... 单元格格式自定义公式为和:

=A35>A34 

选择红色填充和完成

相关问题