La fonction LOD signifie expression de niveau de détail. Elle résout les problèmes de granularité de calcul entre différentes expressions. Cette rubrique explique comment utiliser les fonctions LOD.
Limites
Les tables de détails ne prennent pas en charge les fonctions LOD.
Contexte
L'analyse dans Quick BI repose actuellement sur des dimensions fixes. Par exemple, pour visualiser le nombre de commandes par région et par province, placez la région et la province (dimensions) sur les lignes d'un tableau croisé et le nombre de commandes (mesure) sur les colonnes. Définissez la méthode d'agrégation sur Somme.

La requête SQL générée est la suivante :
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
Que faire si vous souhaitez afficher à la fois des données au niveau région-province et au niveau région dans le même tableau ? Ou comparer les ventes au niveau province avec les totaux au niveau région ? Ou encore identifier le type de produit ayant généré le plus de ventes par province ? Dans ces cas de figure, utilisez les fonctions LOD.
Scénarios
Une expression de niveau de détail définit le niveau de granularité de l'agrégation des données. Différents niveaux correspondent à différentes profondeurs et granularités d'agrégation. Les expressions LOD gèrent les visualisations contenant plusieurs niveaux de détail.
Si votre analyse nécessite l'ajout d'une dimension dont la granularité est supérieure ou inférieure à celle de la visualisation actuelle, mais que vous ne souhaitez pas modifier le graphique existant, utilisez les expressions de niveau de détail.
Syntaxe
LOD (Level of Detail Expressions) est une fonctionnalité de calcul puissante. Elle permet d'effectuer des calculs et des agrégations complexes lors de l'analyse des données. Les expressions LOD contrôlent la granularité du calcul. Elles vous permettent d'analyser les données à un niveau de granularité spécifié (FIXED), à un niveau de granularité supérieur (INCLUDE) ou à un niveau de granularité inférieur (EXCLUDE). L'utilisation de base est décrite ci-dessous :
LOD_FIXED
Syntaxe | LOD_FIXED{<déclaration de dimension> : <expression d'agrégation>} |
Paramètres |
|
Définition | Calcule une valeur agrégée fixe selon les dimensions spécifiées. N'est pas affectée par les autres dimensions du graphique. |
Résultat | Valeur numérique |
Exemple | LOD_FIXED{[region]: BI_SUM([order amount])} Signification : agrège uniquement par région. Fait la somme du montant de la commande indépendamment des autres dimensions de la requête. Pour plus d'exemples, consultez Exemples de fonction FIXED. |
Limites | Non pris en charge pour les sources de données Lindorm (moteur de table large, SQL multi-modèle), Elasticsearch ou SAP IQ (Sybase IQ). |
LOD_INCLUDE
Syntaxe | LOD_INCLUDE{<déclaration de dimension> : <expression d'agrégation>} |
Paramètres |
|
Définition | Effectue l'agrégation en utilisant des dimensions supplémentaires présentes dans le graphique. |
Résultat | Valeur numérique |
Exemple | LOD_INCLUDE{[region]: BI_SUM([order amount])} Signification : ajoute la région comme dimension d'agrégation aux dimensions de requête existantes. Fait la somme du montant de la commande. Pour plus d'exemples, consultez Exemples de fonction INCLUDE. |
Limites | Non pris en charge pour les sources de données Lindorm (moteur de table large, SQL multi-modèle), Elasticsearch ou SAP IQ (Sybase IQ). |
LOD_EXCLUDE
Syntaxe | LOD_EXCLUDE{<déclaration de dimension> : <expression d'agrégation>} |
Paramètres |
|
Définition | Effectue l'agrégation en excluant certaines dimensions du graphique. |
Résultat | Valeur numérique |
Exemple | LOD_EXCLUDE{[region]: BI_SUM([order amount])} Signification : part des dimensions de requête existantes. Si la région existe, elle est supprimée. Ensuite, fait la somme du montant de la commande en utilisant les dimensions restantes. Pour plus d'exemples, consultez Exemples de fonction EXCLUDE. |
Limites | Non pris en charge pour les sources de données Lindorm (moteur de table large, SQL multi-modèle), Elasticsearch ou SAP IQ (Sybase IQ). |
Procédure
-
Dans l'éditeur de jeu de données, cliquez sur Create Calculated Field pour ouvrir la boîte de dialogue de configuration.

-
Saisissez un nom de champ (①). Dans l'expression de champ, sélectionnez la fonction LOD requise et les champs (②).

-
Cliquez sur OK après la création. Lorsque vous utilisez le nouveau champ pour créer un graphique de tableau de bord, le montant total des commandes pour chaque région reste constant, quel que soit le type de produit.

Référence des expressions
Formule de base
La structure et la syntaxe des trois expressions LOD sont les suivantes :
-
Structure
LOD_FIXED{<déclaration de dimension> : <expression d'agrégation>}
LOD_INCLUDE{<déclaration de dimension> : <expression d'agrégation>}
LOD_EXCLUDE{<déclaration de dimension> : <expression d'agrégation>}
Exemple : LOD_FIXED{[order date]:sum([order amount])}
-
Référence syntaxique
FIXED | INCLUDE | EXCLUDE : mots-clés définissant la portée LOD.
<déclaration de dimension> : une ou plusieurs dimensions à lier à l'expression d'agrégation. Séparez les dimensions par des virgules.
<expression d'agrégation> : le calcul à effectuer. Définit la dimension cible.
Conditions de filtre
Quick BI prend en charge les conditions de filtre en plus des expressions de base. Séparez les déclarations de dimension, les expressions d'agrégation et les filtres par des deux-points.
LOD_FIXED{dimension1,dimension2...:expression d'agrégation:condition de filtre}
LOD_INCLUDE{dimension1,dimension2...:expression d'agrégation:condition de filtre}
LOD_EXCLUDE{dimension1,dimension2...:expression d'agrégation:condition de filtre}
Les conditions de filtre sont facultatives.
-
LOD_FIXED calcule les agrégats à une granularité fixe. Les configurations externes ne l'affectent pas. Par défaut, LOD_FIXED utilise toutes les données. Seuls les filtres inclus dans l'expression s'appliquent. Les autres filtres, y compris les filtres de tableau de bord et les contrôles de requête, sont ignorés.
LOD_INCLUDE et LOD_EXCLUDE respectent les configurations du graphique. Les filtres externes s'appliquent.
Pour plus de détails, consultez Règles de condition de filtre.
Logique d'implémentation
Dans la pratique, les expressions LOD génèrent des données agrégées. Pour offrir des vues riches, ces données sont souvent fusionnées avec des données brutes ou d'autres niveaux d'agrégation. En SQL, les sous-requêtes et les opérations JOIN permettent de réaliser cette opération. Cette rubrique explique la logique d'implémentation des expressions LOD FIXED, INCLUDE et EXCLUDE.
Niveau FIXED
Reprenons la question initiale : comment afficher à la fois les données au niveau région-province et les données au niveau région dans un même tableau ?
Créez une expression FIXED :
LOD_FIXED{[area]:sum([order_amt])}
En SQL, utilisez une sous-requête pour calculer le total des commandes par région, puis joignez-la à la requête principale :
-- Simplified structure
-- 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 -- Main query: 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 subquery: 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`
-- Standard structure
-- 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`
Niveau INCLUDE
Comment afficher les données au niveau région ainsi que la part de la province la plus performante dans chaque région ?
Créez une expression INCLUDE :
MAX(LOD_INCLUDE{[province]:SUM([order_amt])}) / SUM([order_amt])
En SQL, utilisez une sous-requête pour calculer le total des commandes par région et province, puis joignez-la à la requête principale :
-- Simplified structure
-- 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 -- Main query: 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 subquery: 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`
-- Standard structure
-- 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`
Niveau EXCLUDE
L'expression LOD FIXED spécifie directement une dimension telle que la zone (area) pour obtenir des données au niveau région. Mais que faire si vous avez déjà ajouté la zone et la province au graphique ? Est-il possible d'exclure la province et de recalculer les valeurs ? Oui. C'est précisément l'objectif des expressions LOD EXCLUDE.
Créez une expression EXCLUDE :
LOD_EXCLUDE{[province]:SUM([order_number])}
En SQL, utilisez une sous-requête pour calculer le total des commandes par région, puis joignez-la à la requête principale :
-- Simplified structure
-- 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 -- Main query: 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 subquery: 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`
-- Standard structure
-- 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`
Exemples de fonctions FIXED
Une expression LOD FIXED (Level of Detail) effectue le calcul en utilisant uniquement les dimensions spécifiées. Elle ignore toutes les autres dimensions.
Exemple 1 : Montant total des ventes par région
Scénario
Vous analysez les commandes de vente régionales. Votre jeu de données comprend les dimensions region et province. Utilisez la fonction FIXED pour calculer le montant total des ventes par région. Cette fonction ignore toutes les autres dimensions, ce qui garantit l'exactitude du total régional.
Procédure
-
Créez un champ calculé.
Expression du champ : LOD_FIXED{[region]:BI_SUM([order amount])}
Signification : Somme du montant des commandes par région.

-
Créez un graphique.
Cet exemple utilise un tableau croisé.
Faites glisser le champ Regional Amount Sum dans la zone des colonnes. Faites glisser region et province dans la zone des lignes. Cliquez sur Update. Le système met automatiquement à jour le graphique.

La somme régionale reste désormais constante pour toutes les provinces.
Exemple 2 : Fréquence de commande des clients
description du scénario
Un responsable commercial souhaite connaître le nombre de clients ayant passé une, deux ou trois commandes, etc. Analysez le comportement d'achat répété des clients en comptant la fréquence des commandes par client. Utilisez une expression Level of Detail pour regrouper une mesure selon une autre dimension.
Cet exemple utilise LOD_FIXED pour convertir le nombre de commandes en une dimension de décompte des clients. Calculez la fréquence de commande des clients.
Procédure
-
Créez un champ calculé.
Expression du champ : LOD_FIXED{[customer name]:COUNT([order id])}
Signification : Compte la fréquence d'achat par client.

-
Créez un graphique.
Cet exemple utilise un diagramme en colonnes.
Faites glisser le champ Purchase Frequency dans la zone de l'axe des catégories/dimensions. Faites glisser customer name dans la zone des valeurs de l'axe/mesures et définissez-le sur le compte distinct. Cliquez sur Update. Le système met automatiquement à jour le graphique.

Vous constatez que la fréquence d'achat la plus courante est de sept. Un client a passé 58 commandes.
Exemple 3 : Classement du pourcentage de bénéfice par région
Scénario
Un directeur régional des ventes souhaite connaître la part de chaque région dans le bénéfice total et identifier rapidement les principaux contributeurs. Vous pouvez utiliser Calcul avancé → Pourcentage. Vous pouvez également recourir aux expressions Level of Detail pour plus de flexibilité.
Cet exemple utilise LOD_FIXED pour calculer le classement du pourcentage de bénéfice par région.
Procédure
-
Créez un champ calculé.
-
Expression du champ : LOD_FIXED{:SUM([profit amount])}
Signification : Cette expression FIXED omet les dimensions. Elle calcule donc la somme des bénéfices sans regroupement.
-
Divisez SUM([profit amount]) par le résultat LOD : SUM([profit amount]) / SUM(LOD_FIXED{:SUM([profit amount])}). Cela donne la part de bénéfice de chaque région.

-
-
Créez un graphique.
Dans cet exemple, vous créez un classement.
Faites glisser le champ Profit Share Percentage dans la zone des métriques/mesures. Faites glisser area dans la zone des catégories/dimensions. Cliquez sur Update. Le système met automatiquement à jour le graphique.

Le Sud de la Chine et le Nord de la Chine occupent les premières places. L'Est de la Chine et le Sud-Ouest arrivent derniers, affichant même des pertes. Les données de l'Est de la Chine semblent erronées.
Exemple 4 : Nombre annuel de nouveaux utilisateurs
description du scénario
Comment savoir si votre produit connaît une croissance positive ? Au-delà des PV et UV, suivez la fidélité des clients. Les utilisateurs qui restent fidèles et continuent de commander témoignent d'une forte adhésion au produit. Utilisez les expressions Level of Detail pour mesurer cet engagement.
Cet exemple utilise LOD_FIXED pour calculer le nombre annuel de nouveaux utilisateurs.
Procédure
-
Créez un champ calculé.
Expression du champ : LOD_FIXED{[customer name]:MIN(DATE_FORMAT([buy date], '%Y'))}
Signification : Identifie l'année de la première commande de chaque utilisateur. Ajustez la granularité si nécessaire en utilisant des fonctions de date compatibles avec la base de données.

-
Créez un graphique.
Cet exemple utilise un diagramme linéaire.
Faites glisser le champ Customer First Purchase Year dans la zone de l'axe des catégories/dimensions. Faites glisser sales amount dans la zone des valeurs de l'axe/mesures. Cliquez sur Update. Le système met automatiquement à jour le graphique.

Les utilisateurs inscrits en 2013 contribuent toujours fortement. L'adhésion au produit reste élevée.
Exemple 5 : Tendances annuelles du nombre de nouveaux clients à partir des détails de commande
Scénario
Comptez les clients uniques par année de premier achat. Analysez ensuite la distribution.
Procédure
-
Créez des champs calculés.
-
Champ 1 : LOD_FIXED{[customer ID]: min(BI_YEAR([order date]))}
Nommez ce champ Customer First Purchase Year. Définissez le type de données comme dimension et le type de champ comme texte.
Champ 2 : Customer Count=count(distinct [customer ID])
-
-
Créez un graphique.
Cet exemple utilise un diagramme en colonnes. Faites glisser Customer First Purchase Year dans la zone de l'axe des catégories/dimensions. Faites glisser Customer Count dans la zone de l'axe des valeurs/mesures. Cliquez sur Update. Le système met automatiquement à jour le graphique.

Vous visualisez désormais le nombre annuel de nouveaux clients. L'année 2021 a enregistré le plus grand nombre. Ce chiffre a chuté brusquement par la suite.
Exemple 6 : Distribution du nombre de clients par fréquence d'achat à partir des détails de commande
Scénario
Comptez les achats par client. Analysez ensuite la distribution.
Procédure
-
Créez des champs calculés.
-
Champ 1 : LOD_FIXED{[customer ID]: count(distinct [order ID])}
Nommez ce champ Customer Purchase Frequency. Définissez le type de données comme dimension et le type de champ comme texte.
Champ 2 : Customer Count=count(distinct [customer ID])
-
-
Créez un graphique.
Cet exemple utilise un diagramme en colonnes. Faites glisser Customer Purchase Frequency dans la zone de l'axe des catégories/dimensions. Faites glisser Customer Count dans la zone de l'axe des valeurs/mesures. Cliquez sur Update. Le système met automatiquement à jour le graphique.

Dans ce cas, le nombre de clients est le plus élevé pour une fréquence d'achat de 3.
Exemple 7 : Comparaison des montants de commande annuels avec l'année clé 2023
Scénario
Comparez les données de commande annuelles avec une année clé, ici 2023.
Procédure
-
Créez un champ calculé.
sum([order amount])/ LOD_FIXED{: sum( case when BI_YEAR([order date]) ='2023' then [order amount] else 0 end)} -1Détails :
Calculez le montant des commandes de 2023 : LOD_FIXED{:sum(case when BI_YEAR([order date]) ='2023' then [order amount] else 0 end)}
Comparez les montants de commande annuels avec le montant de 2023 : sum([order amount])/[2023 order amount]-1. Nommez ce champ vs. 2023.
-
Créez un graphique.
Cet exemple utilise un tableau croisé. Faites glisser order date (year) dans la zone des lignes. Faites glisser order amount et vs. 2023 dans la zone des colonnes. Cliquez sur Update. Le système met automatiquement à jour le graphique.

Vous visualisez désormais les montants de commande annuels et leurs comparaisons avec 2023.
Exemple 8 : Analyse du nombre de jours bénéficiaires et déficitaires par année et mois
Scénario
Étiquetez chaque jour comme bénéficiaire ou déficitaire en fonction du bénéfice quotidien. Comptez ensuite les jours par étiquette, année et mois.
Procédure
-
Créez des champs calculés.
-
Champ 1 :
case when LOD_FIXED{[order date]:sum([profit])}>0 then 'Profitable' else 'Unprofitable' endNommez ce champ Day Profit/Loss Tag. Définissez le type de données comme dimension et le type de champ comme texte.
Détails :
Somme des bénéfices par date de commande : LOD_FIXED{[order date]:sum([profit])}
Si la somme des bénéfices > 0, renvoyez « Profitable ». Sinon, renvoyez « Unprofitable » : case when [profit sum]>0 then 'Profitable' else 'Unprofitable' end
Champ 2 : Days=count(distinct [order date])
Champ 3 : Month=BI_MONTH([order date])
-
-
Créez des graphiques.
Utilisez les dimensions de fractionnement dans les graphiques combinés ligne-colonne pour créer des petits multiples. Visualisez les tendances sous forme empilée ou catégorielle. Vous obtenez ainsi des comparaisons et des motifs clairs.
Cet exemple crée un diagramme en colonnes empilées pour la distribution des jours bénéficiaires/déficitaire (tendance empilée). Il crée également deux graphiques en aires pour la distribution des jours bénéficiaires/déficitaire.
-
Créez un diagramme en colonnes empilées. Faites glisser Month dans la zone de l'axe des catégories/dimensions. Faites glisser Days dans la zone de l'axe des valeurs/mesures. Faites glisser Day Profit/Loss Tag dans la zone de la légende des couleurs/dimensions. Faites glisser order date (year) dans la zone de fractionnement/dimensions. Cliquez sur Update. Le système met automatiquement à jour le graphique.

-
Créez deux graphiques en aires, l'un pour les jours déficitaires et l'autre pour les jours bénéficiaires.
Dans les deux graphiques, faites glisser Month dans la zone de l'axe des catégories/dimensions. Faites glisser Days dans la zone de l'axe des valeurs/mesures. Faites glisser order date (year) dans la zone de fractionnement/dimensions.
Ajoutez Day Profit/Loss Tag au filtre. Définissez la correspondance exacte sur « Unprofitable » pour le premier graphique. Définissez la correspondance exacte sur « Profitable » pour le second.

Cliquez sur Update. Le système met automatiquement à jour les graphiques.

-
Vous visualisez désormais clairement les comparaisons et les tendances des jours bénéficiaires et déficitaires par année et mois.

Exemples de fonction INCLUDE
Une expression LOD INCLUDE regroupe les calculs selon les dimensions spécifiées. La fonction INCLUDE ajoute un niveau d'analyse supplémentaire à la granularité existante.
Exemple 1 : Montant moyen des ventes par client
Scénario
Lors de l'analyse des ventes de produits, vous devez calculer le montant moyen des ventes par client. Utilisez la fonction INCLUDE pour déterminer le montant total des commandes de chaque client, puis appliquez une agrégation moyenne.
Procédure
-
Créez un champ calculé.
Expression du champ : LOD_INCLUDE{[user id]:SUM([order amount])}
Signification : Calcule la somme des montants de commande par ID utilisateur.

-
Créez un graphique.
Cet exemple utilise un tableau croisé.
Faites glisser order amount et Customer Order Total dans la zone des colonnes. Faites glisser product type dans la zone des lignes. Définissez l'agrégation de Customer Order Total sur Average. Cliquez sur Update. Le système met automatiquement à jour le graphique.

Vous obtenez ainsi le montant moyen des ventes par client pour chaque type de produit.
Exemple 2 : Montant transactionnel maximal moyen par représentant commercial
Scénario
Un directeur commercial souhaite connaître la moyenne des transactions les plus importantes de chaque représentant commercial, regroupées par région, et afficher ces données sur une carte. Utilisez les expressions LOD pour afficher les données au niveau régional. Effectuez un drill-down vers les représentants commerciaux afin d'identifier les régions performantes ou sous-performantes, puis adaptez vos objectifs en conséquence.
Cet exemple utilise LOD_INCLUDE pour calculer le montant transactionnel maximal moyen par représentant commercial.
Procédure
-
Créez un champ calculé.
Expression du champ : AVG(LOD_INCLUDE{[sales name]:MAX([price])})
Signification : Ajoute le nom du représentant commercial comme dimension d'analyse, puis calcule la moyenne des montants transactionnels maximaux.

-
Créez un graphique.
Cet exemple utilise une carte colorée.
Faites glisser Average Maximum Sales Amount per Region dans la zone de saturation des couleurs/mesure. Faites glisser area dans l'axe géographique/région (dimension).
-
Dans Style → Blocks, mettez en évidence la région présentant la valeur maximale en rouge.

Cliquez sur Update. Le système met automatiquement à jour le graphique.

La Chine de l'Est affiche désormais des ventes maximales plus élevées, tandis que le Nord-Ouest et le Sud-Ouest présentent des valeurs plus faibles.
Exemple 3 : Bénéfice total pour les régions dont le montant des commandes dépasse 500 000
Description du scénario
Calculez la somme des montants de commande par région, puis déterminez le bénéfice total pour les régions dont le montant des commandes dépasse 500 000.
Procédure
-
Créez un champ calculé.
CASE WHEN LOD_INCLUDE{[region]:BI_SUM([order amount])}>500000 then [profit amount] else 0 endDétails :
Calculez le montant des commandes par région. Nommez ce champ « Region Order Amount » : LOD_INCLUDE{[region]:BI_SUM([order amount])}
Identifiez les régions dont le montant des commandes dépasse 500 000 et additionnez leur bénéfice : CASE WHEN [Region Order Amount]>500000 then [profit amount] else 0 end
Additionnez les résultats (en utilisant SUM ou en définissant l'agrégation du champ du graphique sur Sum) pour obtenir le bénéfice total des régions éligibles.
-
Créez des graphiques.
Cet exemple utilise une scorecard pour afficher les données. Vous pouvez également créer un cross table pour vérifier l'exactitude. Dans la scorecard, faites glisser le nouveau champ dans la zone métrique/mesure de la scorecard. Définissez l'agrégation du champ sur Sum. Dans le cross table, faites glisser region dans la zone des lignes. Faites glisser order amount, profit amount et le nouveau champ dans la zone des colonnes. Définissez l'agrégation du champ sur Sum. Cliquez sur Update. Le système met automatiquement à jour les graphiques.

Le Nord-Est, la Chine de l'Est, la Chine du Nord et la Chine du Sud dépassent désormais 500 000 en montant de commande. Leur bénéfice total s'élève à 459 000 CNY.
Exemple 4 : Bénéfice total pour les régions dont le montant des commandes expédiées par train dépasse 100 000 par type de produit
Scénario
Il s'agit d'une version améliorée de l'Exemple 3. Cette approche intègre l'expédition par train et le regroupement par type de produit. Calculez le bénéfice total pour les régions dont le montant des commandes expédiées par train dépasse 100 000 par type de produit. Cette opération implique des fonctions imbriquées ; décomposez-les pour plus de clarté.
Procédure
-
Créez un champ calculé :
SUM( CASE WHEN LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}>100000 then [profit amount] else 0 end)Détails :
Additionnez les montants des commandes expédiées par train par type de produit et par région. Nommez ce champ « Product Type–Region Order Amount » : LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}
Identifiez les régions dont le montant des commandes dépasse 100 000 et additionnez leur bénéfice : CASE WHEN [Product Type–Region Order Amount]>100000 then [profit amount] else 0 end
Additionnez les résultats.
-
Créez des graphiques.
-
Créez deux scorecards. Dans Scorecard 1, faites glisser le nouveau champ dans la zone métrique/mesure de la scorecard. Dans Scorecard 2, faites glisser le nouveau champ dans la zone métrique/mesure de la scorecard et faites glisser product type dans la zone tag/dimension de la scorecard. Cliquez sur Update. Le système met automatiquement à jour les graphiques.

Le bénéfice total des commandes expédiées par train supérieures à 100 000 s'élève à 426 000 CNY. Fournitures de bureau : 147 200 CNY. Mobilier : 0 CNY. Technologie : 278 800 CNY.
-
Créez un cross table pour vérifier l'exactitude. Faites glisser product type, shipping method et region dans la zone des lignes. Faites glisser order amount, profit amount et le nouveau champ dans la zone des colonnes. Cliquez sur Update. Le système met automatiquement à jour le graphique.
Pour les fournitures de bureau, les commandes expédiées par train supérieures à 100 000 concernent le Nord-Est, la Chine de l'Est, la Chine du Nord et la Chine du Sud. Leur bénéfice total s'élève à 147 200 CNY, ce qui correspond à la scorecard. Vérifiez les autres types de produits de la même manière.
-
Exemple 5 : Nombre de clients pour les régions dont le montant des commandes expédiées par train dépasse 100 000 par type de produit
Scénario
Cette approche ressemble à l'Exemple 4, mais elle calcule le nombre de clients au lieu du bénéfice.
Procédure
-
Créez un champ calculé :
COUNT(DISTINCT( CASE WHEN LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}>100000 then [user id] else null end))Détails :
Additionnez les montants des commandes expédiées par train par type de produit et par région. Nommez ce champ « Product Type–Region Order Amount » : LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}
Identifiez les régions dont le montant des commandes dépasse 100 000 et listez leurs clients : CASE WHEN [Product Type–Region Order Amount]>100000 then [user id] else null end
Enfin, utilisez COUNT(DISTINCT()) pour compter les valeurs uniques.
-
Créez un graphique.
Cet exemple utilise une scorecard. Faites glisser le nouveau champ dans la zone métrique/mesure de la scorecard. Cliquez sur Update. Le système met automatiquement à jour le graphique.
Le nombre de clients pour les commandes expédiées par train supérieures à 100 000 est désormais de 1 026.
Exemple 6 : Nombre de régions dont le montant des commandes dépasse 500 000
Scénario
Cette approche ressemble à l'Exemple 3, mais elle compte les régions au lieu de calculer le bénéfice.
Procédure
-
Créez un champ calculé :
COUNT(DISTINCT( CASE WHEN LOD_INCLUDE{[region]:sum([order amount])}>500000 then [region] else null end))Détails :
Calculez le montant des commandes par région. Nommez ce champ « Region Order Amount » : LOD_INCLUDE{[region]:sum([order amount])}
Identifiez les régions dont le montant des commandes dépasse 500 000 : CASE WHEN [Region Order Amount]>500000 then [region] else null end
Enfin, utilisez COUNT(DISTINCT()) pour compter les éléments uniques.
-
Créez des graphiques.
Cet exemple utilise une scorecard. Vous pouvez également créer un cross table pour vérifier l'exactitude. Dans la scorecard, faites glisser le nouveau champ dans la zone métrique/mesure de la scorecard. Dans le cross table, faites glisser region dans la zone des lignes et order amount dans la zone des colonnes. Cliquez sur Update. Le système met automatiquement à jour les graphiques.

Quatre régions dépassent désormais 500 000 en montant de commande : le Nord-Est, la Chine de l'Est, la Chine du Nord et la Chine du Sud.
Exemple 7 : Montant moyen des ventes provinciales par type de produit en 2024
Scénario
Calculez le montant moyen des ventes provinciales par type de produit en 2024.
Procédure
-
Créez un champ calculé.
AVG( LOD_INCLUDE{[product type],[province]: SUM(IF(YEAR([order date])='2024',[order amount],0)) } )Détails :
Calculez le montant des commandes pour l'année 2024. Nommez ce champ « 2024 Order Amount » : IF(YEAR([order date])='2024',[order amount],0)
Additionnez les ventes par type de produit et par province : LOD_INCLUDE{[product type],[province],SUM[2024 Order Amount]}
Calculez la moyenne.
-
Créez des graphiques.
Cet exemple utilise une scorecard. Vous pouvez également créer un cross table pour vérifier l'exactitude. Dans la scorecard, faites glisser le nouveau champ dans la zone métrique/mesure de la scorecard et faites glisser product type dans la zone tag/dimension de la scorecard. Dans le cross table, faites glisser product type dans la zone des lignes et order amount dans la zone des colonnes. Filtrez les données de 2024. Cliquez sur Update. Le système met automatiquement à jour les graphiques.

Le montant des commandes de fournitures de bureau en 2024 s'élève à 235 600 CNY. Le montant moyen des ventes provinciales est de 235 600 ÷ 31 provinces = 7 600 CNY. Les autres types de produits suivent la même logique.
Exemple 8 : Nombre moyen de clients provinciaux par type de produit en 2024
Scénario
Cette approche ressemble à l'Exemple 7, mais elle calcule le nombre moyen de clients au lieu du montant moyen des ventes.
Procédure
-
Créez un champ calculé.
AVG( LOD_INCLUDE{[product type],[province]: COUNT(DISTINCT(IF(YEAR([order date])='2024',[user id],null))) } )Détails :
Comptez les clients pour les commandes de 2024. Nommez ce champ « 2024 Customer Count » : IF(YEAR([order date])='2024',[user id],null)
Comptez les clients par type de produit et par province : LOD_INCLUDE{[product type],[province],SUM[2024 Customer Count]}
Calculez la moyenne.
-
Créez des graphiques.
Cet exemple utilise une scorecard. Vous pouvez également créer un cross table pour vérifier l'exactitude. Dans la scorecard, faites glisser le nouveau champ dans la zone métrique/mesure de la scorecard et faites glisser product type dans la zone tag/dimension de la scorecard. Dans le cross table, faites glisser product type dans la zone des lignes et Product Type Provincial Customer Count dans la zone des colonnes. Filtrez les données de 2024. Cliquez sur Update. Le système met automatiquement à jour les graphiques.
Product Type Provincial Customer Count=LOD_INCLUDE{[product type],[province]:COUNT(DISTINCT([user id]))}

Le nombre provincial de clients pour les fournitures de bureau en 2024 est de 212. Le nombre moyen de clients provinciaux est de 212 ÷ 31 provinces = 6,839. Les autres types de produits suivent la même logique.
Exemple 9 : Ratio d'atteinte des objectifs produit et écart de bénéfice par province
Scénario
Avec des objectifs de bénéfice provinciaux connus, analysez quels produits atteignent ou manquent leurs objectifs.
Calculez les écarts de bénéfice par produit au niveau provincial. Comptez les produits qui atteignent leurs objectifs. Comptez le total des produits. Calculez le ratio.
Ce scénario nécessite deux graphiques liés. Cliquez sur les statistiques produit à gauche pour afficher les détails produit à droite.
Procédure
-
Créez des champs calculés.
-
Champ 1 : Product Profit Target Gap
LOD_INCLUDE{[product] : sum([profit]-[profit target])}.Signification : Calcule l'écart par rapport à l'objectif de bénéfice par produit.
-
Champ 2 : Target Achievement Ratio
count(distinct case when [Product Profit Target Gap]>0 then [product] else null end) /count(distinct [product])Détails :
Comptez les produits distincts dont l'écart par rapport à l'objectif de bénéfice est > 0. Nommez ce champ « Products That Meet Targets » : count(distinct case when [Product Profit Target Gap]>0 then [product] else null end)
Comptez le total des produits distincts : count(distinct [product])
Divisez les deux : [Products That Meet Targets]/[Total Products]. Cela donne le Target Achievement Ratio.
-
-
Créez des graphiques.
Cet exemple crée deux graphiques avec interaction.
-
Créez un diagramme en barres pour Product Profit Target Gap. Faites glisser product dans la zone axe catégorie/dimension. Faites glisser Product Profit Target Gap dans la zone axe valeur/mesure. Cliquez sur Update. Le système met automatiquement à jour le graphique.

-
Créez un diagramme en barres pour Target Achievement Ratio. Faites glisser province dans la zone axe catégorie/dimension. Faites glisser Target Achievement Ratio dans la zone axe valeur/mesure. Cliquez sur Update. Le système met automatiquement à jour le graphique.

-
Configurez l'interaction entre les deux diagrammes en barres.
RemarqueDans cet exemple, les deux graphiques utilisent le même ensemble de données. Si l'interaction automatique est activée, les graphiques se lient automatiquement. Sinon, configurez l'interaction manuelle.
Pour plus de détails, consultez la section Interaction.
Aperçu de l'interaction.

-
Vous visualisez ainsi la progression des objectifs de bénéfice provinciaux et identifiez les produits qui atteignent ou manquent leurs objectifs.
Exemple 10 : Évaluation des performances des magasins par région
Scénario
À partir des données de ventes et de marge brute au niveau des magasins, calculez le total des ventes et de la marge brute par région. Calculez également les ventes moyennes et la marge brute moyenne par magasin. Utilisez des filtres pour consulter les performances aux niveaux régional ou sous-régional.
Procédure
-
Créez des champs calculés.
Champ 1 : Store Gross Profit=LOD_INCLUDE{[store name]:sum([gross profit])}
Champ 2 : Store Sales Amount=LOD_INCLUDE{[store name]:sum([sales amount])}
-
Créez un graphique.
Cet exemple utilise un cross table avec mise en forme conditionnelle.
-
Dans le cross table, faites glisser Parent Region et Sub-region dans la zone des lignes. Dans la zone des colonnes, ajoutez deux champs Store Gross Profit (l'un défini sur Average, l'autre sur Sum). Ajoutez deux champs Store Sales Amount (l'un défini sur Average, l'autre sur Sum).

Libellez Store Gross Profit (Average) et Store Sales Amount (Average) comme Per Store. Libellez Store Gross Profit (Sum) et Store Sales Amount (Sum) comme Total.
-
Dans Style → Cell → Metric Grouping, définissez Metric Grouping.

Appliquez une mise en forme conditionnelle pour l'esthétique. Cet exemple configure les quatre colonnes comme suit :

Cliquez sur Update. Le système met automatiquement à jour le graphique.

-
Vous visualisez ainsi le total et les valeurs par magasin des ventes et de la marge brute pour chaque région.
Exemple 11 : Évaluation régionale basée sur les performances provinciales
Scénario
Par province, calculez les ventes par région. Comptez les provinces dont les ventes dépassent un seuil (défini via un filtre). Calculez également le total des clients dans ces provinces et le nombre moyen de clients par province. Modifiez le seuil pour voir les résultats mis à jour.
Cet exemple utilise un espace réservé de valeur. Pour plus de détails sur son utilisation, consultez la section Value Placeholders.
Procédure
-
Créez des champs calculés.
-
Champ 1 : Qualified Province Count
count(distinct case when LOD_INCLUDE{[province]:sum([order amount])} > $val{ord_amt_level} then [province] else null end)Détails :
Calculez le montant des commandes par province : LOD_INCLUDE{[province]:sum([order amount])}. Nommez ce champ Province Order Amount.
Renvoyez la province si Province Order Amount > l'espace réservé de valeur ord_amt_level. Sinon, renvoyez null : case when [Province Order Amount]> $val{ord_amt_level} then [province] else null end. Nommez ce champ Qualified Provinces.
Comptez les provinces qualifiées distinctes : count(distinct [Qualified Provinces]).
-
Champ 2 : Total Customers in Qualified Provinces
count(distinct case when lod_include{[province]:sum([order amount])} > $val{ord_amt_level} then [customer ID] else null end)Détails :
Calculez le montant des commandes par province : LOD_INCLUDE{[province]:sum([order amount])}. Nommez ce champ Province Order Amount.
Renvoyez l'ID client si Province Order Amount > l'espace réservé de valeur ord_amt_level. Sinon, renvoyez null : case when [Province Order Amount]> $val{ord_amt_level} then [customer ID] else null end. Nommez ce champ Customers in Qualified Provinces.
Comptez les Clients sous Province distincts. Formule : count(distinct [Clients sous Province])
Champ 3 : Average Customers Per Province = [Total Customers in Qualified Provinces] ÷ [Qualified Province Count].
-
-
Créez des graphiques.
Créez un cross table. Faites glisser region dans la zone des lignes. Faites glisser Province Count, Province Customer Count et Average Customers Per Province dans la zone des colonnes.
Ajoutez un filtre de requête interne. Définissez le filtre sur le montant des ventes provinciales. Liez-le à l'espace réservé de valeur ord_amt_level. Définissez la valeur par défaut sur 100000.

-
Cliquez sur Update. Le système met automatiquement à jour le graphique.

Modifiez désormais le montant des ventes provinciales pour voir les résultats mis à jour.
Exemples de fonction EXCLUDE
Une expression LOD EXCLUDE effectue le calcul après avoir supprimé les dimensions spécifiées.
Exemple 1 : Part des ventes par province au sein d'une région
Scénario
Lorsque vous analysez les ventes au niveau provincial au sein d'une région, vous devez également connaître le total des ventes de la région ainsi que la part de chaque province. Utilisez la fonction EXCLUDE pour calculer les ventes régionales en excluant la province actuelle. Effectuez ensuite une somme pour obtenir le total régional.
Procédure
-
Créez un champ calculé.
Expression du champ : LOD_EXCLUDE{[province]:SUM([order amount])}
Signification : Calcule les ventes régionales en excluant la province actuelle.

-
Créez un graphique.
Cet exemple utilise un tableau croisé. Faites glisser order amount et Regional Total Sales dans la zone des colonnes. Faites glisser region et province dans la zone des lignes. Cliquez sur Update. Le système met à jour le graphique automatiquement.

Vous visualisez désormais à la fois les montants des commandes par province et le total des ventes régionales.
Exemple 2 : Écart entre les moyennes de la zone commerciale et de la zone de bataille
Scénario
Une entreprise commerciale compte sept zones de bataille nationales. Chaque zone de bataille comprend plusieurs zones commerciales provinciales. En fin d'année, comparez rapidement le bénéfice moyen de chaque province avec la moyenne globale de sa zone de bataille. Identifiez les zones les plus performantes et celles qui sous-performent. Utilisez les expressions LOD et la mise en forme conditionnelle pour générer ce rapport.
Cet exemple utilise LOD_EXCLUDE pour calculer l'écart entre les moyennes de la zone commerciale et de la zone de bataille.
Procédure
-
Créez un champ calculé.
-
Expression du champ : AVG(LOD_EXCLUDE{[province]:AVG([price])})
Signification : À partir de la configuration initiale, excluez les régions commerciales du niveau de granularité d'agrégation et calculez la moyenne des ventes selon les granularités restantes. Cette expression calcule la moyenne des ventes pour chaque région, telle que la Chine de l'Est.
-
Soustrayez le résultat LOD de AVG([price]) : AVG([price]) - AVG(LOD_EXCLUDE{[province]:AVG([price])}). Vous obtenez ainsi l'écart entre chaque zone commerciale et la moyenne de sa zone de bataille.

-
-
Créez un graphique.
Cet exemple utilise un tableau croisé.
Faites glisser le champ Province Average Difference dans la zone des colonnes. Faites glisser area et province dans la zone des lignes.
-
Dans Style → Conditional Formatting, définissez ce champ en rouge si > 0 et en vert si < 0.

-
Cliquez sur Update. Le système met à jour le graphique automatiquement.

Shanghai, l'Anhui, le Jiangsu et le Fujian surpassent désormais la moyenne de la Chine de l'Est. Shanghai arrive en tête. Le Shandong, le Jiangxi et le Zhejiang sont en dessous de la moyenne et nécessitent des améliorations.
Règles relatives aux conditions de filtrage
LOD_FIXED + Filtres externes
-
Résultats non affectés par les filtres
Expression du champ LOD_FIXED_1 : LOD_FIXED{[region]: SUM([order amount])}
Filtre : shipping method = « truck »
Explication du résultat : Comme illustré ci-dessous, le montant total des commandes pour la région du Nord-Est s'élève à 527 400 CNY. Sans filtre externe, ou avec le filtre shipping method = « truck », le total de la région du Nord-Est reste de 527 400 CNY. Les filtres n'affectent pas les résultats.
Conclusion : Les filtres sans lien avec les dimensions d'agrégation LOD n'affectent pas les résultats.

-
Résultats affectés par les filtres
Expression du champ LOD_FIXED_2 : LOD_FIXED{[region], [product type], [shipping method]: SUM([order amount])}
Filtre : shipping method = « truck »
Explication du résultat : Comme indiqué ci-dessous, le total pour le Nord-Est – fournitures de bureau est de 150 800 CNY, soit la somme des transports par camion (35 540 CNY), par train (103 100 CNY) et par avion (12 110 CNY). Avec le filtre shipping method = « truck », le total pour le Nord-Est – fournitures de bureau devient 35 540 CNY, correspondant au montant pour Nord-Est – fournitures de bureau – camion.
Conclusion : Les filtres correspondant aux dimensions d'agrégation LOD affectent les résultats en raison de la ré-agrégation.

LOD + Filtres internes
Conclusion : Les filtres internes correspondant à la granularité LOD s'appliquent à toutes les données concernées. Dans le cas contraire, ils s'appliquent uniquement au champ LOD.
-
LOD_FIXED
-
Expression du champ LOD_FIXED_3 : LOD_FIXED{[region], [product type], [shipping method]: SUM([order amount]): [order level]='intermediate'}
Résultat du calcul : Comme le montre la figure suivante, le montant des commandes pour la région du Nord-Est → Fournitures de bureau → Grande carte s'élève à 35 070. Ce montant représente les données filtrées pour les commandes de niveau intermédiaire, c'est-à-dire le montant des commandes pour la région du Nord-Est → Fournitures de bureau → Grande carte → Intermédiaire.

-
Expression du champ LOD_FIXED_4 : LOD_FIXED{[region], [product type], [shipping method]: SUM([order amount]): [shipping method]='truck'}
Résultat : Comme indiqué ci-dessous, le montant des commandes pour Nord-Est – fournitures de bureau – camion est de 355 400 CNY. Lorsque les filtres internes correspondent à la granularité LOD, LOD_FIXED applique le filtre aux expéditions par camion.

-
-
LOD_INCLUDE
LOD_EXCLUDE et LOD_INCLUDE suivent la même logique. Cet exemple utilise LOD_INCLUDE.

-
Expression du champ LOD_INCLUDE_1 : LOD_INCLUDE{: SUM([order amount]): [order level]='intermediate'}
Résultat du calcul : Comme le montre la figure ci-dessous, prenons l'exemple de la région du Nord-Est. Le montant des commandes pour « Région du Nord-Est - Fournitures de bureau - Grande carte » est de 35 070. Ce montant est obtenu en filtrant les commandes de niveau « Medium », représentant spécifiquement « Région du Nord-Est - Fournitures de bureau - Grande carte - Medium ».
-
Expression du champ LOD_INCLUDE_2 : LOD_INCLUDE{: SUM([order amount]): [shipping method]='truck'}
Résultat : Comme indiqué ci-dessous, le montant des commandes pour Nord-Est – fournitures de bureau – camion est de 355 400 CNY. Lorsque les filtres internes correspondent à la granularité LOD, LOD_INCLUDE applique le filtre aux expéditions par camion.
-