Gestion de plusieurs conventions de dénomination dans les champs de source de données dans Tableau Prep

March 30, 2026
January 25, 2023
5
min read

Lorsque vous utilisez plusieurs sources de données en entrée pour un flux de préparation, il est courant de rencontrer des noms de colonnes différents pour le même champ. Un exemple est illustré ci-dessous, où deux sources contiennent les mêmes champs, à savoir le numéro de commande, la date de commande, la date d'expédition, l'identifiant client et les ventes et la quantité ; sauf que pour les quatre premières colonnes, les deux sources de données ont des noms de colonne différents !

L'union de ces deux ensembles de données donnera le résultat suivant, qui n'est pas une structure de données optimale à des fins d'analyse.

Dans ce blog, nous présentons des solutions robustes pour traiter les cas suivants (et d'autres similaires) :

  • Nous ne savons pas laquelle des deux (ou plusieurs) conventions de dénomination les données d'entrée utilisent pour notre flux de préparation. Par exemple, vous pouvez avoir des sources de données de différents pays avec des champs dans leur langue, mais vous voulez qu'ils soient en anglais.
  • Les champs d'une source de données unique ont été renommés. Cela peut se produire après une migration de base de données par exemple.

Toutes les informations utilisées dans ce blog, les données et les fichiers Tableau Prep, sont disponibles sur ce lien.

La première étape consiste à créer un fichier modèle vide contenant les noms de tous les champs en tant qu'en-tête.

Notez que nous avons inclus tous les noms possibles des colonnes de saisie, par exemple « ORID » et « Numéro de commande » pour « Numéro de commande », etc.

Nous créons maintenant une union de ce fichier modèle avec les données d'entrée. Cela garantit que tous les champs sont utilisés quelle que soit la convention de dénomination des données d'entrée.

Pour notre exemple, nous utiliserons une union générique. Nous disposons de trois fichiers :

  • data_1.xls : utilise « ORID », « ORDT », « SHDT », « CSID »
  • data_2.xls : utilise « Numéro de commande », « Date de commande », « Date d'expédition », « Numéro client »
  • data_template.xls : le tableau vide avec tous les noms en en-tête

Nous n'utiliserons d'abord que le fichier de données « data_1.xls », cela simule un cas où nous voudrions renommer les champs d'une source de données unique en utilisant une autre convention. Nous allons ensuite omettre pour l'instant le fichier « data_2.xls » en ajoutant un trait de soulignement _ au début de son nom de fichier.

À l'étape de saisie, après avoir cliqué sur l'union de caractères génériques, nous écrivons « data_*.xls » dans le modèle correspondant et nous cliquons sur Appliquer.

Le résultat est le premier ensemble de données dont les colonnes du second schéma de dénomination sont remplies de valeurs nulles pour chaque ligne, comme vous le souhaitez.

À ce stade, nous allons montrer trois méthodes pour fusionner les champs de telle sorte que nous n'utilisions qu'une seule convention de dénomination à la fin du flux. Dans cet exemple, nous voulons utiliser la convention du second fichier de données.

1) Fusionner les champs à la main

Lors d'une étape de nettoyage, nous cliquons d'abord sur « Numéro de commande » et appuyons sur CTRL (Cmd sur Mac), puis sur « ORID », puis sur Fusionner les champs, comme indiqué ci-dessous. Cela garantit que « Numéro de commande » est utilisé pour le nom du champ fusionné. Nous répétons cette procédure pour les autres champs et nous obtenons un tableau dans lequel les noms des champs ont été correctement convertis.

Cette méthode est très simple. Cependant, il peut être assez fastidieux de fusionner de nombreux champs à la main. Les deux méthodes suivantes proposent une solution alternative à ce problème.

2) Fusionner les champs avec les calculs

Nous proposons ici une méthode dans laquelle les noms d'une convention peuvent être facilement transformés en une autre convention à l'aide de calculs, par exemple :

  • Dans notre exemple, le préfixe des noms de data_1.xls « OR », « SH » et « CS » peut être converti en « Commande », « Expédition » et « Client » à l'aide du REMPLACER fonction avec les instructions IF et ELSE. La terminaison « DT » peut être convertie en « Date ».
  • Imaginez une source de données dont les noms de champs sont tels que « A — a1, A — a2, B — b1, B - b2 » et dans une autre convention, les champs sont nommés « a1, a2, b1, b2 ». Ici, la conversion entre les deux conventions peut être effectuée à l'aide du SCISSION fonction sur les noms des premières conventions.

Le principe de cette méthode consiste à appliquer une transformation par pivot des colonnes aux lignes des données, à convertir les noms, puis à effectuer une nouvelle rotation des lignes vers les colonnes.

  • Dans un premier temps, lors d'une étape de nettoyage, nous allons créer un champ qui possède une valeur unique pour chaque ligne (elle existe peut-être déjà dans les données), en utilisant la fonction NUMÉRO_LIGNE.

Mettez le NUMÉRO_LIGNE fonction entre accolades avec un COMMANDER PAR déclaration, ici nous choisissons arbitrairement « ID client ». L'image ci-dessous montre le résultat :

  • Créons maintenant un pivot, colonne en lignes, étape où vous devez faire glisser et déposer tous les champs, à l'exception du « Numéro de ligne », comme indiqué dans l'image ci-dessous.
  • Nous renommons « Pivot1 Names » en « Field » et « Pivot1 Values » en « Values ».

Voici le tableau pivotant obtenu à l'issue de cette étape :

  • Nous ajoutons une nouvelle étape de nettoyage, au cours de laquelle nous convertirons les noms. Pour notre exemple particulier, nous allons créer deux champs calculés illustrés dans l'image ci-dessous. Le premier convertira les préfixes et le second les clés des noms utilisés dans data_1.xls.

Notre nouveau champ calculé « Champs convertis » ne contient désormais que les noms de la deuxième convention de dénomination. Nous devons désormais ne conserver que les champs « Numéro de ligne », « Champs convertis » et « Valeurs ».

  • Nous ajoutons maintenant une dernière étape de pivot entre les lignes et les colonnes. Nous faisons glisser les « Champs convertis » vers les champs pivotés, et nous faisons glisser les « Valeurs » vers le champ pour les agréger à l'aide du MIN ou MAX fonction d'agrégation.

Cela produit le résultat souhaité.

3) Fusionner des champs avec un dictionnaire

Cette méthode propose un moyen de fusionner des champs lorsque vous ne pouvez pas convertir les noms d'une convention en une autre avec très peu de champs calculés. Il utilise à la place un dictionnaire mappant les noms de convention à un autre. Nous avons créé le dictionnaire dans un fichier Excel :

Il s'agit d'une généralisation de la seconde méthode qui utilise les mêmes étapes initiales et finales du flux.

  • En partant du pivot, des colonnes aux lignes, étape de la méthode précédente, nous créons deux étapes de nettoyage comme espaces réservés et nous saisissons le dictionnaire comme indiqué ci-dessous.
  • Nous joignons ensuite à droite la colonne « Champs » de l'espace réservé 1 à la colonne du dictionnaire « Champs 1 », et une autre jointure à droite de la colonne de l'espace réservé « Champs » à la colonne du dictionnaire « Champs 2 » du dictionnaire.

Les résultats de chaque étape de jointure sont présentés sur les images ci-dessous :

Le champ « Champs 1 » est supprimé de chaque étape de jointure, car il ne sera plus utilisé par la suite.

  • Nous pouvons maintenant réunir la jointure 1 et la jointure 2 en utilisant une jointure interne dans les colonnes « Champs » et « Numéro de ligne ». Les deux champs sont nécessaires dans la clause de jointure afin d'établir une relation biunivoque.
  • Dans une nouvelle étape de nettoyage, nous supprimons les colonnes dupliquées pour « Champs », « Numéro de ligne » et « Valeurs ». Nous conservons toutefois les colonnes dupliquées pour les « Champs 2 ». L'image ci-dessous montre le tableau dont nous disposons actuellement.

Dans la même étape, nous créons un champ calculé qui attribuera les noms comme indiqué ci-dessous.

  • Maintenant, nous ne conservons que les colonnes « Noms », « Valeurs » et « Numéro de ligne » et ajoutons une colonne pivotante à l'étape des lignes exactement comme lors de la dernière étape de la deuxième méthode.

Derniers mots

Renommons le fichier « _data_2.xls » en « data_2.xls » et actualisons le flux. Ce que nous obtenons en sortie de chacune des méthodes décrites précédemment est le tableau ci-dessous. Les champs des deux fichiers de données sont correctement fusionnés selon la convention « data_2.xls », ce qui prouve que cette méthode fonctionne également lorsque deux sources de données sont utilisées avec deux conventions de dénomination différentes.

Grâce à cette solution simple, vous pouvez gérer de manière fluide les situations dans lesquelles votre source de données comporte différents schémas de dénomination sans avoir à vous soucier de celui qui est utilisé. Les exemples utilisent deux conventions de dénomination, mais cette solution fonctionne avec d'autres.

Tableau
Tableau
Tableau

Lorsque vous utilisez plusieurs sources de données en entrée pour un flux de préparation, il est courant de rencontrer des noms de colonnes différents pour le même champ. Un exemple est illustré ci-dessous, où deux sources contiennent les mêmes champs, à savoir le numéro de commande, la date de commande, la date d'expédition, l'identifiant client et les ventes et la quantité ; sauf que pour les quatre premières colonnes, les deux sources de données ont des noms de colonne différents !

L'union de ces deux ensembles de données donnera le résultat suivant, qui n'est pas une structure de données optimale à des fins d'analyse.

Dans ce blog, nous présentons des solutions robustes pour traiter les cas suivants (et d'autres similaires) :

  • Nous ne savons pas laquelle des deux (ou plusieurs) conventions de dénomination les données d'entrée utilisent pour notre flux de préparation. Par exemple, vous pouvez avoir des sources de données de différents pays avec des champs dans leur langue, mais vous voulez qu'ils soient en anglais.
  • Les champs d'une source de données unique ont été renommés. Cela peut se produire après une migration de base de données par exemple.

Toutes les informations utilisées dans ce blog, les données et les fichiers Tableau Prep, sont disponibles sur ce lien.

La première étape consiste à créer un fichier modèle vide contenant les noms de tous les champs en tant qu'en-tête.

Notez que nous avons inclus tous les noms possibles des colonnes de saisie, par exemple « ORID » et « Numéro de commande » pour « Numéro de commande », etc.

Nous créons maintenant une union de ce fichier modèle avec les données d'entrée. Cela garantit que tous les champs sont utilisés quelle que soit la convention de dénomination des données d'entrée.

Pour notre exemple, nous utiliserons une union générique. Nous disposons de trois fichiers :

  • data_1.xls : utilise « ORID », « ORDT », « SHDT », « CSID »
  • data_2.xls : utilise « Numéro de commande », « Date de commande », « Date d'expédition », « Numéro client »
  • data_template.xls : le tableau vide avec tous les noms en en-tête

Nous n'utiliserons d'abord que le fichier de données « data_1.xls », cela simule un cas où nous voudrions renommer les champs d'une source de données unique en utilisant une autre convention. Nous allons ensuite omettre pour l'instant le fichier « data_2.xls » en ajoutant un trait de soulignement _ au début de son nom de fichier.

À l'étape de saisie, après avoir cliqué sur l'union de caractères génériques, nous écrivons « data_*.xls » dans le modèle correspondant et nous cliquons sur Appliquer.

Le résultat est le premier ensemble de données dont les colonnes du second schéma de dénomination sont remplies de valeurs nulles pour chaque ligne, comme vous le souhaitez.

À ce stade, nous allons montrer trois méthodes pour fusionner les champs de telle sorte que nous n'utilisions qu'une seule convention de dénomination à la fin du flux. Dans cet exemple, nous voulons utiliser la convention du second fichier de données.

1) Fusionner les champs à la main

Lors d'une étape de nettoyage, nous cliquons d'abord sur « Numéro de commande » et appuyons sur CTRL (Cmd sur Mac), puis sur « ORID », puis sur Fusionner les champs, comme indiqué ci-dessous. Cela garantit que « Numéro de commande » est utilisé pour le nom du champ fusionné. Nous répétons cette procédure pour les autres champs et nous obtenons un tableau dans lequel les noms des champs ont été correctement convertis.

Cette méthode est très simple. Cependant, il peut être assez fastidieux de fusionner de nombreux champs à la main. Les deux méthodes suivantes proposent une solution alternative à ce problème.

2) Fusionner les champs avec les calculs

Nous proposons ici une méthode dans laquelle les noms d'une convention peuvent être facilement transformés en une autre convention à l'aide de calculs, par exemple :

  • Dans notre exemple, le préfixe des noms de data_1.xls « OR », « SH » et « CS » peut être converti en « Commande », « Expédition » et « Client » à l'aide du REMPLACER fonction avec les instructions IF et ELSE. La terminaison « DT » peut être convertie en « Date ».
  • Imaginez une source de données dont les noms de champs sont tels que « A — a1, A — a2, B — b1, B - b2 » et dans une autre convention, les champs sont nommés « a1, a2, b1, b2 ». Ici, la conversion entre les deux conventions peut être effectuée à l'aide du SCISSION fonction sur les noms des premières conventions.

Le principe de cette méthode consiste à appliquer une transformation par pivot des colonnes aux lignes des données, à convertir les noms, puis à effectuer une nouvelle rotation des lignes vers les colonnes.

  • Dans un premier temps, lors d'une étape de nettoyage, nous allons créer un champ qui possède une valeur unique pour chaque ligne (elle existe peut-être déjà dans les données), en utilisant la fonction NUMÉRO_LIGNE.

Mettez le NUMÉRO_LIGNE fonction entre accolades avec un COMMANDER PAR déclaration, ici nous choisissons arbitrairement « ID client ». L'image ci-dessous montre le résultat :

  • Créons maintenant un pivot, colonne en lignes, étape où vous devez faire glisser et déposer tous les champs, à l'exception du « Numéro de ligne », comme indiqué dans l'image ci-dessous.
  • Nous renommons « Pivot1 Names » en « Field » et « Pivot1 Values » en « Values ».

Voici le tableau pivotant obtenu à l'issue de cette étape :

  • Nous ajoutons une nouvelle étape de nettoyage, au cours de laquelle nous convertirons les noms. Pour notre exemple particulier, nous allons créer deux champs calculés illustrés dans l'image ci-dessous. Le premier convertira les préfixes et le second les clés des noms utilisés dans data_1.xls.

Notre nouveau champ calculé « Champs convertis » ne contient désormais que les noms de la deuxième convention de dénomination. Nous devons désormais ne conserver que les champs « Numéro de ligne », « Champs convertis » et « Valeurs ».

  • Nous ajoutons maintenant une dernière étape de pivot entre les lignes et les colonnes. Nous faisons glisser les « Champs convertis » vers les champs pivotés, et nous faisons glisser les « Valeurs » vers le champ pour les agréger à l'aide du MIN ou MAX fonction d'agrégation.

Cela produit le résultat souhaité.

3) Fusionner des champs avec un dictionnaire

Cette méthode propose un moyen de fusionner des champs lorsque vous ne pouvez pas convertir les noms d'une convention en une autre avec très peu de champs calculés. Il utilise à la place un dictionnaire mappant les noms de convention à un autre. Nous avons créé le dictionnaire dans un fichier Excel :

Il s'agit d'une généralisation de la seconde méthode qui utilise les mêmes étapes initiales et finales du flux.

  • En partant du pivot, des colonnes aux lignes, étape de la méthode précédente, nous créons deux étapes de nettoyage comme espaces réservés et nous saisissons le dictionnaire comme indiqué ci-dessous.
  • Nous joignons ensuite à droite la colonne « Champs » de l'espace réservé 1 à la colonne du dictionnaire « Champs 1 », et une autre jointure à droite de la colonne de l'espace réservé « Champs » à la colonne du dictionnaire « Champs 2 » du dictionnaire.

Les résultats de chaque étape de jointure sont présentés sur les images ci-dessous :

Le champ « Champs 1 » est supprimé de chaque étape de jointure, car il ne sera plus utilisé par la suite.

  • Nous pouvons maintenant réunir la jointure 1 et la jointure 2 en utilisant une jointure interne dans les colonnes « Champs » et « Numéro de ligne ». Les deux champs sont nécessaires dans la clause de jointure afin d'établir une relation biunivoque.
  • Dans une nouvelle étape de nettoyage, nous supprimons les colonnes dupliquées pour « Champs », « Numéro de ligne » et « Valeurs ». Nous conservons toutefois les colonnes dupliquées pour les « Champs 2 ». L'image ci-dessous montre le tableau dont nous disposons actuellement.

Dans la même étape, nous créons un champ calculé qui attribuera les noms comme indiqué ci-dessous.

  • Maintenant, nous ne conservons que les colonnes « Noms », « Valeurs » et « Numéro de ligne » et ajoutons une colonne pivotante à l'étape des lignes exactement comme lors de la dernière étape de la deuxième méthode.

Derniers mots

Renommons le fichier « _data_2.xls » en « data_2.xls » et actualisons le flux. Ce que nous obtenons en sortie de chacune des méthodes décrites précédemment est le tableau ci-dessous. Les champs des deux fichiers de données sont correctement fusionnés selon la convention « data_2.xls », ce qui prouve que cette méthode fonctionne également lorsque deux sources de données sont utilisées avec deux conventions de dénomination différentes.

Grâce à cette solution simple, vous pouvez gérer de manière fluide les situations dans lesquelles votre source de données comporte différents schémas de dénomination sans avoir à vous soucier de celui qui est utilisé. Les exemples utilisent deux conventions de dénomination, mais cette solution fonctionne avec d'autres.

By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.