Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Retourne TRUE lorsque le contexte de columnName a été filtré sur une seule valeur distincte. Sinon, il a la valeur FALSE.
Syntaxe
HASONEVALUE(<columnName>)
Paramètres
- columnName
Nom d'une colonne existante, dans la syntaxe DAX standard. Il ne peut pas s'agir d'une expression.
Valeur de retour
TRUE lorsque le contexte de columnName a été filtré sur une seule valeur distincte. Sinon, il a la valeur FALSE.
Notes
- COUNTROWS(VALUES(<columnName>)) = 1 est une expression équivalente pour HASONEVALUE().
Exemple
Dans l'exemple suivant, vous voulez créer une formule qui vérifie si le contexte est segmenté en fonction d'une valeur, afin d'estimer un pourcentage par rapport à un scénario prédéfini ; dans le cas présent, vous voulez comparer les ventes du revendeur aux ventes de 2007, puis vous devez déterminer si le contexte est filtré en fonction d'années uniques. En outre, si la comparaison n'est pas significative, vous voulez retourner la valeur BLANK.
Si vous voulez suivre le scénario, vous pouvez télécharger la feuille de calcul et le modèle à partir de la feuille de calcul des exemples de données PowerPivot.
Créez une mesure nommée [ResellerSales compared to 2007] à l'aide de l'expression suivante :
=IF(HASONEVALUE(DateTime[CalendarYear]),SUM(ResellerSales_USD[SalesAmount_USD])/CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]),DateTime[CalendarYear]=2007),BLANK())
Après avoir créé la mesure, vous devez obtenir un résultat vide sous [ResellerSales compared to 2007], comme indiqué ci-dessous :
ResellerSales compared to 2007
La cellule BLANK du résultat est due au fait que vous n'avez pas de filtres d'année unique dans votre contexte.
Faites glisser DateTime[CalendarYear] vers la zone Étiquettes de colonne ; votre table doit ressembler à ceci :
Étiquettes de colonne
2005
2006
2007
2008
ResellerSales compared to 2007
24.83 %
74.88 %
100.00 %
50.73 %
Faites glisser ProductCategory[ProductCategoryName] vers la zone Étiquettes de ligne pour obtenir quelque chose qui ressemble à ceci :
ResellerSales compared to 2007
Étiquettes de colonne
Étiquettes de ligne
2005
2006
2007
2008
Accessories
6.74 %
31.40 %
100.00 %
55.58 %
Bikes
28.69 %
77.92 %
100.00 %
53.46 %
Clothing
3.90 %
55.86 %
100.00 %
44.92 %
Components
11.05 %
65.99 %
100.00 %
38.65 %
Total général
24.83 %
74.88 %
100.00 %
50.73 %
Avez-vous remarqué que Total général s'est affiché au bas des colonnes mais pas des lignes ? Cela est dû au fait que le contexte de Total générals pour les lignes implique plusieurs années ; en revanche, pour les colonnes, il n'implique qu'une seule année.
Faites glisser DateTime[CalendarYear] vers la zone Segments horizontaux et faites glisser SalesTerritory[SalesTerritoryGroup] vers la zone Étiquettes horizontales. Vous devez avoir un jeu de résultats vide, car votre table contient des données pour plusieurs années. Sélectionnez 2006 dans le segment, et votre table doit maintenant avoir à nouveau des données. Essayez d'autres années pour voir comment cela affecte les résultats.
En résumé, HASONEVALUE() vous permet de déterminer si votre expression est évaluée dans le contexte d'une valeur unique pour columnName.