条件付き書式を使用すると、セルに含まれる値または他のセルの値に応じて、セルの外観を動的に変化させることができます。条件付き書式には、次のようなさまざまな用途があります。
- 特定のしきい値を超えるセルをハイライト表示する(たとえば、$2,000 を超えるすべてのトランザクションで太字のテキストを使用するなど)。
- 値に応じて色が変化するようにセルを書式設定します(たとえば、$2,000 を超えると、金額が増えるほど背景を濃くします)。
- 他のセルの内容に基づいて、セルを動的に書式設定します(たとえば、[市場投入までの時間] フィールドが 90 日を超える宿泊施設の住所をハイライト表示する)。
セルの値を他のセルの値に基づいて書式設定することもできます。たとえば、範囲の中央値と比較した値に基づいてセル範囲を書式設定できます。
図 1. 年齢の中央値を上回る値または下回る値をハイライト表示するためのフォーマット。
この例では、各行のセルは、age
列の値とすべての年齢の中央値との比較に従って書式設定されます。年齢が中央値を上回る行には赤色のテキストが表示され、中央値を下回っている行には赤色の背景で表示されます。2 つの行には、年齢の中央値(48)に一致する age
の値があり、これらのセルには特別な書式設定はありません。(この条件付き書式を作成するソースコードについては、以下の例をご覧ください)。
条件付き書式ルール
条件付き書式は、書式ルールを使用して表現します。各スプレッドシートにはこれらのルールのリストが格納され、リストに表示されているのと同じ順序で適用されます。Google Sheets API を使用すると、これらの書式設定ルールを追加、更新、削除できます。
各ルールでは、ターゲット範囲、ルールの種類、ルールのトリガー条件、適用する書式設定を指定します。
対象範囲 - 単一のセル、セルの範囲、または複数の範囲を指定できます。
ルールの種類 - ルールには次の 2 つのカテゴリがあります。
- ブール値ルールは、特定の条件が満たされた場合にのみ形式を適用します。
- グラデーション ルールでは、セルの値に基づいてセルの背景色が計算されます。
評価される条件と適用できる形式は、以下のセクションで説明するように、ルールタイプごとに異なります。
ブール値ルール
BooleanRule
は、true
または false
として評価される BooleanCondition
に基づいて、特定の形式を適用するかどうかを定義します。ブールルールは、次の形式をとります。
{
"condition": {
object(BooleanCondition)
},
"format": {
object(CellFormat)
},
}
条件には、組み込みの ConditionType
を使用することも、カスタム式を使用してより複雑な評価を行うこともできます。
組み込みタイプを使用すると、数値しきい値、テキストの比較、セルの入力の有無に従って書式設定を適用できます。たとえば NUMBER_GREATER
は、セルの値は条件の値よりも大きい必要があることを意味します。ルールは常にターゲット セルに対して評価されます。
カスタム数式は、任意の式に従って書式設定を適用できる特別な条件タイプです。これにより、対象のセルだけでなく、任意のセルを評価することもできます。条件の数式は true
と評価される必要があります。
ブールルールで適用されるフォーマットを定義するには、CellFormat
タイプのサブセットを使用して以下を定義します。
- セル内のテキストに太字、斜体、取り消し線を適用するかどうかを指定します。
- セルのテキストの色。
- セルの背景色。
グラデーション ルール
GradientRule
は、値の範囲に対応する色の範囲を定義します。グラデーション ルールの形式は次のとおりです。
{
"minpoint": {
object(InterpolationPoint)
},
"midpoint": {
object(InterpolationPoint)
},
"maxpoint": {
object(InterpolationPoint)
},
}
各 InterpolationPoint
は色とそれに対応する値を定義します。3 つのポイントのセットでカラー グラデーションを定義します。
条件付き書式ルールを管理する
条件付き書式ルールを作成、変更、削除するには、適切なリクエスト タイプで spreadsheets.batchUpdate
メソッドを使用します。
AddConditionalFormatRuleRequest
を使用して、指定されたインデックスのリストにルールを追加します。UpdateConditionalFormatRuleRequest
を使用して、指定されたインデックスでリスト内のルールを置換または並べ替えます。DeleteConditionalFormatRuleRequest
を使用して、指定されたインデックスのリストからルールを削除します。
例
次の例は、このページの上部にあるスクリーンショットに示されている条件付き書式を作成する方法を示しています。その他の例については、条件付き書式のサンプルページをご覧ください。