Objectif et prérequis

Préparez un modèle de budget Excel large pour le charger dans un modèle avec une dimension de période.

Cet exemple utilise des données et paramètres de démonstration. Validez le résultat attendu dans votre propre environnement avant de connecter des destinations de production. Les identifiants demo_* sont illustratifs : sélectionnez vos propres connexions ou sources pédagogiques dans l’éditeur. Le JSON ci-dessous présente la structure des blocs et connexions, pas une archive de flux prête à transférer.

Données d’entrée pédagogiques

ProduitJanFeb
Tea100120
Coffee8090

Blocs, connexions et paramètres exacts

Schéma explicatifAgrandir ↗02. Excel : passer les mois des colonnes aux lignes. Topologie de l’exemple 02 : 3 blocs, 2 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.
Schéma du flux 02

Topologie de l’exemple 02 : 3 blocs, 2 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.

Ajoutez les blocs listés dans le concepteur, ouvrez les propriétés de chacun et définissez ces valeurs. Les noms demo_* désignent les sources et connexions pédagogiques.

BlocParamètre
1
Fichier
src
  • Rôle: source
  • Source: demo_budget_xlsx
  • Paramètres de lecture:
    • Feuille: Budget
    • Plage: A1:C3
    • La première ligne contient les en-têtes: так
2
Dépivoter les colonnes
unpivot
  • Colonnes clés: Product
  • Colonne de période: Month
  • Colonne de valeur: Amount
3
Exportation de données
out
  • Format: xlsx
  • Nom du fichier: budget_long
  • Rôle: download
  • Séparateur: ;
  • Fuseau horaire: Europe/Kyiv

Connexions des ports

  • src out → unpivot in
  • unpivot out → out in
Configuration complète du graphe en JSON
{
  "version": 3,
  "nodes": [
    {
      "id": "src",
      "type": "file",
      "label": "src",
      "config": {
        "role": "source",
        "source_id": "demo_budget_xlsx",
        "options": {
          "sheet": "Budget",
          "range": "A1:C3",
          "header": true
        }
      }
    },
    {
      "id": "unpivot",
      "type": "unpivot",
      "label": "unpivot",
      "config": {
        "id_columns": [
          "Product"
        ],
        "period_column": "Month",
        "unpivot_value_column": "Amount"
      }
    },
    {
      "id": "out",
      "type": "export",
      "label": "out",
      "config": {
        "format": "xlsx",
        "filename": "budget_long",
        "destination": "download",
        "delimiter": ";",
        "timezone": "Europe/Kyiv"
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "unpivot",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "unpivot",
      "target": "out",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Résultat attendu

ProduitMonthAmount
TeaJan100
TeaFeb120
CoffeeJan80
CoffeeFeb90

La sortie contient 4 lignes ; le total d’Amount est 390. Chaque colonne sauf Product devient une valeur de Month.

Exécuter et vérifier

  1. Créez budget.xlsx avec une feuille Budget et le tableau illustré en A1:C3.
  2. Définissez Product comme seule colonne d’identification ; Month et Amount doivent être de nouveaux noms.
  3. Exécutez le flux et vérifiez budget_long.xlsx : 4 lignes et un total de 390.

Erreurs courantes

  • Si Jan est ajouté par erreur à id_columns, ce mois ne sera pas dépivoté.
  • Une colonne auxiliaire Comment devient également une période, sauf si elle est retirée avant le dépivotage.
  • Les noms Month/Amount doivent être différents entre eux et de Product.