LOD 関数は、詳細レベル(LOD)式の省略形です。LOD 式を使用すると、計算の粒度を制御して、異なる式間の不整合を解決できます。このトピックでは、LOD 関数の使用方法について説明します。
制限事項
詳細テーブルは LOD 関数をサポートしていません。
背景
Quick BI の分析では、主に固定ディメンションが使用されます。たとえば、地域と県別の注文数を確認するには、地域と県のディメンションをクロステーブルの行に配置します。次に、注文数メジャーを列に配置し、集計方法を合計に設定します。

生成される SQL クエリは次のとおりです。
SELECT
ADR_T_1_.`area` AS T_AAC_2_, /* 地域 */
ADR_T_1_.`province` AS T_A9E_3_, /* 県 */
SUM(ADR_T_1_.`order_amt`) AS T_AAD_4_ /* 注文金額の合計 */
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_ /* 会社売上記録 */
GROUP BY
ADR_T_1_.`area`, /* 地域 */
ADR_T_1_.`province` /* 県 */
ORDER BY
T_AAC_2_ ASC, /* 地域昇順 */
T_A9E_3_ ASC /* 県昇順 */ただし、同じテーブルで地域と県の粒度と地域の粒度の両方でデータを表示する場合はどうでしょうか。または、県のデータと対応する地域のデータの比率または差分を表示する場合はどうでしょうか。または、各県で売上高が最も高い製品タイプを見つける場合はどうでしょうか。これらのシナリオを処理するには、LOD 関数を使用する必要があります。
シナリオ
詳細レベル(LOD)式を使用すると、単一の可視化で複数のレベルのデータ詳細を管理できます。詳細レベルとは、データが集計される粒度を指します。LOD 式は、可視化で複数のレベルのデータ詳細を同時に表示する必要があるシナリオに役立ちます。
LOD 式を使用すると、可視化を変更せずに、現在のビューよりも詳細レベルの高いまたは低いディメンションを追加できます。
構文
LOD、つまり詳細レベル式は、強力な計算機能です。データ分析で複雑な計算と集計を作成できます。LOD 式は、計算の粒度を制御するのに役立ちます。指定されたレベル(FIXED)、より詳細なレベル(INCLUDE)、またはより詳細度の低いレベル(EXCLUDE)でデータを分析できます。基本的な構文は次のとおりです。
LOD_FIXED
構文 | LOD_FIXED{<ディメンション宣言> : <集計式>} |
パラメータ |
|
定義 | チャート内の他のディメンションに関係なく、指定されたディメンションで固定集計値を計算します。 |
出力 | 数値 |
例 | LOD_FIXED{[地域]: BI_SUM([注文金額])} 意味:クエリの他のディメンションに関係なく、地域の粒度で合計注文金額を集計します。 アプリケーションの例については、「FIXED 関数のアプリケーション」をご参照ください。 |
LOD_INCLUDE
構文 | LOD_INCLUDE{<ディメンション宣言> : <集計式>} |
パラメータ |
|
定義 | 集計計算のためにチャートに追加のディメンションを含めます。 |
出力 | 数値 |
例 | LOD_INCLUDE{[地域]: BI_SUM([注文金額])} 意味: 既存のクエリディメンションに [リージョン] を追加して集約し、[注文金額] の合計を計算します。 アプリケーションの例については、「INCLUDE 関数のアプリケーション」をご参照ください。 |
LOD_EXCLUDE
構文 | LOD_EXCLUDE{<ディメンション宣言> : <集計式>} |
パラメータ |
|
定義 | 集計計算のためにチャートから特定のディメンションを除外します。 |
出力 | 数値 |
例 | LOD_EXCLUDE{[地域]: BI_SUM([注文金額])} 意味:存在する場合は、既存のクエリディメンションから地域を削除します。次に、残りのディメンションを使用して合計注文金額を集計します。 アプリケーションの例については、「EXCLUDE 関数のアプリケーション」をご参照ください。 |
手順
データセット編集ページで、[計算フィールドの作成] をクリックして、構成ダイアログボックスを開きます。

[フィールド名](①)を入力します。[フィールド式] ボックスで、必要な LOD 関数とフィールド(②)を選択します。

フィールドが作成されたら、[OK] をクリックします。新しいフィールドを使用してダッシュボードチャートを作成すると、同じ地域の合計注文金額は製品タイプによって変化しません。

式の詳細
基本的な数式
3種類の LOD 式の構造と構文は次のとおりです。
構造
LOD_FIXED{<ディメンション宣言> : <集計式>}
LOD_INCLUDE{<ディメンション宣言> : <集計式>}
LOD_EXCLUDE{<ディメンション宣言> : <集計式>}
例:LOD_FIXED{ [注文日]:sum([注文金額])}
構文の詳細
FIXED | INCLUDE | EXCLUDE:LOD の範囲を指定するスコープキーワード。
<ディメンション宣言>:集計式が関連する1つ以上のディメンションを指定します。複数のディメンションを区切るには、コンマを使用します。
<集計式>:指定された詳細レベルで実行される計算。
フィルター条件
Quick BI では、基本的な数式に加えて、フィルター条件を記述することもできます。式は次のとおりで、ディメンション宣言、集計式、およびフィルター条件はコロンで区切られています。
LOD_FIXED{ディメンション1,ディメンション2...:集計式:フィルター条件}
LOD_INCLUDE{ディメンション1,ディメンション2...:集計式:フィルター条件}
LOD_EXCLUDE{ディメンション1,ディメンション2...:集計式:フィルター条件}
フィルター条件はオプションです。
LOD_FIXED は、ビューのディメンションに関係なく、固定粒度で集計を計算します。デフォルトでは、LOD_FIXED 計算はデータセット全体で実行されます。式内のフィルター条件のみが適用され、クエリコントロールなどの他のフィルターは無視されます。
LOD_INCLUDE 関数と LOD_EXCLUDE 関数はチャートの構成の影響を受けます。したがって、外部フィルター条件の影響も受けます。
詳細については、「フィルター条件ルール」をご参照ください。
仕組み
実際には、LOD 式によって生成された集計データは、多くの場合、生データまたは他の集計レベルのデータとマージされて、より豊富なデータビューが作成されます。SQL では、これには通常、サブクエリと JOIN 操作が必要です。このセクションでは、FIXED、INCLUDE、および EXCLUDE レベルの LOD 式の仕組みについて説明します。
FIXED レベル
背景情報からのシナリオを思い出してください。同じテーブルで地域と県の粒度と地域の粒度の両方でデータを表示します。
この場合、FIXED 式を作成できます。
LOD_FIXED{[地域]:sum([注文金額])}
SQL では、次のクエリでこの結果を実現できます。このクエリは、各地域の注文数を計算するサブクエリを作成し、次にサブクエリ結果を元のクエリに結合します。
-- 簡略化された構造
-- lod_fixed{[地域]:sum([注文金額])}
SELECT
LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0, -- 地域
LOD_TM.`LOD_55512959145CF3` AS LOD_1, -- 県
LOD_TM.`LOD_8BE7507A47AD81` AS LOD_2, -- 注文金額
LOD_TP_0.`LOD_measure_result` AS LOD_3 -- lod_fixed{[地域]:sum([注文金額])}
FROM
(
SELECT -- メインクエリ:地域、県、sum(注文金額)
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95, /* 地域 */
ADR_T_1_.`province` AS LOD_55512959145CF3, /* 県 */
SUM(ADR_T_1_.`order_amt`) AS LOD_8BE7507A47AD81 /* 注文金額の合計 */
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_ /* 会社売上記録 */
GROUP BY
ADR_T_1_.`area`, /* 地域 */
ADR_T_1_.`province` /* 県 */
ORDER BY
LOD_07AEF3F2F99A95 ASC, /* 地域昇順 */
LOD_55512959145CF3 ASC /* 県昇順 */
LIMIT
0, 20
) AS LOD_TM
INNER JOIN (
SELECT -- LOD サブクエリ:地域、sum(注文金額)
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95, /* 地域 */
sum(ADR_T_1_.`order_amt`) AS LOD_measure_result /* 注文金額の合計 */
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_ /* 会社売上記録 */
GROUP BY
ADR_T_1_.`area` /* 地域 */
) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
-- 標準構造
-- lod_fixed{[地域]:sum([注文金額])}
SELECT
LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,
LOD_TM.`LOD_55512959145CF3` AS LOD_1,
LOD_TM.`LOD_8BE7507A47AD81` AS LOD_2,
LOD_TP_0.`LOD_9D09E63F2E93FA` AS LOD_3
FROM
(
SELECT
SUM(ADR_T_1_.`order_amt`) AS LOD_8BE7507A47AD81,
ADR_T_1_.`province` AS LOD_55512959145CF3,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`province`,
ADR_T_1_.`area`
ORDER BY
LOD_07AEF3F2F99A95 ASC,
LOD_55512959145CF3 ASC
LIMIT
0, 20
) AS LOD_TM
INNER JOIN (
SELECT
LOD_TL.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
LOD_TL.`LOD_55512959145CF3` AS LOD_55512959145CF3,
SUM(LOD_TR.`LOD_measure_result`) AS LOD_9D09E63F2E93FA
FROM
(
SELECT
ADR_T_1_.`province` AS LOD_55512959145CF3,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`province`,
ADR_T_1_.`area`
) AS LOD_TL
INNER JOIN (
SELECT
sum(ADR_T_1_.`order_amt`) AS LOD_measure_result,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`area`
) AS LOD_TR ON LOD_TL.`LOD_07AEF3F2F99A95` = LOD_TR.`LOD_07AEF3F2F99A95`
GROUP BY
LOD_TL.`LOD_07AEF3F2F99A95`,
LOD_TL.`LOD_55512959145CF3`
) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
AND LOD_TM.`LOD_55512959145CF3` = LOD_TP_0.`LOD_55512959145CF3`INCLUDE レベル
地域の粒度でデータを表示し、その地域内で注文量が最大の県の割合を同じテーブルに表示する場合はどうでしょうか。
この場合、INCLUDE 式を作成できます。
MAX(LOD_INCLUDE{[県]:SUM([注文金額])}) / SUM([注文金額])
SQL では、次のクエリでこの結果を実現できます。このクエリは、各地域と県の組み合わせの注文数を計算するサブクエリを作成し、次にサブクエリ結果を元のクエリに結合します。
-- 簡略化された構造
-- MAX(lod_include{[県]:SUM([注文金額])}) / SUM([注文金額])
SELECT
LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0, -- 地域
LOD_TP_0.`LOD_EC796C51A8ABAB` / LOD_TM.`temp_calculation_0` AS LOD_1 -- MAX(lod_include{[県]:SUM([注文金額])}) / SUM([注文金額])
FROM
(
SELECT -- メインクエリ:地域、sum(注文金額)
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95, /* 地域 */
sum(ADR_T_1_.`order_amt`) AS temp_calculation_0 /* 注文金額の合計 */
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_ /* 会社売上記録 */
GROUP BY
ADR_T_1_.`area` /* 地域 */
ORDER BY
LOD_07AEF3F2F99A95 ASC /* 地域昇順 */
LIMIT
0, 20
) AS LOD_TM
INNER JOIN (
SELECT -- LOD サブクエリ:地域、max(注文金額)
LOD_TP_0.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95, /* 地域 */
MAX(LOD_TP_0.`LOD_measure_result`) AS LOD_EC796C51A8ABAB /* 注文金額の最大値 */
FROM
(
SELECT -- 地域、県、sum(注文金額)
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95, /* 地域 */
ADR_T_1_.`province` AS LOD_55512959145CF3, /* 県 */
SUM(ADR_T_1_.`order_amt`) AS LOD_measure_result /* 注文金額の合計 */
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_ /* 会社売上記録 */
GROUP BY
ADR_T_1_.`area`, /* 地域 */
ADR_T_1_.`province` /* 県 */
) AS LOD_TP_0
GROUP BY
LOD_TP_0.`LOD_07AEF3F2F99A95` /* 地域 */
) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
-- 標準構造
-- MAX(lod_include{[県]:SUM([注文金額])}) / SUM([注文金額])
SELECT
LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,
LOD_TP_0.`LOD_EC796C51A8ABAB` / LOD_TM.`temp_calculation_0` AS LOD_1
FROM
(
SELECT
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
sum(ADR_T_1_.`order_amt`) AS temp_calculation_0
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`area`
ORDER BY
LOD_07AEF3F2F99A95 ASC
LIMIT
0, 20
) AS LOD_TM
INNER JOIN (
SELECT
LOD_TL.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
MAX(LOD_TR.`LOD_measure_result`) AS LOD_EC796C51A8ABAB
FROM
(
SELECT
ADR_T_1_.`province` AS LOD_55512959145CF3,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`province`,
ADR_T_1_.`area`
) AS LOD_TL
INNER JOIN (
SELECT
SUM(ADR_T_1_.`order_amt`) AS LOD_measure_result,
ADR_T_1_.`province` AS LOD_55512959145CF3,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`province`,
ADR_T_1_.`area`
) AS LOD_TR ON LOD_TL.`LOD_07AEF3F2F99A95` = LOD_TR.`LOD_07AEF3F2F99A95`
GROUP BY
LOD_TL.`LOD_07AEF3F2F99A95`
) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`EXCLUDE レベル
同じテーブルで地域と県と地域の両方の粒度でデータを表示するには、FIXED レベルの LOD 式を使用して集計の「地域」ディメンションを指定できます。または、EXCLUDE レベルの LOD 式を使用することもできます。チャートにはすでに地域と県のディメンションが含まれているため、集計前に「県」ディメンションを除外することで同じ結果を得ることができます。これが EXCLUDE レベルの LOD 式の背後にあるロジックです。
この場合、EXCLUDE 式を作成できます。
LOD_EXCLUDE{[県]:SUM([注文番号])}
SQL では、次のクエリでこの結果を実現できます。このクエリは、各地域の注文数を計算するサブクエリを作成し、次にサブクエリ結果を元のクエリに結合します。
-- 簡略化された構造
-- lod_EXCLUDE{[県]:SUM([注文番号])}
SELECT
LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0, -- 地域
LOD_TM.`LOD_55512959145CF3` AS LOD_1, -- 県
LOD_TM.`LOD_140423A9870F07` AS LOD_2, -- 注文番号
LOD_TP_0.`LOD_measure_result` AS LOD_3 -- lod_EXCLUDE{[県]:SUM([注文番号])}
FROM
(
SELECT -- メインクエリ:地域、県、sum(注文番号)
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95, /* 地域 */
ADR_T_1_.`province` AS LOD_55512959145CF3, /* 県 */
SUM(ADR_T_1_.`order_number`) AS LOD_140423A9870F07 /* 注文番号の合計 */
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_ /* 会社売上記録 */
GROUP BY
ADR_T_1_.`area`, /* 地域 */
ADR_T_1_.`province` /* 県 */
ORDER BY
LOD_07AEF3F2F99A95 ASC, /* 地域昇順 */
LOD_55512959145CF3 ASC /* 県昇順 */
LIMIT
0, 20
) AS LOD_TM
INNER JOIN (
SELECT -- LOD サブクエリ:地域、sum(注文番号)
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95, /* 地域 */
SUM(ADR_T_1_.`order_number`) AS LOD_measure_result /* 注文番号の合計 */
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_ /* 会社売上記録 */
GROUP BY
ADR_T_1_.`area` /* 地域 */
) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
-- 標準構造
-- lod_EXCLUDE{[県]:SUM([注文番号])}
SELECT
LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,
LOD_TM.`LOD_55512959145CF3` AS LOD_1,
LOD_TM.`LOD_140423A9870F07` AS LOD_2,
LOD_TP_0.`LOD_90EDFE3F5B628A` AS LOD_3
FROM
(
SELECT
SUM(ADR_T_1_.`order_number`) AS LOD_140423A9870F07,
ADR_T_1_.`province` AS LOD_55512959145CF3,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`province`,
ADR_T_1_.`area`
ORDER BY
LOD_07AEF3F2F99A95 ASC,
LOD_55512959145CF3 ASC
LIMIT
0, 20
) AS LOD_TM
INNER JOIN (
SELECT
LOD_TL.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
LOD_TL.`LOD_55512959145CF3` AS LOD_55512959145CF3,
SUM(LOD_TR.`LOD_measure_result`) AS LOD_90EDFE3F5B628A
FROM
(
SELECT
ADR_T_1_.`province` AS LOD_55512959145CF3,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`province`,
ADR_T_1_.`area`
) AS LOD_TL
INNER JOIN (
SELECT
SUM(ADR_T_1_.`order_number`) AS LOD_measure_result,
ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
FROM
`qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
ADR_T_1_.`area`
) AS LOD_TR ON LOD_TL.`LOD_07AEF3F2F99A95` = LOD_TR.`LOD_07AEF3F2F99A95`
GROUP BY
LOD_TL.`LOD_07AEF3F2F99A95`,
LOD_TL.`LOD_55512959145CF3`
) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
AND LOD_TM.`LOD_55512959145CF3` = LOD_TP_0.`LOD_55512959145CF3`FIXED 関数のアプリケーション
FIXED 詳細レベル式は、ビュー内のディメンションに関係なく、指定されたディメンションを使用して値を計算します。
アプリケーションシナリオ 1:地域ごとの総売上高を計算する
シナリオの説明
地理的分布別に販売注文を分析する場合、データテーブルには地域と県のディメンションが含まれています。FIXED 式を使用して、各地域の合計金額を計算できます。FIXED LOD 式は、ビュー内の他のディメンションを無視して、式で指定されたディメンションのみに基づいて値を計算します。これにより、県レベルの詳細に関係なく、対応する地域の総売上高を計算できます。
手順
計算フィールドを作成します。
フィールド式:LOD_FIXED{[地域]:BI_SUM([注文金額])}
意味:地域別に注文金額の合計を計算します。

チャートを作成します。
この例では、クロステーブルを作成します。
前の手順で作成した地域別合計金額フィールドを[列] 領域にドラッグします。地域フィールドと県フィールドを[行] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、同じ地域の合計金額が一貫しており、県による影響を受けないことがわかります。
アプリケーションシナリオ 2:顧客の注文頻度
シナリオの説明
営業マネージャーは、1 回、2 回、3 回以上注文した顧客の数を知りたいと考えています。顧客の購入頻度の数と分布を調べることで、マネージャーは顧客のロイヤルティとリピート購入を分析できます。このシナリオでは、LOD 式を使用して、あるメジャーを別のメジャーでセグメント化できます。
この例では、LOD_FIXED 関数を使用して、注文数を顧客数に基づくディメンションに変換し、顧客の注文頻度を取得します。
手順
計算フィールドを作成します。
フィールド式:LOD_FIXED{[customer_name]:COUNT([order_id])}
意味:顧客名に基づいて各顧客の購入数を計算します。

チャートを作成します。
この例では、縦棒グラフを作成します。
前の手順で作成した購入数フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。customer_name フィールドを[値軸/メジャー] 領域にドラッグし、[個別カウント] に設定します。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、最も多い顧客は 7 回購入し、1 人の顧客は 58 回も購入したことがわかります。
アプリケーションシナリオ 3:地域別利益率リーダーボード
シナリオの説明
地域営業部長は、各地域が総利益にどれだけ貢献しているかを知り、どの地域がトップの貢献者であるかを一目で確認したいと考えています。このシナリオでは、詳細計算 -> 合計に対する割合を使用するか、LOD 式を使用して柔軟性を高めることができます。
この例では、LOD_FIXED 関数を使用して地域別利益率リーダーボードを作成します。
手順
計算フィールドを作成します。
フィールド式:LOD_FIXED{:SUM([profit_amt])}
意味:この例では、FIXED 構文は一意です。式はディメンションを指定していません。これは、データセット全体で総利益額を集計することを意味します。
次に、式に示すように、SUM([profit_amt]) を前の LOD 関数で除算します。SUM([profit_amt]) / SUM(LOD_FIXED{:SUM([profit_amt])})。これにより、各地域の利益率が計算されます。

チャートを作成します。
この例では、リーダーボードを作成します。
前の手順で作成した総利益率フィールドを[指標/メジャー] 領域にドラッグします。area フィールドを[カテゴリ/ディメンション] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、華南と華北がトップ 2 の貢献者であることがわかります。華東?と華西南の貢献度は最も低く、利益額はマイナスです。「華東?」データはダーティデータのようです。
アプリケーションシナリオ 4:年間新規ユーザー統計
シナリオの説明
製品が成長しているかどうかを判断するにはどうすればよいでしょうか。通常の PV(ページビュー)および UV(ユニークビジター)メトリックに加えて、ユーザーロイヤルティを追跡することもできます。たとえば、長い間あなたと一緒にいたユーザーが引き続きあなたの製品を使用し、購入している場合、あなたの製品は粘着性があると考えることができます。これを達成するには、LOD 式を使用できます。
この例では、LOD_FIXED 関数を使用して年間新規ユーザー統計を作成します。
手順
計算フィールドを作成します。
フィールド式:LOD_FIXED{[customer_name]:MIN(DATE_FORMAT([buy_date], '%Y'))}
意味:年粒度で各顧客の最も早い注文日を見つけます。データベース構文と互換性のある日付関数を使用して、必要に応じて粒度を調整できます。

チャートを作成します。
この例では、折れ線グラフを作成します。
前の手順で作成した顧客の初回購入年フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。売上高を[値軸/メジャー] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、2013 年に開始したユーザーが依然として大きく貢献していることがわかり、これは製品の粘着性が高いことを示しています。
アプリケーションシナリオ 5:注文詳細に基づいて年間新規顧客の傾向を分析する
シナリオの説明
各顧客の最も早い購入年を計算し、その年に基づいて顧客数の分布を分析します。
手順
計算フィールドを作成します。
フィールド 1:LOD_FIXED{[顧客 ID]: min(BI_YEAR([注文日]))}
このフィールドに顧客の初回購入年という名前を付けます。データ型をディメンションに、フィールド型をテキストに設定します。
フィールド 2:顧客数=count(distinct [顧客 ID])
チャートを作成します。
この例では、縦棒グラフを作成してデータを表示します。顧客の初回購入年フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。顧客数フィールドを[値軸/メジャー] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、各年の新規顧客数を確認できます。数は 2021 年にピークに達し、それ以降大幅に減少しています。
アプリケーションシナリオ 6:注文詳細に基づいて購入頻度別の顧客の分布を分析する
シナリオの説明
各顧客の購入頻度を計算し、その頻度に基づいて顧客数の分布を分析します。
手順
計算フィールドを作成します。
フィールド 1:LOD_FIXED{[顧客 ID]: count(distinct [注文 ID])}
このフィールドに顧客の購入頻度という名前を付けます。データ型をディメンションに、フィールド型をテキストに設定します。
フィールド 2:顧客数=count(distinct [顧客 ID])
チャートを作成します。
この例では、縦棒グラフを作成してデータを表示します。顧客の購入頻度フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。顧客数フィールドを[値軸/メジャー] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、購入頻度が 3 回の顧客が最も多いことがわかります。
アプリケーションシナリオ 7:年間注文金額を分析し、主要年 2023 と比較する
シナリオの説明
固定範囲内のデータを分析し、比較を行います。たとえば、年間注文データを分析し、主要年 2023 と比較します。
手順
計算フィールドを作成します。
sum([注文金額])/ LOD_FIXED{: sum( case when BI_YEAR([注文日]) ='2023' then [注文金額] else 0 end)} -1フィールドの内訳:
2023 年の注文金額を計算します。数式:LOD_FIXED{:sum(case when BI_YEAR([注文日]) ='2023' then [注文金額] else 0 end)}
各年の注文金額を計算し、2023 年の注文金額と比較します。数式:sum([注文金額])/[2023 年の注文金額]-1。フィールドに2023 年との比較という名前を付けます。
チャートを作成します。
この例では、クロステーブルを作成します。注文日(年)フィールドを[行] 領域にドラッグします。注文金額フィールドと2023 年との比較フィールドを[列] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、各注文年の注文金額と 2023 年との比較を確認できます。
アプリケーションシナリオ 8:各年の月ごとの利益が出ている日数と利益が出ていない日数を分析する
シナリオの説明
日次利益統計に基づいて、各日に利益が出ているか利益が出ていないかのタグを付けます。次に、損益タグ、注文年、注文月に基づいて日数をカウントします。
手順
計算フィールドを作成します。
フィールド 1:
case when LOD_FIXED{[注文日]:sum([利益])}>0 then '利益が出ている' else '利益が出ていない' endこのフィールドに日次損益タグという名前を付けます。データ型をディメンションに、フィールド型をテキストに設定します。
フィールドの内訳:
注文日別に総利益を計算します。数式:LOD_FIXED{[注文日]:sum([利益])}
総利益が 0 より大きい場合は「利益が出ている」を返します。それ以外の場合は、「利益が出ていない」を返します。数式:case when [総利益]>0 then '利益が出ている' else '利益が出ていない' end
フィールド 2:日数=count(distinct [注文日])
フィールド 3:月=BI_MONTH([注文日])
チャートを作成します。
縦棒と折れ線グラフの分割ディメンションを使用して、小さなマルチプルを作成できます。積み上げトレンドまたはカテゴリトレンドを使用してデータを視覚化すると、比較とトレンドを明確に確認できます。
この例では、積み上げ縦棒グラフを作成して、利益が出ている日数と利益が出ていない日数の分布を積み上げトレンドとして表示し、2 つの面グラフを作成して、利益が出ている日数と利益が出ていない日数の分布を個別に表示します。
まず、積み上げ縦棒グラフを作成します。月フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。日数フィールドを[値軸/メジャー] 領域にドラッグします。日次損益タグフィールドを[カラー凡例/ディメンション] 領域にドラッグします。注文日(年)フィールドを[分割/ディメンション] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

次に、利益が出ていない日数と利益が出ている日数の 2 つの面グラフを作成します。
両方の面グラフで、月フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。日数フィールドを[値軸/メジャー] 領域にドラッグします。注文日(年)フィールドを[分割/ディメンション] 領域にドラッグします。
フィルターで、日次損益タグフィールドをドラッグします。利益が出ていない日数のチャートでは、フィルター条件を「利益が出ていない」の完全一致に設定します。利益が出ている日数のチャートでは、フィルター条件を「利益が出ている」の完全一致に設定します。

[更新] をクリックします。システムはチャートを自動的に更新します。

これで、各年の各月の利益が出ている日数と利益が出ていない日数の傾向を視覚的に比較できます。

INCLUDE 関数のアプリケーション
INCLUDE 詳細レベル式は、ビュー内のディメンションと式で指定されたディメンションを使用して値を計算します。INCLUDE 関数は、より詳細な分析のために、より詳細なレベルの計算を追加します。
アプリケーションシナリオ 1:顧客あたりの平均売上高を計算する
シナリオの説明
さまざまな製品の売上実績を分析する場合、顧客あたりの平均売上高を表示する必要があります。INCLUDE を使用して、最初に各顧客の注文売上高合計を計算し、次に平均集計方法を使用して結果を表示できます。
手順
計算フィールドを作成します。
フィールド式:LOD_INCLUDE{[ユーザー ID]:SUM([注文金額])}
意味:ユーザー ID 別に各顧客の注文金額合計を計算します。

チャートを作成します。
この例では、クロステーブルを作成します。
注文金額フィールドと顧客の注文金額合計フィールドを[列] 領域にドラッグします。製品タイプフィールドを[行] 領域にドラッグします。顧客の注文金額合計の集計方法を平均に設定します。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、製品タイプ別の顧客あたりの平均売上高を確認できます。
アプリケーションシナリオ 2:各営業担当者の平均最大取引金額
シナリオの説明
営業部長は、地域別に計算された各営業担当者が達成した最大取引金額の平均を知り、それを地図上に表示する必要があります。このシナリオでは、LOD 式を使用して、地域レベルでデータを直感的に表示できます。また、営業担当者レベルにドリルダウンして、どの販売ゾーンが好調で、どの販売ゾーンが不調であるかを確認することもできます。これは、さまざまな地域の営業担当者に異なる目標を設定するのに役立ちます。
この例では、LOD_INCLUDE 関数を使用して各営業担当者の平均最大取引金額を見つけます。
手順
計算フィールドを作成します。
フィールド式:AVG(LOD_INCLUDE{[sales_name]:MAX([price])})
意味:営業担当者名を既存のビューに追加の分析粒度として追加し、最大売上高の平均を計算します。

チャートを作成します。
この例では、カラーマップを作成します。
前の手順で作成した地域別営業担当者あたりの平均最大売上高フィールドを[色の彩度/メジャー] 領域にドラッグします。area フィールドを[地理的エリア軸/ディメンション] 領域にドラッグします。
[スタイル] -> [ブロック] で、このフィールドの最大値の地域を赤でマークします。

[更新] をクリックします。システムはチャートを自動的に更新します。

これで、最大売上高は華東地域で大きく、北西/南西地域で小さいことがわかります。
アプリケーションシナリオ 3:注文金額が 500,000 を超える地域の総利益を計算する
シナリオの説明
各地域の注文金額を計算し、注文金額が 500,000 を超える地域の総利益を見つけます。
手順
計算フィールドを作成します。
CASE WHEN LOD_INCLUDE{[地域]:BI_SUM([注文金額])}>500000 then [利益額] else 0 endフィールドの内訳:
地域別に注文金額を計算します。フィールドに地域別注文金額という名前を付けます。数式:LOD_INCLUDE{[地域]:BI_SUM([注文金額])}
注文金額が 500,000 を超える地域を見つけ、その利益額を計算します。数式:CASE WHEN [地域別注文金額]>500000 then [利益額] else 0 end
最後に、結果を合計する(SUM を使用するか、チャートのフィールドの集計方法を合計に設定する)と、注文金額が 500,000 を超える地域の総利益が得られます。
チャートを作成します。
この例では、かんばんを作成してデータを表示します。クロステーブルを作成してデータの精度を確認することもできます。かんばんで、新しく作成されたフィールドを[かんばん指標/メジャー] 領域にドラッグし、集計方法を合計に設定します。クロステーブルで、地域を[行] 領域にドラッグし、注文金額、利益額、新しく作成されたフィールドを[列] 領域にドラッグします。集計方法を合計に設定します。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、注文金額が 500,000 を超える地域は東北、華東、華北、華南であることがわかります。総利益は 1.48M です。
アプリケーションシナリオ 4:列車で出荷された製品の注文金額が 100,000 を超える地域の総利益を製品タイプ別にグループ化して計算する
シナリオの説明
これはアプリケーションシナリオ 3の上級バージョンです。列車で出荷された製品をフィルタリングし、製品タイプをグループ化として追加します。目標は、列車で出荷された製品の注文金額が 100,000 を超える地域の総利益を製品タイプ別にグループ化して計算することです。このシナリオでは、複数の関数をネストします。理解しやすくするために、分解できます。
手順
計算フィールドを作成します。
SUM( CASE WHEN LOD_INCLUDE{[製品タイプ],[地域]:sum(if([出荷方法]='列車',[注文金額],0))}>100000 then [利益額] else 0 end)フィールドの内訳:
地域別に集計された、各製品タイプの列車で出荷された製品の注文金額合計を計算します。フィールドに製品タイプ別地域別注文金額という名前を付けます。数式:LOD_INCLUDE{[製品タイプ],[地域]:sum(if([出荷方法]='列車',[注文金額],0))}
注文金額が 100,000 を超える地域を見つけ、総利益を計算します。数式:CASE WHEN [製品タイプ別地域別注文金額]>100000 then [利益額] else 0 end
最後に、SUM を使用して合計を取得します。
チャートを作成します。
2 つのかんばんを作成してデータを表示します。かんばん 1 で、新しく作成されたフィールドを[かんばん指標/メジャー] 領域にドラッグします。かんばん 2 で、新しく作成されたフィールドを[かんばん指標/メジャー] 領域にドラッグし、製品タイプを[かんばんラベル/ディメンション] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、列車で出荷された製品の注文金額が 100,000 を超える地域の総利益は 3.1M、事務用品は 1.23M、家具用品は 445K、技術用品は 1.41M であることがわかります。
アプリケーションシナリオ 5:列車で出荷された製品の注文金額が 100,000 を超える地域の顧客数を製品タイプ別にグループ化して計算する
シナリオの説明
このシナリオはアプリケーションシナリオ 4に似ていますが、総利益を計算する代わりに顧客数を計算します。
手順
計算フィールドを作成します。
COUNT(DISTINCT( CASE WHEN LOD_INCLUDE{[製品タイプ],[地域]:sum(if([出荷方法]='列車',[注文金額],0))}>100000 then [ユーザー ID] else null end))フィールドの内訳:
地域別に集計された、各製品タイプの列車で出荷された製品の注文金額合計を計算します。フィールドに製品タイプ別地域別注文金額という名前を付けます。数式:LOD_INCLUDE{[製品タイプ],[地域]:sum(if([出荷方法]='列車',[注文金額],0))}
注文金額が 100,000 を超える地域を見つけ、対応する顧客を特定します。数式:CASE WHEN [製品タイプ別地域別注文金額]>100000 then [ユーザー ID] else null end
最後に、COUNT(DISTINCT()) を使用してユニーク顧客をカウントします。
チャートを作成します。
この例では、かんばんを作成します。前の手順で新しく作成されたフィールドを[かんばん指標/メジャー] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。
これで、列車で出荷された製品の注文金額が 100,000 を超える地域の顧客数は 1,026 であることがわかります。
アプリケーションシナリオ 6:注文金額が 500,000 を超える地域の数を計算する
シナリオの説明
このシナリオはアプリケーションシナリオ 3に似ていますが、総利益を計算する代わりに地域の数を計算します。
手順
計算フィールドを作成します。
COUNT(DISTINCT( CASE WHEN LOD_INCLUDE{[地域]:sum([注文金額])}>500000 then [地域] else null end))フィールドの内訳:
地域別に注文金額を計算します。フィールドに地域別注文金額という名前を付けます。数式:LOD_INCLUDE{[地域]:sum([注文金額])}
注文金額が 500,000 を超える地域を見つけます。数式:CASE WHEN [地域別注文金額]>500000 then [地域] else null end
最後に、COUNT(DISTINCT()) を使用してユニーク地域をカウントします。
チャートを作成します。
この例では、かんばんを作成してデータを表示します。クロステーブルを作成してデータの精度を確認することもできます。かんばんで、新しく作成されたフィールドを[かんばん指標/メジャー] 領域にドラッグします。クロステーブルで、地域を[行] 領域に、注文金額を[列] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、注文金額が 500,000 を超える地域が 3 つあることがわかります。華南、華東、華北です。
アプリケーションシナリオ 7:2024 年の各製品タイプの県ごとの平均売上高を計算する
シナリオの説明
2024 年の各製品タイプの県ごとの平均売上高を計算します。
手順
計算フィールドを作成します。
AVG( LOD_INCLUDE{[製品タイプ],[県]: SUM(IF(YEAR([注文日])='2024',[注文金額],0)) } )フィールドの内訳:
2024 年の注文金額を計算します。フィールドに2024 年の注文金額という名前を付けます。数式:IF(YEAR([注文日])='2024',[注文金額],0)
製品タイプと県別に売上高を計算します。数式:LOD_INCLUDE{[製品タイプ],[県],SUM[2024 年の注文金額]}
AVG を使用して平均を見つけます。
チャートを作成します。
この例では、かんばんを作成してデータを表示します。クロステーブルを作成してデータの精度を確認することもできます。かんばんで、新しく作成されたフィールドを[かんばん指標/メジャー] 領域に、製品タイプを[かんばんラベル/ディメンション] 領域にドラッグします。クロステーブルで、製品タイプを[行] 領域に、注文金額を[列] 領域にドラッグし、2024 年のデータをフィルタリングします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、2024 年の事務用品の注文金額は 10.7M で、県の平均売上高は 10.7M/30 県、つまり 357K であることがわかります。他の製品タイプも同じ方法で計算されます。
アプリケーションシナリオ 8:2024 年の各製品タイプの県ごとの平均顧客数を計算する
シナリオの説明
このシナリオはアプリケーションシナリオ 7に似ていますが、平均売上高の代わりに平均顧客数を計算します。
手順
計算フィールドを作成します。
AVG( LOD_INCLUDE{[製品タイプ],[県]: COUNT(DISTINCT(IF(YEAR([注文日])='2024',[ユーザー ID],null))) } )フィールドの内訳:
2024 年の顧客数をカウントします。フィールドに2024 年の顧客数という名前を付けます。数式:IF(YEAR([注文日])='2024',[ユーザー ID],null)
製品タイプと県別に顧客数をカウントします。数式:LOD_INCLUDE{[製品タイプ],[県],SUM[2024 年の顧客数]}
AVG を使用して平均を見つけます。
チャートを作成します。
この例では、かんばんを作成してデータを表示します。クロステーブルを作成してデータの精度を確認することもできます。かんばんで、新しく作成されたフィールドを[かんばん指標/メジャー] 領域に、製品タイプを[かんばんラベル/ディメンション] 領域にドラッグします。クロステーブルで、製品タイプを[行] 領域に、製品タイプ別県別顧客数を[列] 領域にドラッグし、2024 年のデータをフィルタリングします。[更新] をクリックします。システムはチャートを自動的に更新します。
製品タイプ別、都道府県別の顧客数=LOD_INCLUDE{[製品タイプ],[都道府県]:COUNT(DISTINCT([ユーザー ID]))}

これで、2024 年の事務用品の県の顧客数は 212 で、県の平均顧客数は 212/31 県、つまり 6.839 であることがわかります。他の製品タイプも同じ方法で計算されます。
アプリケーションシナリオ 9:各県で利益目標を達成した製品の割合と各製品の利益の差を計算する
シナリオの説明
県の利益目標の達成状況がわかっている場合は、どの特定の製品が目標を達成し、どの製品が目標を達成していないかをさらに分析できます。
これは、県レベルで各製品の利益目標の差を計算し、目標を達成した製品の数と製品の総数をカウントし、次に割合を計算することを意味します。
このシナリオでは、2 つのチャートを作成し、フィルターの相互作用を設定する必要があります。左側の製品統計データをクリックすると、右側に特定の製品の詳細が表示されます。
手順
計算フィールドを作成します。
フィールド 1:製品の利益目標の差
LOD_INCLUDE{[製品] : sum([利益]-[利益目標])}。意味:製品タイプ別に各製品の利益目標の差を計算します。
フィールド 2:目標を達成した製品の割合
count(distinct case when [製品の利益目標の差]>0 then [製品] else null end) /count(distinct [製品])フィールドの内訳:
製品の利益目標の差が 0 より大きい場合は、ユニーク製品の数をカウントして目標を達成した製品の数を見つけます。数式:count(distinct case when [製品の利益目標の差]>0 then [製品] else null end)
ユニークな製品の総数をカウントします。数式:count(distinct [製品])
上記の 2 つのフィールド、[目標を達成した製品の数]/[製品の総数] を除算して、目標を達成した製品の割合を取得します。
チャートを作成します。
この例では、2 つのチャートを作成し、フィルターの相互作用を設定します。
まず、製品の利益目標の差を表示する横棒グラフを作成します。製品フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。製品の利益目標の差フィールドを[値軸/メジャー] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

次に、目標を達成した製品の割合を表示する別の横棒グラフを作成します。県フィールドを[カテゴリ軸/ディメンション] 領域にドラッグします。目標を達成した製品の割合フィールドを[値軸/メジャー] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

2 つの横棒グラフの間にフィルターの相互作用を設定します。
説明この例では、両方の横棒グラフで同じデータセットを使用しています。ダッシュボードで自動フィルター相互作用が有効になっている場合、チャートは手動で構成しなくても自動的にリンクされます。自動フィルター相互作用が有効になっていない場合は、手動で構成できます。
詳細については、「フィルターの相互作用」をご参照ください。
フィルターの相互作用は次のように機能します。

これで、県の利益目標の達成状況を確認し、各県で目標を達成した製品と目標を達成していない製品を確認できます。
アプリケーションシナリオ 10:さまざまな地域のアウトレットのパフォーマンスを評価および比較する
シナリオの説明
アウトレットの売上と粗利益の詳細データに基づいて、主要地域と小地域の総売上と粗利益を計算します。また、対応する地域内のアウトレットあたりの平均売上と粗利益を計算します。また、フィルターディメンションを使用して、主要地域と小地域レベル、または主要地域レベルのみでアウトレットのパフォーマンスを表示し、さまざまな地域のアウトレットのパフォーマンスを評価および比較することもできます。
手順
計算フィールドを作成します。
フィールド 1:アウトレットの粗利益=LOD_INCLUDE{[アウトレット名]:sum([粗利益])}
フィールド 2:アウトレットの売上高=LOD_INCLUDE{[アウトレット名]:sum([売上高])}
チャートを作成します。
この例では、クロステーブルを作成し、条件付き書式を構成します。
クロステーブルで、主要地域と小地域を[行] 領域にドラッグします。[列] 領域で、2 つのアウトレットの粗利益フィールドをドラッグし、一方を平均に、もう一方を合計に設定します。2 つのアウトレットの売上高フィールドをドラッグし、一方を平均に、もう一方を合計に設定します。

アウトレットの粗利益(平均)フィールドとアウトレットの売上高(平均)フィールドの内容をアウトレットあたりとして表示します。アウトレットの粗利益(合計)フィールドとアウトレットの売上高(合計)フィールドの内容を合計として表示します。
[スタイル] -> [セル] -> [メジャー表示グループ] で、メジャーのグループ化を設定します。

視覚的なプレゼンテーションを向上させるために、条件付き書式を構成できます。この例では、4 つの列フィールドの条件付き書式は次のとおりです。

[更新] をクリックします。システムはチャートを自動的に更新します。

これで、各地域の合計とアウトレットあたりの売上と粗利益を直感的に確認できます。
アプリケーションシナリオ 11:県の業績に基づいて地域を評価する
シナリオの説明
各地域内で、県別の総売上高を計算します。売上がしきい値を超える県の数(フィルター条件入力に基づく)をカウントします。また、それらの県の顧客数と県あたりの平均顧客数を見つけます。さまざまなしきい値を入力して、データ結果を表示できます。
この例のしきい値は、値プレースホルダーを参照しています。詳細については、「値プレースホルダー」をご参照ください。
手順
計算フィールドを作成します。
フィールド 1:対象となる県の数
count(distinct case when LOD_INCLUDE{[県]:sum([注文金額])} > $val{ord_amt_level} then [県] else null end)フィールドの内訳:
県別に注文金額を計算します。数式:LOD_INCLUDE{[県]:sum([注文金額])}。フィールドに県別注文金額という名前を付けます。
県別注文金額が値プレースホルダーord_amt_level より大きい場合は、県を返します。それ以外の場合は、null を返します。数式:case when [県別注文金額]> $val{ord_amt_level} then [県] else null end。フィールドに対象となる県という名前を付けます。
ユニークな対象となる県の数をカウントします。数式:count(distinct [対象となる県])
フィールド 2:県内の顧客総数
count(distinct case when lod_include{[県]:sum([注文金額])} > $val{ord_amt_level} then [顧客 ID] else null end)フィールドの内訳:
県別に注文金額を計算します。数式:LOD_INCLUDE{[県]:sum([注文金額])}。フィールドに県別注文金額という名前を付けます。
県別注文金額が値プレースホルダーord_amt_level より大きい場合は、顧客 ID を返します。それ以外の場合は、null を返します。数式:case when [県別注文金額]> $val{ord_amt_level} then [顧客 ID] else null end。フィールドに県内の顧客という名前を付けます。
ユニークな県内の顧客の数をカウントします。数式:count(distinct [県内の顧客])
フィールド 3:県あたりの平均顧客数=[県内の顧客総数]/[対象となる県の数]。フィールド 2 をフィールド 1 で除算します。
チャートを作成します。
クロステーブルを作成します。地域を[行] 領域にドラッグします。県の数、県内の顧客数、県あたりの平均顧客数を[列] 領域にドラッグします。
チャート内クエリ条件を挿入します。クエリ条件を県の売上高に設定し、値プレースホルダーord_amt_level に関連付け、デフォルト値を 100000 に設定します。

[更新] をクリックします。システムはチャートを自動的に更新します。

これで、さまざまな県の売上高を入力して、データの変更をフィルタリングして表示できます。
EXCLUDE 関数のアプリケーション
EXCLUDE 詳細レベル式は、式で指定されたディメンションをビューの詳細レベルから削除することによって値を計算します。
アプリケーションシナリオ 1:地域内の各県の売上比率を計算する
シナリオの説明
地域内の各県の売上データを分析する場合、その地域の総売上データと、地域に対する県の売上比率も表示できます。EXCLUDE 関数を使用して計算から県ディメンションを削除すると、地域全体の総売上高を計算できます。
手順
計算フィールドを作成します。
フィールド式:LOD_EXCLUDE{[県]:SUM([注文金額])}
意味:計算から県ディメンションを除外することにより、地域レベルで売上高を計算します。

チャートを作成します。
この例では、クロステーブルを作成します。注文金額フィールドと地域別売上高合計フィールドを[列] 領域にドラッグします。地域フィールドと県フィールドを[行] 領域にドラッグします。[更新] をクリックします。システムはチャートを自動的に更新します。

これで、各県の注文金額と対応する地域の総売上高の両方を確認できます。
アプリケーションシナリオ 2:各販売エリアとゾーン平均の差を計算する
シナリオの説明
ある販売会社には、国の行政区画の下に 7 つの主要な販売ゾーンがあります。各ゾーンには、県に応じて設定された複数の販売エリアがあります。年末に、営業マネージャーは、各県の販売エリアの平均売上利益とゾーン全体の平均の差を迅速に判断する必要があります。また、どのゾーンが優れており、どのゾーンがまだ改善が必要であるかを特定する必要もあります。このシナリオでは、LOD 式と条件付き書式を使用して、このようなレポートをすばやく作成できます。
この例では、LOD_EXCLUDE 関数を使用して各販売エリアとゾーン平均の差を見つけます。
手順
計算フィールドを作成します。
フィールド式:AVG(LOD_EXCLUDE{[県]:AVG([price])})
意味:集計から県ディメンションを削除し、ゾーンレベルで平均売上高を計算します。たとえば、この式は、華東などの各ゾーンの平均売上高を計算します。
次に、式に示すように、前の LOD 関数を AVG([price]) から減算します。AVG([price]) - AVG(LOD_EXCLUDE{[県]:AVG([price])})。これにより、各販売エリアとゾーン平均の差が計算されます。

チャートを作成します。
この例では、クロステーブルを作成します。
前の手順で作成した県の平均差フィールドを[列] 領域にドラッグします。地域フィールドと県フィールドを[行] 領域にドラッグします。
[スタイル] -> [条件付き書式] で、このフィールドの条件付き書式を設定します。0 より大きい値は赤、0 より小さい値は緑です。

[更新] をクリックします。システムはチャートを自動的に更新します。

これで、華東ゾーンでは、上海、安徽、江蘇、福建の売上がプラスで、上海が最も好調であることがすぐにわかります。山東、江西、浙江の売上が平均を下回っており、改善が必要です。
フィルター条件ルール
外部フィルター条件付きの LOD_FIXED 関数
結果がフィルター条件の影響を受けないシナリオ
LOD_FIXED_1 フィールド式:LOD_FIXED{[地域]: SUM([注文金額])}
フィルター条件:出荷方法 = "大型トラック"
結果の説明:下の図では、東北地域を例として、注文金額合計は 527,400 です。出荷方法 = "大型トラック" などの外部フィルターが適用されている場合でも、東北地域の注文金額はフィルター条件の影響を受けないため、527,400 のままです。
結論:フィルター条件ディメンションが LOD 関数の集計ディメンションと異なる場合、最終結果はフィルター条件の影響を受けません。

結果がフィルター条件の影響を受けるシナリオ
LOD_FIXED_2 フィールド式:LOD_FIXED{[地域], [製品タイプ], [出荷方法]: SUM([注文金額])}
フィルター条件:出荷方法 = "大型トラック"
結果の説明:下の図では、東北地域を例として、東北 - 事務用品の注文金額合計は 150,800 で、これは 3 つの出荷方法の金額の合計です。大型トラック (35,540)、列車 (103,100)、航空便 (12,110)。外部フィルターが出荷方法 = "大型トラック" の場合、東北 - 事務用品の注文金額は 35,540 で、これは東北 - 事務用品 - 大型トラックの注文金額です。
結論:フィルター条件ディメンションが LOD 関数の集計ディメンションと同じ場合、最終結果はフィルター条件の影響を受けます。

内部フィルター条件付きの LOD 関数
結論:LOD 式が計算される前に、内部フィルター条件に基づいてデータがフィルタリングされます。
LOD_FIXED 関数
LOD_FIXED_3 フィールド式: LOD_FIXED{[地域], [製品タイプ], [配送方法]: SUM([注文額]): [注文レベル]='中'}
結果:下の図では、東北地域を例として、東北 - 事務用品 - 大型トラックの注文金額は 35,070 です。この金額は、注文レベル = '中' でフィルタリングした後のデータで、東北 - 事務用品 - 大型トラック - 中の注文金額です。

LOD_FIXED_4 フィールド式:LOD_FIXED{[Region], [Product Type], [Shipping Method]: SUM([Order amount]): [Shipping Method]='Large Truck'}
結果:下の図では、東北地域を例として、東北 - 事務用品 - 大型トラックの注文金額は 35,540 です。これは、内部フィルター条件が LOD 集計粒度と一致する場合、LOD_FIXED 関数が出荷方法 = '大型トラック' のデータをフィルタリングすることを意味します。

LOD_INCLUDE 関数
LOD_EXCLUDE と LOD_INCLUDE のロジックは同じです。ここでは、LOD_INCLUDE を例として使用します。

LOD_INCLUDE_1 フィールド式:LOD_INCLUDE{: SUM([注文金額]): [注文レベル]='中'}
結果:下の図では、東北地域を例として、東北 - 事務用品 - 大型トラックの注文金額は 35,070 です。この金額は、注文レベル = '中' でフィルタリングした後のデータで、東北 - 事務用品 - 大型トラック - 中の注文金額です。
LOD_INCLUDE_2 フィールド式: LOD_INCLUDE{: SUM([Order amount]): [Shipping Method]='Large Truck'}
下の図では、東北地域を例として、東北 - 事務用品 - 大型トラックの注文金額は 35,540 です。これは、内部フィルター条件が LOD 集計粒度と一致する場合、LOD_INCLUDE 関数が出荷方法 = '大型トラック' のデータをフィルタリングすることを意味します。