条件付き書式設定を使用すると、レポートの作成者は数値に従って、レポート上での色の表示方法を指定できます。
この記事では、Power BI 視覚化に条件付き書式機能を追加する方法について説明します。
現在、条件付き書式は色にのみ適用できます。
条件付き書式をプロジェクトに追加する
このセクションでは、既存の Power BI 視覚化に条件付き書式を追加する方法について説明します。 この記事のサンプル コードは、SampleBarChart 視覚エフェクトに基づいています。 barChart.ts のソース コードを調べることができます。
[書式] ウィンドウに条件付きの色の書式設定エントリを追加する
このセクションでは、[書式] ペイン内のデータ ポイントに、条件付きの色の書式設定エントリを追加する方法について説明します。
propertyInstanceKind内のVisualObjectInstance配列を使用します。これはpowerbi-visuals-apiによって公開されています。 ファイルに次のインポートが含まれていることを確認します。import powerbiVisualsApi from "powerbi-visuals-api";適切な種類の書式設定 (Constant、ConstantOrRule、または Rule) を指定するには、
VisualEnumerationInstanceKinds列挙型を使用します。 次のインポートをファイルに追加します。import VisualEnumerationInstanceKinds = powerbiVisualsApi.VisualEnumerationInstanceKinds;書式設定プロパティ インスタンスの種類を設定します
条件付き書式をサポートするプロパティを書式設定するには、その descriptor に必要なインスタンスの種類を設定します。
public getFormattingModel(): powerbi.visuals.FormattingModel {
// ...
formattingGroup.slices.push(
{
uid: `colorSelector${barDataPoint_indx}_uid`,
displayName: barDataPoint.category,
control: {
type: powerbi.visuals.FormattingComponent.ColorPicker,
properties: {
descriptor: {
objectName: "colorSelector",
propertyName: "fill",
selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals),
altConstantValueSelector: barDataPoint.selectionId.getSelector(),
instanceKind: powerbi.VisualEnumerationInstanceKinds.ConstantOrRule // <=== Support conditional formatting
},
value: { value: barDataPoint.color }
}
}
}
);
// ...
}
VisualEnumerationInstanceKinds.ConstantOrRule によって、定数の書式設定 UI 要素と共に、条件付き書式 UI のエントリが作成されます。
条件付き書式の動作方法を定義する
書式設定がデータ ポイントに適用される方法を定義します。
createDataViewWildcardSelector の下で宣言された powerbi-visuals-utils-dataviewutils を使用して、条件付き書式をインスタンス、合計、またはその両方に適用するかどうかを指定します。 詳細については、「DataViewWildcard」を参照してください。
条件付き書式を適用するプロパティに対して、次の変更を行います。
selector値をdataViewWildcard.createDataViewWildcardSelector(dataViewWildcardMatchingOption)呼び出しに置き換えます。DataViewWildcardMatchingOptionによって、条件付き書式をインスタンス、合計、またはその両方に適用するかどうかを定義します。altConstantValueSelectorプロパティ用に以前に定義した値を使用して、selectorプロパティを追加します。
条件付き書式をサポートするプロパティを書式設定するには、その descriptor に必要なインスタンスの種類を設定します。
public getFormattingModel(): powerbi.visuals.FormattingModel {
// ...
formattingGroup.slices.push(
{
uid: `colorSelector${barDataPoint_indx}_uid`,
displayName: barDataPoint.category,
control: {
type: powerbi.visuals.FormattingComponent.ColorPicker,
properties: {
descriptor: {
objectName: "colorSelector",
propertyName: "fill",
// Define whether the conditional formatting will apply to instances, totals, or both
selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals),
// Add this property with the value previously defined for the selector property
altConstantValueSelector: barDataPoint.selectionId.getSelector(),
instanceKind: powerbi.VisualEnumerationInstanceKinds.ConstantOrRule
},
value: { value: barDataPoint.color }
}
}
}
);
// ...
}
考慮事項と制限事項
条件付き書式は、次のビジュアルではサポートされていません。
テーブル ベースのビジュアル
マトリックス ベースのビジュアル
系列では条件付き書式を使用しないことをお勧めします。 代わりに、各系列を個別に書式設定できるため、系列を視覚的に区別しやすくなります。 シリーズを使用したほとんどのすぐに使えるビジュアルでは、このアプローチが共有されています。