ColumnNo() renvoie le numéro de la colonne active dans le segment de ligne actif d'un tableau croisé dynamique. La première colonne porte le nombre 1.
ColumnNo([total])
Arguments
Argument
Description
TOTAL
Si la table est unidimensionnelle ou si le qualificateur TOTAL est utilisé comme argument, le segment de colonne actif est toujours égal à la colonne entière.
Si le tableau croisé dynamique comporte plusieurs dimensions horizontales, le segment de ligne actif inclura uniquement les colonnes contenant les mêmes valeurs que la colonne active dans toutes les lignes de dimension, à l'exception de la ligne affichant la dernière dimension horizontale dans l'ordre de tri inter-champs. L'ordre de tri inter-champs pour les dimensions horizontales des tableaux croisés dynamiques est simplement défini par l'ordre des dimensions de haut en bas..
Note InformationsLe tri sur les valeurs des ordonnées dans les graphiques ou le tri par colonnes d'expressions dans les tableaux n'est pas autorisé lors de l'utilisation de cette fonction de graphique dans l'une des expressions du graphique. Ces options de tri sont donc automatiquement désactivées. Lorsque vous utilisez cette fonction de graphique dans une visualisation ou un tableau, le tri de la visualisation revient à l'entrée triée via cette fonction.
Lorsque ColumnNo est égal à 1, le graphique renvoie zéro. Dans le cas contraire, il renvoie le résultat de Sum(Sales) / Before(Sum(Sales). Dans cet exemple, le graphique renverra des valeurs à partir de la colonne 2, tandis que la colonne 1 renverra zéro.
Exemple - Les bases de ColumnNo
Vue d'ensemble
Un jeu de données contient des données de ventes trimestrielles. Cet exemple multiplie la valeur des ventes de chaque période par le numéro de colonne de la période.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Jeu de données chargé dans une table de données appelée Example.
Chargez les données et ouvrez une feuille. Créez un tableau croisé dynamique et ajoutez ce champ comme dimension de colonne :
Period
Créez la mesure suivante :
=Sum(Sales) * ColumnNo(), pour calculer la somme des valeurs des ventes multipliée par le numéro de colonne, qui est le trimestre dans cet exemple.
Tableau de résultats
Q1
Q2
Q3
Q4
1000
4000
9000
16000
La somme de la valeur des ventes de chaque trimestre est multipliée par le résultat de la fonction ColumnNo. Par exemple, la valeur des ventes à Q4 est de 4000, et la sortie de la fonction ColumnNo renvoie 4, car Q4 est la quatrième colonne. Par conséquent, l'expression de la mesure multiplie 4000 par 4 et renvoie 16000.
Exemple - Scénario ColumnNo
Vue d'ensemble
Un jeu de données contient des chiffres de ventes trimestrielles. Une entreprise souhaite augmenter de 5 % les données de Q1 et de Q3 (les colonnes impaires) et de 10 % celles des colonnes restantes (Q2 et Q4).
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Jeu de données chargé dans une table de données appelée Example.
Chargez les données et ouvrez une feuille. Créez un tableau croisé dynamique et ajoutez ce champ comme dimension de colonne :
Period
Créez les mesures suivantes :
=Sum(Sales), pour calculer la somme des ventes.
=If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10), pour augmenter les montants des ventes de 5 % pour les colonnes impaires et de 10 % pour les autres colonnes.
Tableau de résultats
Q1
Q2
Q3
Q4
Sum(Sales)
If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)
Sum(Sales)
If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)
Sum(Sales)
If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)
Sum(Sales)
If(Odd(ColumnNo()), Amount * 1.05, Amount * 1.10)
1000
1050
2000
2200
3000
3150
4000
4400
Les résultats montrent que les valeurs des ventes des colonnes impaires, 1 et 3 (Q1 et Q3), ont augmenté de 5 %, tandis que les colonnes paires restantes, 2 et 4 (Q2 et Q4), ont augmenté de 10 %.
Exemple - Scénario ColumnNo avancé
Vue d'ensemble
Cet exemple utilise le même jeu de données que le scénario précédent pour présenter le total cumulé des valeurs de chaque période.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Jeu de données chargé dans une table de données appelée Example.
Chargez les données et ouvrez une feuille. Créez un tableau croisé dynamique et ajoutez ce champ comme dimension de colonne :
Period
Créez la mesure suivante :
=RangeSum(Before(Sum(Sales), 0, ColumnNo())), pour calculer le total cumulé.
Tableau de résultats
Q1
Q2
Q3
Q4
1000
3000
6000
10000
Cet exemple montre comment utiliser la fonction ColumnNo pour générer un total cumulé. L'explication suivante fournit plus de détails sur l'expression de la mesure : RangeSum(Before(Sum(Sales), 0, ColumnNo())).
Sum(Sales) : calcule la somme des ventes pour la cellule active du tableau croisé dynamique.
Before(Sum(Sales), 0, ColumnNo()) : la fonction Before récupère les valeurs des colonnes précédentes du tableau croisé dynamique.
L'argument Sum(Sales) garantit que la fonction récupère la somme de Sales pour les cellules précédentes.
La valeur de décalage de 0 spécifie le décalage de la colonne (restant dans le segment de ligne actif de la colonne active).
ColumnNo() détermine de combien de colonnes il faut revenir en arrière pour récupérer des données. Cette fonction représente dynamiquement la position de la colonne active (par exemple, pour la colonne 3, ColumnNo() est égal à 3, de sorte que la fonction revient en arrière de trois colonnes).
RangeSum() : la fonction RangeSum calcule la somme de la plage de valeurs fournies. Cette fonction traite les valeurs nulles comme des zéros. Dans cette expression, RangeSum génère effectivement un total cumulé en additionnant toutes les valeurs Sales précédentes récupérées par la fonction Before(), ainsi que les ventes de la cellule active.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !