Partager via


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.

fonctions filterALL fonctionFILTER fonction