2017-01-10 27 views
1

別のセルの色に基づいてセルの値を変更する方法を探しています(セルの色が赤の場合は「テキスト」など)。Googleスプレッドシートのセルの色に基づいてセルの値を変更します

これを行う方法はありますか?

誰もがアイデアを持って、私は、セルの値に基づいてセルの色を変更する方法はありますけど、私は逆の方法をしたいですか?それは、スクリプトまたは式

+0

スプレッドシートの数式でセルの色にアクセスできないため、スクリプトが必要です。 – FTP

+0

私はスクリプトのために病気のように見えると思います。 – user7254740

答えて

2

ことの直接的な式は、スプレッドシートでも使用可能ですが、ここではそれがある場合は、Googleのappscriptでこのような何か、ではないことを確認があります:

私はのSheet1のA1セルを色付けレッドすなわち#FF0000のよう、次のコード使用して色を得た:

function test() 
{ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); 
    var color = sheet.getRange(1, 1).getBackground(); 
    Logger.log(color); 
} 

出力を

だから、

#FF0000の

、あなただけif(color == "#ff0000")(またはあなたが好きな色のコード)をチェックして、値を設定する必要があります。ここで

EDIT

は、要件を満たしますコードです。コメントを追加して、それをさらに発展させることができます。

function myFunction() { 
    var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); 
    var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2"); 

    var data1 = sheet1.getDataRange().getValues(); //2D array of sheet1 cell values 
    var bg; 

    for(var i=1; i<data1.length; i++) 
    { 
    bg = sheet1.getRange(i+1, 2).getBackground(); 
    if(bg == "#ff0000") //Add more colors in else if and else if you have 5-6 different colors, this one is for red 
    { 
     sheet2.getRange(i+1, 3).setValue("For Verification"); //Set value in corresponding row of sheet2 
    }  
    } 
} 


/** 
* For to-be filled records in future, you can 
* set a trigger of onEdit if you are manually 
* filling sheet 1 
**/ 
+0

コードのためにありがとう、スクリプトの出力をテストするにはどうすればよいですか?私は色を決定するために関数をセルに入れることができますか? – user7254740

+0

まず第一に、「サー」という男はいません!あなたのバディと呼んでください;)。さて、このコードはすでにA1セルに適用されています。また、同じ関数 'test()'にコードを書くことで、必要な操作を実行することもできます。スクリプトエディタからコードを実行することも、時間ベースのトリガを設定することもできます。あなたは何を探していますか?あなたのプロセスを説明してください。 –

+0

シート操作でこれを参照できます。[リンク](https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app) –

関連する問題