すべてのプロダクト
Search
ドキュメントセンター

Quick BI:分析関数 (LOD 関数)

最終更新日:Feb 10, 2026

LOD 関数詳細レベル (Level of Detail) 式の略です。式間の計算粒度の不一致を解決します。このトピックでは、LOD 関数の使用方法について説明します。

制限事項

詳細テーブルは LOD 関数をサポートしていません。

背景情報

現在の Quick BI の分析は、固定のディメンションに依存しています。たとえば、エリアと省ごとの注文数を表示するには、クロステーブルの行にエリアと省 (ディメンション) を、列に注文数 (メジャー) を配置します。集計方法は [合計] に設定します。

image.png

生成される 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{<ディメンション宣言> : <集計式>}

パラメーター

  • ディメンション宣言:集計式を関連付ける 1 つ以上のディメンション。ディメンションはカンマで区切ります。

  • 集計式:実行する計算。ターゲットディメンションを定義します。

定義

指定されたディメンションで固定の集計値を計算します。チャート内の他のディメンションの影響を受けません。

出力

数値

LOD_FIXED{[エリア]: BI_SUM([注文額])}

意味:エリアのみで集計します。他のクエリディメンションとは独立して注文額を合計します。

その他の例については、「FIXED 関数の例」をご参照ください。

制限事項

Lindorm (ワイドテーブルエンジン、マルチモデル SQL)、Elasticsearch、または SAP IQ (Sybase IQ) データソースではサポートされていません。

LOD_INCLUDE

構文

LOD_INCLUDE{<ディメンション宣言> : <集計式>}

パラメーター

  • ディメンション宣言:集計式を関連付ける 1 つ以上のディメンション。ディメンションはカンマで区切ります。

  • 集計式:実行する計算。ターゲットディメンションを定義します。

定義

チャート内の追加のディメンションを使用して集計を実行します。

出力

数値

LOD_INCLUDE{[エリア]: BI_SUM([注文額])}

意味:既存のクエリディメンションにエリアを集計ディメンションとして追加します。注文額を合計します。

その他の例については、「INCLUDE 関数の例」をご参照ください。

制限事項

Lindorm (ワイドテーブルエンジン、マルチモデル SQL)、Elasticsearch、または SAP IQ (Sybase IQ) データソースではサポートされていません。

LOD_EXCLUDE

構文

LOD_EXCLUDE{<ディメンション宣言> : <集計式>}

パラメーター

  • ディメンション宣言:集計式を関連付ける 1 つ以上のディメンション。ディメンションはカンマで区切ります。

  • 集計式:実行する計算。ターゲットディメンションを定義します。

定義

チャートから特定のディメンションを除外して集計を実行します。

出力

数値

LOD_EXCLUDE{[エリア]: BI_SUM([注文額])}

意味:既存のクエリディメンションから開始します。エリアが存在する場合、それを削除します。その後、残りのディメンションを使用して注文額を合計します。

その他の例については、「EXCLUDE 関数の例」をご参照ください。

制限事項

Lindorm (ワイドテーブルエンジン、マルチモデル SQL)、Elasticsearch、または SAP IQ (Sybase IQ) データソースではサポートされていません。

操作手順

  1. データセットエディターで、[計算フィールドの作成] をクリックして設定ダイアログを開きます。

    image

  2. フィールド名 (①) を入力します。フィールド式で、必要な LOD 関数フィールド (②) を選択します。

    image

  3. 作成後、[OK] をクリックします。新しいフィールドを使用してダッシュボードチャートを作成すると、各エリアの合計注文額は製品タイプに関係なく一定になります。

    image..png

式のリファレンス

基本的な数式

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 レベル

背景情報の質問を思い出してください:1 つのテーブルにエリア-省レベルのデータとエリアレベルのデータの両方を表示するにはどうすればよいでしょうか?

FIXED 式を作成します。

LOD_FIXED{[area]:sum([order_amt])}

SQL では、サブクエリを使用してエリアごとの注文合計を計算し、それをメインクエリと JOIN します。

-- 簡略化された構造
-- lod_fixed{[area]:sum([order_amt])}
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,			-- area
    LOD_TM.`LOD_55512959145CF3` AS LOD_1,			-- province
    LOD_TM.`LOD_8BE7507A47AD81` AS LOD_2,			-- order_amt
    LOD_TP_0.`LOD_measure_result` AS LOD_3		-- lod_fixed{[area]:sum([order_amt])}
FROM
    (
        SELECT		-- メインクエリ: area, province, sum(order_amt)
            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 サブクエリ: area, sum(order_amt)
            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{[area]:sum([order_amt])}
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{[province]:SUM([order_amt])}) / SUM([order_amt])

SQL では、サブクエリを使用してエリア-省ごとの注文合計を計算し、それをメインクエリと JOIN します。

-- 簡略化された構造
-- MAX(lod_include{[province]:SUM([order_amt])}) / SUM([order_amt])
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,		-- area
    LOD_TP_0.`LOD_EC796C51A8ABAB` / LOD_TM.`temp_calculation_0` AS LOD_1  -- MAX(lod_include{[province]:SUM([order_amt])}) / SUM([order_amt])
FROM
    (
        SELECT	-- メインクエリ: area, sum(order_amt)
            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 サブクエリ: area, max(order_amt)
            LOD_TP_0.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
            MAX(LOD_TP_0.`LOD_measure_result`) AS LOD_EC796C51A8ABAB
        FROM
            (
                SELECT		-- area, province, sum(order_amt)
                    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 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`

      
-- 標準構造
-- MAX(lod_include{[province]:SUM([order_amt])}) / SUM([order_amt])
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{[province]:SUM([order_number])}

SQL では、サブクエリを使用してエリアごとの注文合計を計算し、それをメインクエリと JOIN します。

-- 簡略化された構造
-- lod_EXCLUDE{[province]:SUM([order_number])}
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,       -- area
    LOD_TM.`LOD_55512959145CF3` AS LOD_1,       -- province
    LOD_TM.`LOD_140423A9870F07` AS LOD_2,       -- order_number
    LOD_TP_0.`LOD_measure_result` AS LOD_3      -- lod_EXCLUDE{[province]:SUM([order_number])}
FROM
    (
        SELECT      -- メインクエリ: area, province, sum(order_number)
            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 サブクエリ: area, sum(order_number)
            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`
    AND LOD_TM.`LOD_55512959145CF3` = LOD_TP_0.`LOD_55512959145CF3`



-- 標準構造
-- lod_EXCLUDE{[province]:SUM([order_number])}
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 は他のすべてのディメンションを無視するため、正しいエリア別売上合計を返します。

操作手順

  1. 計算フィールドを作成します。

    フィールド式:LOD_FIXED{[エリア]:BI_SUM([注文額])}

    意味:エリアごとに注文額を合計します。

    image

  2. チャートを作成します。

    この例では、クロステーブルを使用します。

    Regional Amount Sum フィールドを [列エリア] にドラッグします。region および province を [行エリア] にドラッグします。Update をクリックします。システムがチャートを自動的に更新します。

    image.png

    これで、エリア別金額合計は省をまたいで一定になります。

例 2:顧客の注文頻度

シナリオの説明

営業マネージャーは、1 回、2 回、3 回など、注文した顧客の数を知りたいと考えています。顧客ごとの注文頻度を数えることで、顧客のリピート購入行動を分析します。詳細レベル式を使用して、あるメジャーを別のメジャーでグループ化します。

この例では、LOD_FIXED を使用して注文数を顧客数のディメンションに変換し、顧客の注文頻度を計算します。

操作手順

  1. 計算フィールドを作成します。

    フィールド式:LOD_FIXED{[顧客名]:COUNT([注文 ID])}

    意味:顧客ごとの購入頻度を数えます。image

  2. チャートを作成します。

    この例では、縦棒グラフを使用します。

    [購入頻度] フィールドをカテゴリ軸/ディメンションエリアにドラッグします。顧客名を軸の値/メジャーエリアにドラッグし、個別のカウントに設定します。[更新] をクリックします。システムが自動的にチャートを更新します。

    image.png

これで、最も一般的な購入頻度は 7 回であることがわかります。ある顧客は 58 回注文しました。

例 3:エリア別利益率ランキング

シナリオ

エリアの営業責任者は、各エリアが総利益に占める割合を知り、貢献度の高いエリアを迅速に特定したいと考えています。高度な計算 → パーセンテージを使用することもできますが、詳細レベル式を使用するとより柔軟に対応できます。

この例では、LOD_FIXED を使用してエリア別利益率ランキングを計算します。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド式:LOD_FIXED{:SUM([利益額])}

      意味:この FIXED 式はディメンションを省略しています。そのため、グループ化せずに利益を合計します。

    2. SUM([利益額]) を LOD の結果で割ります:SUM([利益額]) / SUM(LOD_FIXED{:SUM([利益額])})。これにより、各エリアの利益シェアが得られます。

      image

  2. チャートを作成します。

    この例では、リーダーボードを作成します。

    [利益シェア率] フィールドをメトリック/メジャーエリアにドラッグします。エリアをカテゴリ/ディメンションエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image.png

これで、華南と華北が最も高くランク付けされています。華東と西南は最も低く、さらにはマイナスの利益を示しています。華東のデータはダーティデータのように見えます。

例 4:年間新規ユーザー数

シナリオの説明

プロダクトが順調に成長しているかどうかをどのように判断しますか?PV や UV を超えて、顧客ロイヤルティを追跡します。長期間滞在し、注文を続けるユーザーは、プロダクトの定着率が高いことを示しています。詳細レベル式を使用してこれを測定します。

この例では、LOD_FIXED を使用して年間新規ユーザー数を計算します。

操作手順

  1. 計算フィールドを作成します。

    フィールド式:LOD_FIXED{[顧客名]:MIN(DATE_FORMAT([購入日], '%Y'))}

    意味:各ユーザーの最初の注文年を見つけます。データベース互換の日付関数を使用して、必要に応じて粒度を調整します。image

  2. チャートを作成します。

    この例では、折れ線グラフを使用します。

    [顧客初回購入年] フィールドをカテゴリ軸/ディメンションエリアにドラッグします。売上額を軸の値/メジャーエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image.png

これで、2013 年に始めたユーザーが依然として大きく貢献していることがわかります。プロダクトの定着率は高いままです。

例 5:注文詳細からの年別新規顧客数トレンド

シナリオ

初回購入年ごとにユニークな顧客数を数え、その分布を分析します。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド 1:LOD_FIXED{[顧客 ID]: min(BI_YEAR([注文日]))}

      このフィールドを顧客初回購入年と名付けます。データ型をディメンション、フィールドタイプをテキストに設定します。

    2. フィールド 2:顧客数=count(distinct [顧客 ID])

  2. チャートを作成します。

    この例では、縦棒グラフを使用します。[顧客初回購入年] をカテゴリ軸/ディメンションエリアにドラッグします。[顧客数] を値軸/メジャーエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image

これで、年間の新規顧客数がわかります。2021 年が最も多く、その後は急激に減少しました。

例 6:注文詳細からの購入頻度別顧客数分布

シナリオ

顧客ごとの購入回数を数え、その分布を分析します。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド 1:LOD_FIXED{[顧客 ID]: count(distinct [注文 ID])}

      このフィールドを顧客購入頻度と名付けます。データ型をディメンション、フィールドタイプをテキストに設定します。

    2. フィールド 2:顧客数=count(distinct [顧客 ID])

  2. チャートを作成します。

    この例では、縦棒グラフを使用します。[顧客購入頻度] をカテゴリ軸/ディメンションエリアにドラッグします。[顧客数] を値軸/メジャーエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image

この場合、購入頻度 3 回の顧客数が最も多くなっています。

例 7:年間の注文額を主要年 2023 年と比較

シナリオ

年間の注文データを主要年である 2023 年と比較します。

操作手順

  1. 計算フィールドを作成します。

    sum([注文額])/
    LOD_FIXED{:
    sum(
    case when BI_YEAR([注文日]) ='2023' 
    then [注文額] else 
    0 end)} 
    -1

    内訳:

    1. 2023 年の注文額を計算します:LOD_FIXED{:sum(case when BI_YEAR([注文日]) ='2023' then [注文額] else 0 end)}

    2. 年間の注文額を 2023 年の注文額と比較します:sum([注文額])/[2023 年の注文額]-1。このフィールドを vs. 2023 と名付けます。

  2. チャートを作成します。

    この例では、クロステーブルを使用します。注文日 (年) を行エリアにドラッグします。注文額vs. 2023 を列エリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image

これで、年間の注文額と 2023 年との比較が表示されます。

例 8:年別・月別の損益日数分析

シナリオ

日々の利益に基づいて各日を利益日または損失日としてタグ付けします。その後、タグ、年、月ごとに日数を数えます。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド 1:

      case when 
      LOD_FIXED{[order date]:sum([profit])}>0 
      then '黒字' 
      else '赤字' 
      end

      このフィールドを日の損益タグと名付けます。データ型をディメンション、フィールドタイプをテキストに設定します。

      内訳:

      1. 注文日ごとに利益を合計します:LOD_FIXED{[注文日]:sum([利益])}

      2. 利益合計 > 0 の場合、「収益性あり」と返します。それ以外の場合は、「収益性なし」と返します:case when [profit sum]>0 then 'Profitable' else 'Unprofitable' end

    2. フィールド 2:日数=count(distinct [注文日])

    3. フィールド 3:=BI_MONTH([注文日])

  2. チャートを作成します。

    折れ線-縦棒グラフで分割ディメンションを使用してスモールマルチプルを作成します。トレンドを積み上げまたはカテゴリ別に可視化します。明確な比較とパターンが表示されます。

    この例では、損益日分布の積み上げ縦棒グラフ (積み上げトレンド) と、損益日分布の 2 つの面グラフを作成します。

    1. 積み上げ縦棒グラフを作成します。をカテゴリ軸/ディメンションエリアにドラッグします。日数を値軸/メジャーエリアにドラッグします。日の損益タグを色の凡例/ディメンションエリアにドラッグします。注文日 (年) を分割/ディメンションエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

      image

    2. 損失日用と利益日用に 2 つの面グラフを作成します。

      両方のチャートで、をカテゴリ軸/ディメンションエリアにドラッグします。日数を値軸/メジャーエリアにドラッグします。注文日 (年) を分割/ディメンションエリアにドラッグします。

      フィルターに日の損益タグを追加します。最初のチャートでは完全に一致を「損失日」に設定します。2 番目のチャートでは完全に一致を「利益日」に設定します。

      image

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

      image

これで、年別・月別の損益日の明確な比較とトレンドが表示されます。

image

INCLUDE 関数の例

INCLUDE 詳細レベル式は、指定されたディメンションによって計算をグループ化します。INCLUDE は、既存の粒度の上にさらに分析レイヤーを追加します。

例 1:顧客の平均売上額

シナリオ

製品の売上を分析する際には、顧客の平均売上額が必要です。INCLUDE を使用して各顧客の合計注文額を計算し、その後平均集計を使用します。

操作手順

  1. 計算フィールドを作成します。

    フィールド式:LOD_INCLUDE{[ユーザー ID]:SUM([注文額])}

    意味:ユーザー ID ごとに注文額を合計します。

    image

  2. チャートを作成します。

    この例では、クロステーブルを使用します。

    注文額顧客注文合計を列エリアにドラッグします。製品タイプを行エリアにドラッグします。顧客注文合計の集計を平均に設定します。[更新] をクリックします。システムが自動的にチャートを更新します。image.png

これで、製品タイプごとの顧客の平均売上額が表示されます。

例 2:営業担当者ごとの平均最大取引額

シナリオ

営業部長は、各営業担当者の最大取引額の平均をエリア別にグループ化し、地図上に表示する必要があります。詳細レベル式を使用して、エリアレベルでデータを表示します。営業担当者にドリルダウンして、どのエリアが好成績または不振であるかを確認し、それに応じて目標を計画します。

この例では、LOD_INCLUDE を使用して営業担当者ごとの平均最大取引額を計算します。

操作手順

  1. 計算フィールドを作成します。

    フィールド式:AVG(LOD_INCLUDE{[営業担当者名]:MAX([価格])})

    意味:分析ディメンションとして営業担当者名を追加し、最大取引額の平均を計算します。

    image

  2. チャートを作成します。

    この例では、カラーマップを使用します。

    1. [エリア別平均最大売上額] を色の彩度/メジャーエリアにドラッグします。エリアを地理的リージョン軸/ディメンションエリアにドラッグします。

    2. [スタイル] → [ブロック] で、最大値を持つエリアを赤でハイライトします。

      image.png

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

      image.png

これで、華東がより高い最大売上を示しています。西北と西南は低い値を示しています。

例 3:注文額が 500,000 を超えるエリアの総利益

シナリオの説明

エリアごとに注文額を合計します。その後、注文額が 500,000 を超えるエリアの総利益を計算します。

操作手順

  1. 計算フィールドを作成します。

    CASE WHEN LOD_INCLUDE{[エリア]:BI_SUM([注文額])}>500000 
    then [利益額] 
    else 0 
    end

    内訳:

    1. エリアごとの注文額を計算します。このフィールドを「エリア注文額」と名付けます:LOD_INCLUDE{[エリア]:BI_SUM([注文額])}

    2. 注文額が 500,000 を超えるエリアを見つけ、その利益を合計します:CASE WHEN [エリア注文額]>500000 then [利益額] else 0 end

    3. 結果を合計して (SUM を使用するか、チャートフィールドの集計を合計に設定)、対象となるエリアの総利益を取得します。

  2. チャートを作成します。

    この例では、かんばんを使用してデータを表示します。また、クロステーブルを作成して正確性を検証することもできます。かんばんでは、新しいフィールドをかんばんメトリック/メジャーエリアにドラッグします。フィールドの集計を合計に設定します。クロステーブルでは、エリアを行エリアにドラッグします。注文額利益額、および新しいフィールドを列エリアにドラッグします。フィールドの集計を合計に設定します。[更新] をクリックします。システムが自動的にチャートを更新します。

    image

    これで、東北、華東、華北、華南の注文額が 500,000 を超えていることがわかります。これらの総利益は 459,000 元です。

例 4:製品タイプごとに列車輸送の注文額が 100,000 を超えるエリアの総利益

シナリオ

これは例 3のアップグレード版です。列車輸送と製品タイプのグループ化が追加されています。製品タイプごとに列車輸送の注文額が 100,000 を超えるエリアの総利益を計算します。これにはネストされた関数が含まれます。明確にするために、これらを分解します。

操作手順

  1. 計算フィールドを作成します。

    SUM(
    CASE WHEN LOD_INCLUDE{[製品タイプ],[エリア]:sum(if([配送方法]='train',[注文額],0))}>100000
    then [利益額]
    else 0
    end)

    内訳:

    1. 製品タイプとエリアごとに列車輸送の注文額を合計します。このフィールドを「製品タイプ-エリア注文額」と名付けます:LOD_INCLUDE{[製品タイプ],[エリア]:sum(if([配送方法]='train',[注文額],0))}

    2. 注文額が 100,000 を超えるエリアを見つけ、その利益を合計します:CASE WHEN [製品タイプ-エリア注文額]>100000 then [利益額] else 0 end

    3. 結果を合計します。

  2. チャートを作成します。

    1. 2 つのかんばんを作成します。かんばん 1 では、新しいフィールドをかんばんメトリック/メジャーエリアにドラッグします。かんばん 2 では、新しいフィールドをかんばんメトリック/メジャーエリアにドラッグし、製品タイプをかんばんタグ/ディメンションエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

      image

      これで、100,000 を超える列車輸送注文の総利益は 426,000 元であることがわかります。事務用品:147,200 元。家具:0 元。テクノロジー:278,800 元。

    2. クロステーブルを作成して正確性を検証します。製品タイプ配送方法エリアを行エリアにドラッグします。注文額利益額、および新しいフィールドを列エリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

      事務用品の場合、100,000 を超える列車輸送注文は東北、華東、華北、華南で発生しています。これらの総利益は 147,200 元で、かんばんと一致します。他の製品タイプも同様に検証します。

例 5:製品タイプごとに列車輸送の注文額が 100,000 を超えるエリアの顧客数

シナリオ

これは例 4に似ていますが、利益ではなく顧客数を計算します。

操作手順

  1. 計算フィールドを作成します。

    COUNT(DISTINCT(
    CASE WHEN LOD_INCLUDE{[製品タイプ],[エリア]:sum(if([配送方法]='train',[注文額],0))}>100000
    then [ユーザー ID]
    else null
    end))

    内訳:

    1. 製品タイプとエリアごとに列車輸送の注文額を合計します。このフィールドを「製品タイプ-エリア注文額」と名付けます:LOD_INCLUDE{[製品タイプ],[エリア]:sum(if([配送方法]='train',[注文額],0))}

    2. 注文額が 100,000 を超えるエリアを見つけ、その顧客をリストアップします:CASE WHEN [製品タイプ-エリア注文額]>100000 then [ユーザー ID] else null end

    3. 最後に、COUNT(DISTINCT()) を使用してユニークな値を数えます。

  2. チャートを作成します。

    この例では、かんばんを使用します。新しいフィールドをかんばんメトリック/メジャーエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。imageこれで、100,000 を超える列車輸送注文の顧客数は 1,026 人であることがわかります。

例 6:注文額が 500,000 を超えるエリアの数

シナリオ

これは例 3に似ていますが、利益を計算する代わりにエリアの数を数えます。

操作手順

  1. 計算フィールドを作成します。

    COUNT(DISTINCT(
    CASE WHEN LOD_INCLUDE{[エリア]:sum([注文額])}>500000
    then [エリア]
    else null
    end))

    内訳:

    1. エリアごとの注文額を計算します。このフィールドを「エリア注文額」と名付けます:LOD_INCLUDE{[エリア]:sum([注文額])}

    2. 注文額が 500,000 を超えるエリアを見つけます:CASE WHEN [エリア注文額]>500000 then [エリア] else null end

    3. 最後に、COUNT(DISTINCT()) を使用してユニークな項目を数えることができます。

  2. チャートを作成します。

    この例では、かんばんを使用します。また、クロステーブルを作成して正確性を検証することもできます。かんばんでは、新しいフィールドをかんばんメトリック/メジャーエリアにドラッグします。クロステーブルでは、エリアを行エリアに、注文額を列エリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image

    これで、東北、華東、華北、華南の 4 つのエリアで注文額が 500,000 を超えていることがわかります。

例 7:2024 年の製品タイプごとの平均省別売上額

シナリオ

2024 年の製品タイプごとの平均省別売上額を計算します。

操作手順

  1. 計算フィールドを作成します。

    AVG(
    LOD_INCLUDE{[製品タイプ],[省]:
    SUM(IF(YEAR([注文日])='2024',[注文額],0))
    }
    )

    内訳:

    1. 2024 年の注文の注文額を計算します。このフィールドを「2024 年注文額」と名付けます:IF(YEAR([注文日])='2024',[注文額],0)

    2. 製品タイプと省ごとに売上を合計します:LOD_INCLUDE{[製品タイプ],[省],SUM[2024 年注文額]}

    3. 平均を計算します。

  2. チャートを作成します。

    この例では、かんばんを使用します。また、クロステーブルを作成して正確性を検証することもできます。かんばんでは、新しいフィールドをかんばんメトリック/メジャーエリアにドラッグし、製品タイプをかんばんタグ/ディメンションエリアにドラッグします。クロステーブルでは、製品タイプを行エリアに、注文額を列エリアにドラッグします。2024 年のデータでフィルターします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image

    これで、事務用品の 2024 年の注文額は 235,600 元であることがわかります。平均省別売上は 235,600 ÷ 31 省 = 7,600 元です。他の製品タイプも同じロジックに従います。

例 8:2024 年の製品タイプごとの平均省別顧客数

シナリオ

これは例 7に似ていますが、平均売上ではなく平均顧客数を計算します。

操作手順

  1. 計算フィールドを作成します。

    AVG(
    LOD_INCLUDE{[製品タイプ],[省]:
    COUNT(DISTINCT(IF(YEAR([注文日])='2024',[ユーザー ID],null)))
    }
    )

    内訳:

    1. 2024 年の注文の顧客数を数えます。このフィールドを「2024 年顧客数」と名付けます:IF(YEAR([注文日])='2024',[ユーザー ID],null)

    2. 製品タイプと省ごとに顧客を数えます:LOD_INCLUDE{[製品タイプ],[省],SUM[2024 年顧客数]}

    3. 平均を計算します。

  2. チャートを作成します。

    この例では、かんばんを使用します。また、クロステーブルを作成して正確性を検証することもできます。かんばんでは、新しいフィールドをかんばんメトリック/メジャーエリアにドラッグし、製品タイプをかんばんタグ/ディメンションエリアにドラッグします。クロステーブルでは、製品タイプを行エリアに、製品タイプ別省顧客数を列エリアにドラッグします。2024 年のデータでフィルターします。[更新] をクリックします。システムが自動的にチャートを更新します。

    製品タイプ別省顧客数=LOD_INCLUDE{[製品タイプ],[省]:COUNT(DISTINCT([ユーザー ID]))}

    image

    これで、事務用品の 2024 年の省別顧客数は 212 人であることがわかります。平均省別顧客数は 212 ÷ 31 省 = 6.839 人です。他の製品タイプも同じロジックに従います。

例 9:省ごとの製品目標達成率と利益ギャップ

シナリオ

既知の省別利益目標を用いて、どの製品が目標を達成しているか、または未達成であるかを分析します。

省レベルで製品ごとの利益ギャップを計算します。目標を達成した製品の数を数えます。総製品数を数えます。比率を計算します。

このシナリオでは、2 つのリンクされたチャートが必要です。左側の製品統計をクリックすると、右側の製品詳細が表示されます。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド 1:製品利益目標ギャップ

      LOD_INCLUDE{[製品] : sum([利益]-[利益目標])}.

      意味:製品ごとの利益目標ギャップを計算します。

    2. フィールド 2:目標達成率

      count(distinct 
      case when [製品利益目標ギャップ]>0 
      then [製品] 
      else null end)
      /count(distinct [製品])

      内訳:

      1. 利益目標ギャップ > 0 のユニークな製品を数えます。これを「目標達成製品」と名付けます:count(distinct case when [製品利益目標ギャップ]>0 then [製品] else null end)

      2. ユニークな総製品数を数えます:count(distinct [製品])

      3. この 2 つを割ります:[目標達成製品]/[総製品]。これにより目標達成率が得られます。

  2. チャートを作成します。

    この例では、インタラクションを持つ 2 つのチャートを作成します。

    1. 製品利益目標ギャップの横棒グラフを作成します。製品をカテゴリ軸/ディメンションエリアにドラッグします。製品利益目標ギャップを値軸/メジャーエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

      image

    2. 目標達成率の横棒グラフを作成します。をカテゴリ軸/ディメンションエリアにドラッグします。目標達成率を値軸/メジャーエリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

      image

    3. 2 つの横棒グラフ間のインタラクションを設定します。

      説明

      この例では、両方のチャートが同じデータセットを使用しています。自動インタラクションが有効になっている場合、チャートは自動的にリンクされます。無効になっている場合は、手動でインタラクションを設定します。

      詳細については、「インタラクション」をご参照ください。

      インタラクションのプレビュー。3.gif

これで、省別の利益目標の進捗状況と、どの製品が目標を達成しているか、または未達成であるかがわかります。

例 10:エリア別の店舗パフォーマンス評価

シナリオ

店舗レベルの売上と粗利益データを使用して、エリアごとの総売上と総粗利益を計算します。また、店舗ごとの平均売上と平均粗利益も計算します。フィルターを使用して、エリアまたはサブエリアレベルでパフォーマンスを表示します。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド 1:店舗粗利益=LOD_INCLUDE{[店舗名]:sum([粗利益])}

    2. フィールド 2:店舗売上額=LOD_INCLUDE{[店舗名]:sum([売上額])}

  2. チャートを作成します。

    この例では、条件付き書式を持つクロステーブルを使用します。

    1. クロステーブルで、親エリアとサブエリアを行エリアにドラッグします。列エリアには、2 つの店舗粗利益フィールド (1 つは平均、もう 1 つは合計に設定) と、2 つの店舗売上額フィールド (1 つは平均、もう 1 つは合計に設定) を追加します。

      image

    2. 店舗粗利益 (平均) と店舗売上額 (平均)店舗あたりとラベル付けします。店舗粗利益 (合計)店舗売上額 (合計)合計とラベル付けします。

    3. [スタイル] → [セル] → [メトリックのグループ化] で、メトリックのグループ化を設定します。

      image

    4. 見栄えを良くするために条件付き書式を適用します。この例では、4 つの列すべてを次のように設定します:image

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

これで、各エリアの合計および店舗あたりの売上と粗利益が表示されます。

例 11:省のパフォーマンスに基づくエリア評価

シナリオ

省ごとに、エリアごとの売上を計算します。売上がしきい値 (フィルターで設定) を超える省の数を数えます。また、それらの省の総顧客数と、省ごとの平均顧客数も計算します。しきい値を変更すると、更新された結果が表示されます。

説明

この例では、値のプレースホルダーを使用します。使用方法の詳細については、「値のプレースホルダー」をご参照ください。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド 1:条件を満たす省の数

      count(distinct 
      case when LOD_INCLUDE{[省]:sum([注文額])} > $val{ord_amt_level} 
      then [省] 
      else null
      end)

      内訳:

      1. 省ごとの注文額を計算します:LOD_INCLUDE{[省]:sum([注文額])}。これを省別注文額と名付けます。

      2. 省別注文額 > 値のプレースホルダー ord_amt_level の場合は省を返します。それ以外の場合は null を返します:case when [省別注文額]> $val{ord_amt_level} then [省] else null end。これを条件を満たす省と名付けます。

      3. 条件を満たすユニークな省の数を数えます:count(distinct [条件を満たす省])

    2. フィールド 2:条件を満たす省の総顧客数

      count(distinct 
      case when lod_include{[省]:sum([注文額])} > $val{ord_amt_level} 
      then [顧客 ID] 
      else null 
      end)

      内訳:

      1. 省ごとの注文額を計算します:LOD_INCLUDE{[省]:sum([注文額])}。これを省別注文額と名付けます。

      2. 省別注文額 > 値のプレースホルダー ord_amt_level の場合は顧客 ID を返します。それ以外の場合は null を返します:case when [省別注文額]> $val{ord_amt_level} then [顧客 ID] else null end。これを条件を満たす省の顧客と名付けます。

      3. ユニークな省別顧客を数えます。数式:count(distinct [省別顧客])

    3. フィールド 3:省ごとの平均顧客数 = [条件を満たす省の総顧客数] ÷ [条件を満たす省の数]

  2. チャートを作成します。

    1. 「クロステーブル」を作成します。「リージョン」を[行エリア]にドラッグします。「Province Count」、「Province Customer Count」、および「Average Customers Per Province」を[列エリア]にドラッグします。

    2. 内部クエリフィルターを追加します。フィルターを省の売上額に設定します。値のプレースホルダー ord_amt_level にリンクします。デフォルト値を 100000 に設定します。image

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

      image

これで、省の売上額を変更すると、更新された結果が表示されます。4.gif

EXCLUDE 関数の例

EXCLUDE 詳細レベル式は、指定されたディメンション削除した後に計算します。

例 1:エリア内での省の売上シェア

シナリオ

エリア内の省レベルの売上を分析する際、エリアの総売上と各省の売上シェアも必要です。EXCLUDE を使用して、現在の省を除外してエリアの売上を計算します。その後、合計してエリアの総売上を取得します。

操作手順

  1. 計算フィールドを作成します。

    フィールド式: LOD_EXCLUDE{[province]:SUM([order amount])}

    意味:現在の省を除外してエリアの売上を計算します。

    image

  2. チャートを作成します。

    この例では、クロステーブルを使用します。注文額エリア別総売上を列エリアにドラッグします。エリアを行エリアにドラッグします。[更新] をクリックします。システムが自動的にチャートを更新します。

    image.png

これで、省レベルの注文額とエリアの総売上の両方が表示されます。

例 2:販売エリアと戦域の平均値の差

シナリオ

ある販売会社には全国に 7 つの戦域があります。各戦域には、省ごとに複数の販売エリアが含まれています。年末に、各省の平均販売利益をその戦域全体の平均と比較し、パフォーマンスの高いゾーンと低いゾーンを迅速に特定します。詳細レベル式と条件付き書式を使用してこのレポートを作成します。

この例では、LOD_EXCLUDE を使用して販売エリアと戦域の平均値の差を計算します。

操作手順

  1. 計算フィールドを作成します。

    1. フィールド式: AVG(LOD_EXCLUDE{[province]:AVG([price])})

      意味:元の設定から、集計粒度から販売エリアを除外し、残りの粒度で平均売上を計算します。この式は、華東などの各エリアの平均売上を計算します。

    2. AVG([価格]) から LOD の結果を引きます:AVG([価格]) - AVG(LOD_EXCLUDE{[省]:AVG([価格])})。これにより、各販売エリアとその戦域の平均値との差が得られます。

      image

  2. チャートを作成します。

    この例では、クロステーブルを使用します。

    1. [省平均差] フィールドを列エリアにドラッグします。エリアとを行エリアにドラッグします。

    2. [スタイル] → [条件付き書式] で、このフィールドを > 0 の場合は赤、< 0 の場合は緑に設定します。

      image.png

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

      image.png

これで、上海、安徽、江蘇、福建が華東の平均を上回っていることがわかります。上海がリードしています。山東、江西、浙江は下回っており、改善が必要です。

フィルター条件のルール

LOD_FIXED + 外部フィルター

  • フィルターの影響を受けない結果

    LOD_FIXED_1 フィールド式:LOD_FIXED{[エリア]: SUM([注文額])}

    フィルター:配送方法 = “truck”

    結果の説明:以下に示すように、東北エリアの合計注文額は 527,400 元です。外部フィルターがない場合、または配送方法 = “truck” の場合でも、東北の合計は 527,400 元のままです。フィルターは結果に影響しません。

    結論:LOD 集計ディメンションに関連しないフィルターは結果に影響しません。

    image

  • フィルターの影響を受ける結果

    LOD_FIXED_2 フィールド式:LOD_FIXED{[エリア], [製品タイプ], [配送方法]: SUM([注文額])}

    フィルター:配送方法 = “truck”

    結果の説明:以下に示すように、東北-事務用品の合計は 150,800 元で、これはトラック (35,540 元)、列車 (103,100 元)、航空 (12,110 元) の合計です。配送方法 = “truck” の場合、東北-事務用品は 35,540 元、つまり東北-事務用品-トラックの金額になります。

    結論:LOD 集計ディメンションに一致するフィルターは、二次集計のために結果に影響します。

    image

LOD + 内部フィルター

結論:LOD の粒度に一致する内部フィルターは、関連するすべてのデータに適用されます。それ以外の場合は、LOD フィールドにのみ適用されます。

  • LOD_FIXED

    • LOD_FIXED_3 フィールド式:LOD_FIXED{[エリア], [製品タイプ], [配送方法]: SUM([注文額]): [注文レベル]='intermediate'}

      計算結果:次の図に示すように、東北エリア → 事務用品 → 大型カードの注文額は 35,070 です。この金額は、「中級」の注文レベルでフィルターされたデータを表します。つまり、東北エリア → 事務用品 → 大型カード → 中級の注文額です。

      image

    • LOD_FIXED_4 フィールド式:LOD_FIXED{[エリア], [製品タイプ], [配送方法]: SUM([注文額]): [配送方法]='truck'}

      結果:以下に示すように、東北-事務用品-トラックの注文額は 355,400 元です。内部フィルターが LOD の粒度に一致する場合、LOD_FIXED はトラック輸送でフィルターします。

      image

  • LOD_INCLUDE

    LOD_EXCLUDE と LOD_INCLUDE は同じロジックに従います。この例では LOD_INCLUDE を使用します。

    image

    • LOD_INCLUDE_1 フィールド式:LOD_INCLUDE{: SUM([注文額]): [注文レベル]='intermediate'}

      計算結果:下の図に示すように、東北エリアを例にとると、「東北エリア-事務用品-大型カード」の注文額は 35,070 です。この金額は、「中」レベルの注文でフィルターされたもので、具体的には「東北エリア-事務用品-大型カード-中」を表します。

    • LOD_INCLUDE_2 フィールド式:LOD_INCLUDE{: SUM([注文額]): [配送方法]='truck'}

      結果:以下に示すように、東北-事務用品-トラックの注文額は 355,400 元です。内部フィルターが LOD の粒度に一致する場合、LOD_INCLUDE はトラック輸送でフィルターします。