0

如果單元格的值等於它上面兩行的單元格的值,我需要使單元格文本變爲紅色。我有這兩個功能在我的腳本編輯器:Google表格自定義函數條件格式

/** 
* Compares cell value to another cell relative in position to it. 
* Returns true if equal values. 
* 
* @param {Number} colDiff Relative positioning column difference. 
* @param {Number} rowDiff Relative positioning row difference. 
*/ 
function equalsRelativeCellValue(rowDiff, colDiff) { 
    var thisCell = SpreadsheetApp.getActiveRange(); 
    var relativeCellValue = getRelativeCellValue(rowDiff, colDiff); 
    if (thisCell.getValue() === relativeCellValue) 
    return true; 
    else 
    return false; 
} 


/** 
* Returns value of cell according to relative position 
* 
* @param {Number} colDiff Relative positioning column difference. 
* @param {Number} rowDiff Relative positioning row difference. 
*/ 
function getRelativeCellValue(rowDiff, colDiff) { 
    var range = SpreadsheetApp.getActiveRange(); 
    var col = range.getColumn(); 
    var row = range.getRow(); 
    var range2 = SpreadsheetApp.getActiveSheet().getRange(row + rowDiff,col + colDiff); 
    return range2.getValue(); 
} 

第二個功能,getRelativeCellValue(rowDiff, colDiff)作品就好了,我把8在一個單元格,兩個格低於它,我進入getRelativeCellValue(-2, 0),細胞評價8

但第一個函數,getRelativeCellValue(rowDiff, colDiff)不會在條件格式作爲我的自定義函數的工作因爲某些原因:

Custom formula is: =equalsRelativeCellValue(-2,0) 

困難的部分是指細胞在條件格式所引用的值。但是我的功能對我來說很合適,如果單元格值相等,則返回true,如果不是,則返回false。林希望我只是使用「自定義公式是」條件格式不正確,但documentation is pretty sparse

回答

1

只是REALIZER你想要做什麼,只是使用條件格式,選擇的範圍,並申請了第一個單元格,它將適用於所有正常:

EG。 在有條件格式化對話框中,選擇自定義公式,粘貼自定義公式=J10=J8,然後選擇範圍J10:J100

OldAnswer:

您創建了循環引用。

如果在Cell中輸入=equalsRelativeCellValue(-2,0),如果它正在等待函數解析,它的值是多少?

您可以在除了值之外的列中克服此問題,或直接在函數中傳遞值。

您也可以使用這個方法,使細胞之間有真/假狀態:

function equalsRelativeCellValue(rowDiff, colDiff) { 
    var below = getRelativeCellValue(1, 0); 
    var relativeCellValue = getRelativeCellValue(2, 0); 
    if (below === relativeCellValue) 
    return true; 
    else 
    return false; 
} 

+0

謝謝,比什麼,我試圖做簡單得多。唯一的事情是,我似乎無法一次爲多個欄目工作。沒有什麼大不了的,只有5個cols來應用它,所以我寫了5條不同的規則。 – austinheiman 2015-03-31 13:40:08

+1

使用此範圍可以在多列中工作:'D4:D49,E4:E49,F4:F49,G4:G49'而不是'D4:G49' – austinheiman 2015-03-31 14:00:37