web-dev-qa-db-ja.com

別のセルの値に依存する特定のセルに条件付き書式を設定するにはどうすればよいですか?

私の例では、条件付きで列Bのセルをフォーマットします。 xでマークされたものは、列Aの値に従ってフォーマットする必要があります(この例では、値は1です)。

A | B
1 | x
2 | 
3 | 
1 | x
1 | x
4 | 
8 |

// x can be any value and is here merely to mark the cell that should be formatted

重要な2014年の注記:他を含む可能性のある式に基づく条件付き書式Googleスプレッドシートでセルを使用できるようになり、Excelスプレッドシートの動作と非常によく似た動作をします。この回答 使用方法について説明します。

69
Robert Koritnik

複雑な条件付き書式設定は、Google Appsスクリプトを使用してGoogleスプレッドシートで実現できます。たとえば、セルの1つの値に基づいて行全体の背景色を変更する関数を作成できますが、「ルールで色を変更」メニューでは不可能だと思います。 「編集時」、「オープン時」、「フォーム送信時」など、この機能のトリガーを設定することをお勧めします。

setBackgroundRGB()関数のドキュメント

更新:これは、列Aの値に基づいて行全体の背景色を変更するGoogle Appsスクリプトの例です。値が正の場合、緑を使用します。空の場合、白。それ以外の場合、赤。この公開で結果を参照してください Googleスプレッドシート 。 (スクリプトを実行するにはサインインする必要がありますが、サインインしなくても結果を確認できます)。

function colorAll() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var endRow = sheet.getLastRow();

  for (var r = startRow; r <= endRow; r++) {
    colorRow(r);
  }
}

function colorRow(r){
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange(r, 1, 1, 3);

  var data = dataRange.getValues();
  var row = data[0];

  if(row[0] === ""){
    dataRange.setBackgroundRGB(255, 255, 255);
  }else if(row[0] > 0){
    dataRange.setBackgroundRGB(192, 255, 192);
  }else{
    dataRange.setBackgroundRGB(255, 192, 192);
  }

  SpreadsheetApp.flush(); 
}

function onEdit(event)
{
  var r = event.source.getActiveRange().getRowIndex();
  if (r >= 2) {
    colorRow(r);
  }
}

function onOpen(){
  colorAll();
}

50
Liam

新しいGoogleスプレッドシート を使用すると、 here で説明されているように、これを行うことができます。記事で説明されているように、最初にGoogleドライバーの設定で新しいスプレッドシートを有効にする必要があります。次に、条件付き書式設定オプションから「カスタム式は」を選択し、式を入力できます(=プレフィックスを追加することを忘れないでください!)。 $プレフィックスのないセル参照は、期待どおりに範囲に適用されると自動的に調整されます。

古いものから新しいものへの移行のサポートが不足しているようです-新しいシートにのみ適用され、値を一方から他方にコピーできるだけであることがわかりました。シート全体をコピーすることもできます。

19
Sam Brightman

このWebアプリ、 Color Code + をApps-Scriptで作成し、基本的な条件付き書式設定のニーズのほとんどをカバーしました。いくつかのルールをスローすると、Toolsの下でスプレッドシートに貼り付けることができるコードを吐き出しますスクリプトエディタ...。 ( ヘルプスレッド Googleフォーラム。)

2
Bryan P

Googleスプレッドシートの条件付き書式ルールは、2つのセルの合計が3番目のセルと異なる場合に、背景を赤で条件付きで書式設定する場合、次のようになります。

Google Sheets conditional format rules with single color and custom formula

1
ViliusK

「新しい」シートのQの詳細に対処するには、B:Bから条件付き書式をクリアし、ColumnBを選択し、カスタム式はを適用することをお勧めします。

=A1=1

好みのフォーマットで Done

0
pnuts

条件付き書式設定-カスタム式

range 2:227

= if($i:$i = "Duplicate",True,False)

行を強調表示する色を選択します。

0
Hari R

(2017年2月)別の回答で述べたように、Googleスプレッドシートでは、ユーザーインターフェースから直接 条件付き書式設定 を追加できるようになりました。デスクトップ/ラップトップ、AndroidまたはiOSデバイスのいずれにあるか。ただし、この答えの残りの部分は、アプリを「行う」条件付き書式を作成できるため、主に開発者向けです。

Google Sheets API v4 (およびそれ以降)を使用すると、開発者は条件付き書式ルールをCRUDするアプリケーションを作成できます。詳細については guide および samples ページ、および reference docs{add,update,delete}ConditionalFormatRuleを検索)をご覧ください。このガイドでは、このPythonスニペット(APIサービスエンドポイントとしてSHEET_IDおよびSHEETSのファイルIDを想定しています)を取り上げています。

myRange = {
    'sheetId': 0,
    'startRowIndex': 1,
    'endRowIndex': 11,
    'startColumnIndex': 0,
    'endColumnIndex': 4,
}

reqs = [
    {'addConditionalFormatRule': {
        'index': 0,
        'rule': {
            'ranges': [ myRange ],
            'booleanRule': {
                'format': {'textFormat': {'foregroundColor': {'red': 0.8}}}
                'condition': {
                    'type': 'CUSTOM_FORMULA',
                    'values':
                        [{'userEnteredValue': '=GT($D2,median($D$2:$D$11))'}]
                },
            },
        },
    }},
    {'addConditionalFormatRule': {
        'index': 0,
        'rule': {
            'ranges': [ myRange ],
            'booleanRule': {
                'format': {
                    'backgroundColor': {'red': 1, 'green': 0.4, 'blue': 0.4}
                },
                'condition': {
                    'type': 'CUSTOM_FORMULA',
                    'values':
                        [{'userEnteredValue': '=LT($D2,median($D$2:$D$11))'}]
                },
            },
        },
    }},
]

SHEETS.spreadsheets().batchUpdate(spreadsheetId=SHEET_ID,
        body={'requests': reqs}).execute()

Pythonに加えて、Google APIは さまざまな言語 をサポートしているため、オプションがあります。とにかく、そのコードサンプルは、年齢の中央値よりも若い人が明るい赤で強調表示され、中央の年齢以上の人はデータが赤いフォントで色付けされるようにシート(下の画像を参照)をフォーマットします。

Conditional formatting example

注:ここでの私の答えは、 この質問 のSOの答えと同じです。ただし、PSAは1か所以上に住む必要がないため、削除しました。

0
wescpy

条件付き書式を編集するときは、カスタム式を使用して次を使用...を選択します

=if(A1 = 1 , true)

色を選択すれば完了です。

0
user3246197