ALLNOBLANKROW
s’applique à :colonne calculéetable calculéemesurecalcul visuel
À partir de la table parente d’une relation, retourne toutes les lignes, mais la ligne vide, ou toutes les valeurs distinctes d’une colonne, mais la ligne vide, et ignore tous les filtres de contexte qui peuvent exister.
Syntaxe
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
Paramètres
Terme | Définition |
---|---|
table |
Table sur laquelle tous les filtres de contexte sont supprimés. |
column |
Colonne sur laquelle tous les filtres de contexte sont supprimés. |
Un seul paramètre doit être passé ; le paramètre est une table ou une colonne.
Valeur de retour
Une table, lorsque le paramètre passé était une table ou une colonne de valeurs, lorsque le paramètre passé était une colonne.
Remarques
La fonction ALLNOBLANKROW filtre uniquement la ligne vide qu’une table parente, dans une relation, affiche lorsqu’il y a une ou plusieurs lignes dans la table enfant qui ont des valeurs non correspondantes à la colonne parente. Consultez l’exemple ci-dessous pour obtenir une explication approfondie.
Le tableau suivant résume les variations de
ALL
fournies dans DAXet leurs différences :Fonction et utilisation Description ALL(Column)
Supprime tous les filtres de la colonne spécifiée dans la table ; tous les autres filtres de la table, sur d’autres colonnes, s’appliquent toujours. ALL(Table)
Supprime tous les filtres de la table spécifiée. ALLEXCEPT(Table,Col1,Col2...)
Remplace tous les filtres de contexte dans la table, à l’exception des colonnes spécifiées. ALLNOBLANK(table|column)
À partir de la table parente d’une relation, retourne toutes les lignes, mais la ligne vide, ou toutes les valeurs distinctes d’une colonne, mais la ligne vide, et ignore tous les filtres de contexte qui peuvent exister Pour obtenir une description générale du fonctionnement de la fonction ALL, ainsi que des exemples pas à pas qui utilisent ALL(Table) et ALL(Colonne), consultez ALL fonction.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les règles de sécurité au niveau des lignes (RLS).
Exemple
Dans les exemples de données, la table ResellerSales_USD contient une ligne qui n’a aucune valeur et ne peut donc pas être liée à l’une des tables parentes dans les relations dans le classeur. Vous allez utiliser cette table dans un tableau croisé dynamique afin de voir le comportement de ligne vide et comment gérer le nombre de données non liées.
Étape 1 : Vérifier les données non liées
Ouvrez la fenêtre Power Pivot, puis sélectionnez la table ResellerSales_USD. Dans la colonne ProductKey, filtrez les valeurs vides. Une ligne restera. Dans cette ligne, toutes les valeurs de colonne doivent être vides, à l’exception de SalesOrderLineNumber.
Étape 2 : Créer un tableau croisé dynamique
Créez un tableau croisé dynamique, puis faites glisser la colonne, datetime. [Année civile], dans le volet Étiquettes de ligne. Le tableau suivant présente les résultats attendus :
Étiquettes de ligne |
---|
2005 |
2006 |
2007 |
2008 |
Total général |
Notez l’étiquette vide entre 2008 et Grand Total. Cette étiquette vide représente le membre Inconnu, qui est un groupe spécial créé pour tenir compte de toutes les valeurs de la table enfant qui n’ont aucune valeur correspondante dans la table parente, dans cet exemple, la datetime. Colonne [Année civile].
Lorsque vous voyez cette étiquette vide dans le tableau croisé dynamique, vous savez que dans certaines des tables associées à la colonne, datetime. [Année civile], il existe des valeurs vides ou des valeurs non correspondantes. La table parente est celle qui affiche l’étiquette vide, mais les lignes qui ne correspondent pas se trouvent dans une ou plusieurs des tables enfants.
Les lignes qui sont ajoutées à ce groupe d’étiquettes vides sont soit des valeurs qui ne correspondent à aucune valeur dans la table parente, par exemple une date qui n’existe pas dans la table datetime ou les valeurs Null, ce qui signifie qu’aucune valeur pour la date du tout. Dans cet exemple, nous avons placé une valeur vide dans toutes les colonnes de la table de ventes enfants. Le fait d’avoir plus de valeurs dans la table parente que dans les tables enfants n’entraîne pas de problème.
Étape 3 : Compter les lignes à l’aide de ALL et ALLNOBLANK
Ajoutez les deux mesures suivantes à la table datetime, pour compter les lignes de la table : Countrows ALLNOBLANK de datetime, Countrows ALL de datetime. Les formules que vous pouvez utiliser pour définir ces mesures sont les suivantes :
// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))
// Countrows ALL of datetime
= COUNTROWS(ALL('DateTime'))
// Countrows ALLNOBLANKROW of ResellerSales_USD
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))
// Countrows ALL of ResellerSales_USD
= COUNTROWS(ALL('ResellerSales_USD'))
Sur un tableau croisé dynamique vide, ajoutez datetime. Colonne [Année civile] aux étiquettes de ligne, puis ajoutez les mesures nouvellement créées. Les résultats doivent ressembler au tableau suivant :
Étiquettes de ligne | Countrows ALLNOBLANK de datetime | Countrows ALL de datetime |
---|---|---|
2005 | 1280 | 1281 |
2006 | 1280 | 1281 |
2007 | 1280 | 1281 |
2008 | 1280 | 1281 |
1280 | 1281 | |
Total général | 1280 | 1281 |
Les résultats indiquent une différence de 1 ligne dans le nombre de lignes de la table. Toutefois, si vous ouvrez la fenêtre Power Pivot et sélectionnez la table datetime, vous ne trouverez aucune ligne vide dans la table, car la ligne vide spéciale mentionnée ici est le membre Inconnu.
Étape 4 : Vérifier que le nombre est exact
Pour prouver que l'ALLNOBLANKROW ne compte aucune ligne réellement vide et gère uniquement la ligne vide spéciale sur la table parente uniquement, ajoutez les deux mesures suivantes à la table ResellerSales_USD : Countrows ALLNOBLANKROW de ResellerSales_USD, Countrows ALL de ResellerSales_USD.
Créez un tableau croisé dynamique et faites glisser la colonne, datetime. [Année civile], dans le volet Étiquettes de ligne. Ajoutez maintenant les mesures que vous venez de créer. Les résultats doivent ressembler à ce qui suit :
Étiquettes de ligne | Countrows ALLNOBLANKROW de ResellerSales_USD | Countrows ALL de ResellerSales_USD |
---|---|---|
2005 | 60856 | 60856 |
2006 | 60856 | 60856 |
2007 | 60856 | 60856 |
2008 | 60856 | 60856 |
60856 | 60856 | |
Total général | 60856 | 60856 |
Maintenant, les deux mesures ont les mêmes résultats. Cela est dû au fait que la fonction ALLNOBLANKROW ne compte pas réellement les lignes vides d’une table, mais gère uniquement la ligne vide qui est un cas spécial généré dans une table parente, lorsqu’une ou plusieurs des tables enfants de la relation contiennent des valeurs non correspondantes ou des valeurs vides.