回答:
同様の質問に対する私の答えが役立つかどうかを確認してください。
更新:
Google Docs Scriptギャラリーへの私の提出は受け入れられ、希望する機能を得るためにそれをインストールできます。
手順:
これで、スプレッドシートの数式で使用できる次の3つの関数が追加されました。
sumWhereBackgroundColorIs(color, rangeSpecification)
sumWhereBackgroundColorIsNot(color, rangeSpecification)
getBackgroundColor(rangeSpecification)
そのため、rangeSpecification
パラメーターには引用符("
)が必要です。
例えば:
=sumWhereBackgroundColorIs("white", "A1:C4")
背景が白のA1:C4範囲内のすべてのセルの値を合計します。
特定のセルの色がわからない場合は、提供されているgetBackgroundColor
関数を使用して色を調べることができます。いくつかの色が(例えば、RGBコードとして表現されるので、この機能は、必要である#00ff00
代わりにgreen
)。
これは私がそれを動作させる方法です:
開くTools
>Script Editor
以下のコードを貼り付けて、スクリプトを保存します
スプレッドシートに戻ります。カウントする色のセルがある=countColoredCells(A1:Z5,C5)
場所で使用しC5
ます。
コード:
/**
* @param {range} countRange Range to be evaluated
* @param {range} colorRef Cell with background color to be searched for in countRange
* @return {number}
* @customfunction
*/
function countColoredCells(countRange,colorRef) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formula = activeRange.getFormula();
var rangeA1Notation = formula.match(/\((.*)\,/).pop().trim();
var range = activeSheet.getRange(rangeA1Notation);
var bg = range.getBackgrounds();
var values = range.getValues();
var colorCellA1Notation = formula.match(/\,(.*)\)/).pop().trim();
var colorCell = activeSheet.getRange(colorCellA1Notation);
var color = colorCell.getBackground();
var count = 0;
for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
count=count+1;
return count;
};
コードクレジット(変更):http : //igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html
TypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
getBackgroundColor()
推奨されていません。おそらく、コードを更新できますか?