Créer des calculs de niveau de détail, de classement et de section
Remarque : depuis la version 2020.4.1, vous pouvez désormais créer et modifier des flux dans Tableau Server et Tableau Cloud. Le contenu de cette rubrique s’applique à toutes les plates-formes, sauf mention spécifique. Pour plus d’informations sur la création de flux sur le Web, consultez Tableau Prep sur le Web dans l’aide de Tableau Server(Le lien s’ouvre dans une nouvelle fenêtre) et Tableau Cloud(Le lien s’ouvre dans une nouvelle fenêtre).
Vous pouvez utiliser des champs calculés pour créer de nouvelles données en utilisant les données déjà présentes dans votre source de données. Tableau Prep prend en charge de nombreux types de calcul identiques à ceux de Tableau Desktop. Pour des informations générales sur la création de calculs, consultez Démarrer avec les calculs dans Tableau(Le lien s’ouvre dans une nouvelle fenêtre).
Remarque : lors de la création d’un champ calculé, n’utilisez pas le nom réservé « Nombre d’enregistrements ». L’utilisation de ce nom réservé entraînera une erreur liée aux autorisations.
Depuis la version 2020.1.3 Tableau Prep Builder et sur le Web, vous pouvez utiliser les fonctions analytiques de niveau de détail (LOD) FIXED, RANK et ROW_NUMBER pour effectuer des calculs plus complexes.
Par exemple, ajoutez un calcul LOD FIXED pour modifier la granularité des champs de votre table, utilisez la fonction analytique ROW_NUMBER () pour trouver rapidement les lignes en double, ou utilisez l’une des fonctions RANK () afin de trouver les valeurs N supérieures ou N inférieures pour une sélection de lignes comportant des données similaires. Si vous souhaitez être guidé lors de la création de ces types d’expressions, vous pouvez utiliser l’éditeur de calcul visuel.
Depuis la version 2021.4.1 de Tableau Prep Builder et sur le Web, vous pouvez utiliser la fonctionnalité de section pour répartir les lignes dans un nombre spécifié de compartiments.
Remarque : certaines fonctions prises en charge dans Tableau Desktop peuvent ne pas être encore compatibles dans Tableau Prep. Pour voir les fonctions disponibles pour Tableau Prep, consultez la liste des fonctions dans l’éditeur de calcul.
Calculer le niveau de détail
Lorsque vous avez besoin de calculer des données à plusieurs niveaux de granularité dans la même table, vous pouvez écrire une expression de niveau de détail (LOD) dans ce but. Par exemple, pour connaître le chiffre d’affaires total de chaque région, vous pourriez écrire un calcul du type {FIXED [Region] : SUM([Sales])}
.
Tableau Prep prend en charge l’expression LOD FIXED et utilise la syntaxe {FIXED [Field1],[Field2] : Aggregation([Field)}
.
Dans les expressions LOD, les deux parties de l’équation sont séparées par un signe deux-points.
FIXED [Champ] (obligatoire) : il s’agit du ou des champs pour lesquels vous souhaitez calculer les valeurs. Par exemple, si vous souhaitez connaître le total des ventes pour un client et une région, vous devez entrer
FIXED [Customer ID], [Region]:
. Si vous ne sélectionnez aucun champ, cela équivaut à effectuer l’agrégation définie sur le côté droit des deux-points et à répéter cette valeur pour chaque ligne.Agrégation ([Champ] ) (obligatoire) : sélectionnez ce que vous souhaitez calculer et le niveau d’agrégation recherché. Par exemple, si vous voulez connaître le total des ventes, entrez
SUM([Sales]
.
Si vous utilisez cette fonctionnalité dans Tableau Prep, les exigences suivantes s’appliquent :
- Les expressions LOD
INCLUDE
etEXCLUDE
ne sont pas prises en charge. - Les calculs d’agrégation ne sont pris en charge qu’à l’intérieur d’une expression LOD. Par exemple,
SUM([Sales])
ne serait pas valide, par contre{FIXED [Region] : SUM([Sales])}
est valide. L’imbrication d’expressions dans une expression LOD n’est pas prise en charge. Par exemple,
{ FIXED [Region] : AVG( [Sales] ) / SUM( [Profit] )}
n’est pas pris en charge.- La combinaison d’une expression LOD avec une autre expression n’est pas prise en charge. Par exemple,
[Sales]/{ FIXED [Country / Region]:SUM([Sales])}
n’est pas pris en charge. Dans la barre d’outils du volet Profil, cliquez sur Créer un champ calculé, ou dans une fiche Profil ou une grille de données, cliquez sur le menu Options supplémentaires et sélectionnez Créer un champ calculé > Calcul personnalisé.
Dans l’éditeur de calcul, saisissez un nom pour votre calcul et entrez l’expression.
Par exemple, pour trouver le nombre moyen de jours pour expédier des produits par ville, créez un calcul tel que celui présenté ci-dessous.
Dans une fiche de profil ou un volet de résultats, cliquez sur le menu Options supplémentaires et sélectionnez Créer un champ calculé > LOD fixe.
Dans l’éditeur de calcul visuel, procédez comme suit :
- Dans la section Regrouper par, sélectionnez les champs pour lesquels vous souhaitez calculer les valeurs. Le champ dans lequel vous avez sélectionné l’option de menu Créer un champ calculé > LOD fixe est ajouté par défaut. Cliquez sur l’icône pour ajouter des champs supplémentaires à votre calcul. Le côté gauche de l’équation est alors rempli,
{FIXED [Field1],[Field2] :
. Dans la section Calculer au moyen de, sélectionnez le champ que vous voulez utiliser pour calculer vos nouvelles valeurs. Sélectionnez ensuite votre agrégation. Le côté droit de l’équation est alors rempli,
Aggregation([Field)}
.Un graphique sous le champ montre la distribution des valeurs et un total pour chaque combinaison de valeurs. Selon le type de données, il peut s’agir d’une boîte à moustaches, d’une plage de valeurs ou des valeurs réelles.
Remarque : les valeurs d’agrégation disponibles varient selon le type de données attribué au champ.
Pour supprimer un champ, faites un clic droit ou Cntrl-clic (MacOS) dans la zone de liste déroulante des champs de la section Regrouper par et sélectionnez Supprimer le champ.
- Dans le volet de gauche, double-cliquez sur l’en-tête du champ et entrez un nom pour votre calcul.
- Dans la section Regrouper par, sélectionnez les champs pour lesquels vous souhaitez calculer les valeurs. Le champ dans lequel vous avez sélectionné l’option de menu Créer un champ calculé > LOD fixe est ajouté par défaut. Cliquez sur l’icône pour ajouter des champs supplémentaires à votre calcul. Le côté gauche de l’équation est alors rempli,
Cliquez sur Terminé pour ajouter votre nouveau champ calculé. Dans le volet Modifications, vous pouvez voir le calcul que Tableau Prep a généré. Cliquez sur Modifier pour ouvrir l’éditeur visuel de calcul et apporter les modifications nécessaires.
Créer des calculs de niveau de détail (LOD)
Pour créer un calcul de niveau de détail, vous pouvez utiliser l’éditeur de calcul si vous souhaitez écrire le calcul vous-même. Si vous préférez être guidé, vous pouvez utiliser l’éditeur de calcul visuel : vous sélectionnez vos champs et Tableau Prep écrit le calcul pour vous.
Éditeur de calcul
Éditeur de calcul visuel
Sélectionnez des champs dans une liste et Tableau Prep crée le calcul pour vous au fur et à mesure que vous effectuez vos sélections. Un aperçu des résultats s’affiche dans le volet de gauche afin que vous puissiez voir les résultats de vos sélections au fur et à mesure.
Calculer le classement ou le nombre de lignes
Les fonctions analytiques, parfois appelées calculs de fenêtre, vous permettent d’effectuer des calculs sur l’ensemble de la table ou sur une sélection de lignes (partition) de votre ensemble de données. Par exemple, lorsque vous appliquez un classement à une sélection de lignes, vous utilisez la syntaxe de calcul suivante :
{PARTITION [field]: {ORDERBY [field]: RANK() }}
PARTITION (facultatif) : désignez les lignes sur lesquelles vous voulez effectuer le calcul. Vous pouvez spécifier plus d’un champ, mais si vous voulez utiliser la table entière, omettez cette partie de la fonction. Tableau Prep traitera alors toutes les lignes comme la partition. Par exemple
{ORDERBY [Sales] : RANK() }
.ORDERBY (obligatoire) : indiquez un ou plusieurs champs que vous souhaitez utiliser pour générer la séquence en vue du classement.
Rank () (obligatoire) : précisez le type de classement ou ROW_NUMBER () que vous souhaitez calculer. Tableau Prep prend en charge les fonctions RANK(), RANK_DENSE(), RANK_MODIFIED(), RANK_PERCENTILE() et ROW_NUMBER().
DESC ou ASC (facultatif) : représente l’ordre décroissant (DESC) ou croissant (ASC). Par défaut, le classement est trié par ordre décroissant, il n’est donc pas nécessaire de le préciser dans l’expression. Si vous souhaitez changer l’ordre de tri, ajoutez ASC à l’expression.
Vous pouvez également inclure les deux options dans la fonction. Par exemple, si vous souhaitez classer une sélection de lignes, mais que vous voulez trier les lignes par ordre croissant, puis appliquer le classement par ordre décroissant, vous devez inclure ces deux options dans l’expression. Par exemple :
{PARTITION [Country], [State]: {ORDERBY [Sales] ASC,[Customer Name] DESC: RANK() }}
Lors de l’utilisation de cette fonctionnalité, les exigences suivantes s’appliquent :
- L’imbrication d’expressions dans une fonction RANK () n’est pas prise en charge. Par exemple,
[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} / SUM( [Profit] )}
n’est pas pris en charge. - La combinaison d’une fonction RANK () avec une autre expression n’est pas prise en charge. Par exemple,
[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }}
n’est pas pris en charge.
Fonctions analytiques prises en charge
Fonction | Description | Résultat |
---|---|---|
RANK () | Attribue à chaque ligne un classement de nombre entier commençant par 1, dans l’ordre croissant ou décroissant. Si des lignes ont la même valeur, elles partagent le classement qui est attribué à la première instance de la valeur. Le nombre de lignes ayant le même classement est ajouté lors du calcul du classement de la ligne suivante, de sorte qu’il est possible que vous n’obteniez pas des valeurs de classement consécutives. Exemple de calcul : | |
RANK_DENSE() | Attribue à chaque ligne un classement de nombre entier commençant par 1, dans l’ordre croissant ou décroissant. Si des lignes ont la même valeur, elles partagent le classement qui est attribué à la première instance de la valeur, mais aucune valeur de classement n’est ignorée, de sorte que vous obtiendrez des valeurs de classement consécutives. Exemple de calcul : | |
RANK_MODIFIED() | Attribue à chaque ligne un classement de nombre entier commençant par 1, dans l’ordre croissant ou décroissant. Si des lignes ont la même valeur, elles partagent le classement qui est attribué à la dernière instance de la valeur. Rank_Modified est calculé comme suit : Exemple de calcul : | |
RANK_PERCENTILE() | Attribue à chaque ligne un classement de centile de 0 à 1 dans l’ordre croissant ou décroissant. RANK_PERCENTILE est calculé comme suit : Exemple de calcul : Remarque : en cas d’égalité, Tableau Prep arrondit au niveau inférieur, comme pour PERCENT_RANK () dans SQL. | |
ROW_NUMBER() | Attribue à chaque ligne unique un identifiant de ligne séquentiel. Aucune valeur de numéro de ligne n’est ignorée. Si vous avez des lignes en double et que vous utilisez ce calcul, vos résultats peuvent changer à chaque fois que vous exécutez le flux si l’ordre des lignes change. Exemple de calcul : |
L’exemple suivant montre une comparaison de chacune des fonctions ci-dessus appliquées au même ensemble de données.
Créer des calculs RANK ou ROW_NUMBER
Pour créer un calcul Rank ou Row_Number, vous pouvez utiliser l’éditeur de calcul si vous souhaitez écrire le calcul vous-même. Si vous préférez être guidé, vous pouvez utiliser l’éditeur de calcul visuel : vous sélectionnez vos champs et Tableau Prep écrit le calcul pour vous.
Remarque : les calculs ROW_NUMBER () ne sont pas disponibles dans l’éditeur de calcul visuel.
Éditeur de calcul
Utilisez l’éditeur de calcul pour créer l’un des calculs RANK () ou ROW_NUMBER () pris en charge. La liste des calculs analytiques pris en charge est affichée dans l’éditeur de calcul dans le menu déroulant Référence sous Analytique.
Dans la barre d’outils du volet Profil, cliquez sur Créer un champ calculé, ou dans une fiche Profil ou une grille de données, cliquez sur le menu Options supplémentaires et sélectionnez Créer un champ calculé > Calcul personnalisé.
Dans l’éditeur de calcul, saisissez un nom pour votre calcul et entrez l’expression.
Par exemple, pour trouver la dernière commande d’un client, créez un calcul tel que celui présenté ci-dessous, puis ne conservez que les lignes de commande du client qui sont classées avec le chiffre 1.
Exemple : utilisez ROW_NUMBER pour trouver et supprimer des valeurs en double.
Cet exemple utilise l’exemple d’ensemble de données Superstore dans Tableau Prep Builder pour trouver et supprimer les valeurs exactes en double pour le champ ID de ligne en utilisant la fonction ROW_NUMBER.
Ouvrez le flux Sample Superstore.
Dans le volet Flux, pour l’étape des données entrantes Orders West (Commandes région Ouest), cliquez sur l’étape Nettoyer Renommer les États.
Dans la barre d’outils, cliquez sur Créer un champ calculé.
Dans l’éditeur de calcul, nommez le nouveau champ « Doublons » et utilisez la fonction
ROW_NUMBER
pour ajouter un numéro de ligne au champ ID de ligne à l’aide de l’expression{PARTITION [Row ID]: {ORDERBY[Row ID]:ROW_NUMBER()}}
et cliquez sur Enregistrer.Dans le nouveau champ calculé, faites un clic droit ou faites un Cmd-clic (MacOS) sur la valeur 1 du champ, puis sélectionnez Conserver uniquement dans le menu.
Avant Après
Éditeur de calcul visuel
Tout comme pour la création d’un calcul de niveau de détail, vous pouvez utiliser l’éditeur de calcul visuel pour créer un calcul de classement. Sélectionnez les champs à inclure dans le calcul, puis sélectionnez les champs à utiliser pour classer les lignes ainsi que le type de classement que vous souhaitez calculer. Un aperçu des résultats s’affiche dans le volet de gauche afin que vous puissiez voir les résultats de vos sélections au fur et à mesure.
Dans une fiche de profil ou un volet de résultats, cliquez sur le menu Options supplémentaires et sélectionnez Créer un calcul de champ > Classement.
Dans l’éditeur de calcul visuel, procédez comme suit :
Dans la section Regrouper par, sélectionnez les champs avec des lignes pour lesquelles vous souhaitez calculer des valeurs. La partie Partition du calcul est alors créée.
Après avoir sélectionné votre premier champ, cliquez sur le l’icône plus pour ajouter des champs supplémentaires à votre calcul. Si vous souhaitez inclure toutes les lignes ou supprimer un champ sélectionné, faites un clic droit ou Cmd-clic (MacOS) dans la zone de liste déroulante des champs de la section Regrouper par et sélectionnez Supprimer le champ.
Dans la section Regrouper par, sélectionnez les champs que vous voulez utiliser pour calculer vos nouvelles valeurs. Le champ dans lequel vous avez sélectionné l’option de menu Créer un champ calculé >Classement est ajouté par défaut.
Cliquez sur l’icône plus pour ajouter des champs supplémentaires à votre calcul, puis sélectionnez votre type de Classement. Cliquez sur l’icône de tri pour modifier l’ordre de classement de décroissant (DESC) à croissant (ASC).
Remarque : les valeurs de classement varient selon le type de données attribué au champ.
Dans le volet de gauche, double-cliquez sur l’en-tête du champ et entrez un nom pour votre calcul.
Cliquez sur Terminé pour ajouter votre nouveau champ calculé. Dans le volet Modifications, vous pouvez voir le calcul que Tableau Prep Builder a généré. Cliquez sur Modifier pour ouvrir l’éditeur visuel de calcul et apporter les modifications nécessaires.
Calcul de sections
Utilisez la fonction Section pour répartir les lignes dans un nombre spécifié de compartiments en créant un champ calculé. Vous sélectionnez les champs selon lesquels vous souhaitez répartir et le nombre de groupes (sections) à utiliser. Vous pouvez également sélectionner des champs supplémentaires pour créer des partitions où les lignes de section sont réparties en groupes. Utilisez l’éditeur de calcul pour saisir la syntaxe manuellement ou utilisez l’éditeur de calcul visuel pour sélectionner les champs. Tableau Prep écrit alors le calcul pour vous.
Par exemple, si vous avez des lignes de données d’élèves et que vous souhaitez voir quels élèves se situent dans les 50 % supérieurs et les 50 % inférieurs, vous pouvez regrouper les données en deux sections.
L’exemple suivant montre deux groupes pour la moitié supérieure et la moitié inférieure des notes des élèves. La syntaxe pour cette méthode est la suivante :
{ORDERBY [Grade] DESC:NTILE(2)}
Vous pouvez également créer une partition, où chaque valeur d’un champ est une partition distincte, et diviser les données en groupes pour chaque partition.
L’exemple suivant montre la création de partitions pour le champ de matière. Une partition est créée pour chaque matière et deux groupes (sections) sont créés pour le champ Note. Les lignes sont ensuite réparties uniformément dans les deux groupes pour les trois partitions. La syntaxe pour cette méthode est la suivante :
{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}}
Créer des calculs de section
Pour créer un calcul de section, vous pouvez utiliser l’éditeur de calcul si vous souhaitez écrire le calcul vous-même. Si vous préférez être guidé, vous pouvez utiliser l’éditeur de calcul visuel : vous sélectionnez vos champs et Tableau Prep écrit le calcul pour vous.
Éditeur de calcul visuel
Lorsque vous utilisez l’éditeur de calcul visuel pour créer un calcul de section, un aperçu des résultats s’affiche dans le volet de gauche.
Sélectionnez une fiche Profil pour créer un calcul de section.
Cliquez sur le menu Options supplémentaires et sélectionnez Créer un champ calculé > Section.
La fiche Profil sélectionnée est ajoutée en tant que champ ORDERBY.
Dans l’éditeur de calcul visuel, procédez comme suit :
Sélectionnez le nombre de regroupements de sections souhaité. La valeur par défaut pour les sections est 1.
Dans la section Regrouper par, sélectionnez les champs des lignes pour lesquels vous souhaitez calculer les valeurs. La partie
PARTITION
du calcul est alors créée. Vous pouvez avoir plusieurs champs Regrouper par pour un seul calcul.Cliquez sur l’icône pour ajouter des champs supplémentaires à votre calcul. Si vous souhaitez inclure toutes les lignes ou supprimer un champ sélectionné, faites un clic droit ou Cmd-clic (MacOS) dans la zone de liste déroulante des champs de la section Regrouper par et sélectionnez Supprimer le champ.
Dans le volet de gauche, double-cliquez sur l’en-tête du champ et entrez un nom pour votre calcul.
Dans la section Regrouper par, sélectionnez un ou plusieurs champs que vous voulez utiliser pour regrouper et répartir vos nouvelles valeurs. Vous devez avoir au moins un champ Classer par. Le champ où vous avez sélectionné l’option de menu Créer un champ calculé > Section est ajouté par défaut.
Pour trier les résultats, procédez comme suit :
Cliquez sur l’une des lignes de calcul pour filtrer les résultats du regroupement sélectionné
Modifiez l’ordre croissant ou décroissant de l’ordre par champ.
Cliquez sur Terminé pour ajouter votre nouveau champ calculé.
Dans le volet Modifications, vous pouvez voir le calcul que Tableau Prep Builder a généré. Cliquez sur Modifier pour ouvrir l’éditeur visuel de calcul et apporter les modifications nécessaires.
L’exemple suivant montre une division de lignes par quartiles. Une partition est créée sur la base de quatre régions des États-Unis, puis les données du champ Ventes sont regroupées de manière uniforme dans les partitions.
Éditeur de calcul
Dans la barre d’outils du volet Profil, cliquez sur Créer un champ calculé, ou dans une fiche Profil ou une grille de données, cliquez sur le menu Options supplémentaires et sélectionnez Créer un champ calculé > Calcul personnalisé.
Dans l’éditeur de calcul, saisissez un nom pour votre calcul et entrez l’expression. Par exemple, pour classer les lignes d’étudiants par niveau en deux groupes puis les regrouper par matière, utilisez :
{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}}
.Les calculs incluent les éléments suivants :
PARTITION (facultatif) : une clause de partition différencie les lignes d’un ensemble de résultats en partitions où la fonction NTILE() est utilisée.
ORDERBY (obligatoire) La clause ORDER BY définit la distribution des lignes dans chaque partition où NTILE() est utilisé.
NTILE (obligatoire) : NTILE est l’entier dans lequel les lignes sont divisées.
Remarque : lorsque toutes les lignes sont divisibles par la clause NTILE, la fonctionnalité divise les lignes de manière égale entre le nombre de sections. Lorsque le nombre de lignes n’est pas divisible par la clause NTILE, les groupes résultants sont divisés en compartiments de tailles différentes.
DESC ou ASC (facultatif) : représente l’ordre décroissant (DESC) ou croissant (ASC). Par défaut, la section est triée par ordre décroissant. Il n’est donc pas nécessaire de le préciser dans l’expression. Si vous souhaitez changer l’ordre de tri, ajoutez ASC à l’expression.
Cliquez sur Enregistrer.
Le champ généré affiche les affectations de regroupement de sections (compartiment) associées à chaque ligne de la table.