2017-10-10 4 views
0

J'ai la suivante PowerBI DAX Measure. Il doit être complexe pour plusieurs raisons en raison de la structure des données. La mesure fonctionne bien, et elle me renvoie le nombre de contrats actifs pour chaque client. Cela affiche bien sur une grille visuelle et donne un total de tous les contrats actifs pour tous les clients.PowerBI DAX - Calculer, CountRows, RelatedTable, obtenir le TOP 1

ActiveContracts = CALCULATE(COUNTROWS(RELATEDTABLE(Contracts)), 
FILTER(Contracts, 
     (
     Contracts[StartDate] >= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
     Contracts[StartDate] <= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) 
     )  
     || 
     (
     Contracts[End Date] >= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
     Contracts[End Date] <= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) 
     ) 
     || 
     (
     Contracts[StartDate] <= CALCULATE(MIN(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) && 
     Contracts[End Date] >= CALCULATE(MAX(DateRange[Date]), ALLEXCEPT(DateRange, DateRange[Date])) 
     ) 
    )  
) 

Cependant, je ne ai besoin le premier résultat, ou encore plus simplement, le fait qu'il ya un résultat (à savoir un contrat actif pour un client).

J'ai essayé un certain nombre de choses et le plus proche que je peux obtenir est une autre mesure au-dessus de celle ci-dessus:

HasContract = CALCULATE(IF(ISBLANK([CCActiveContract]), 0, 1)) 

Cela fonctionne alors au niveau de la ligne, mais quand je total de la colonne avec ce nouvelle mesure, il donne un total de 1, alors que je veux un compte de tous les clients avec un contrat actif?

Qu'est-ce qui me manque?

Merci

Répondre

1

par Tom Martens Solved plus sur le forum PowerBI (link) en utilisant:

ContractPerCustomer = SUMX(Customer, IF([ActiveContracts] > 0, 1, 0))