Power Pivot DAX - Recherche chaine de Charactères

Vinceairline

XLDnaute Nouveau
Bonjour
Je cherche une formule DAX me permettant de filtrer une chaine de caractère, je m'explique :
Dans le tableau ci dessous, je voudrais faire la somme de toutes les valeur en Colonne2 comportant les critères "APO257" et le critère comprenant les caractères "04-03-26"
Cellule F2 = APO257
Cellule E2 = 04-03-26
Colonne3Colonne1Colonne2
APO25504-03-26-100
1​
APO25604-03-26-101
1​
APO25704-03-28-250
12​
APO25704-03-26-201
10
APO25704-03-26-2563
1
APO25504-03-26
1​
APO25704-03-26
12
APO25704-03-33
1​
APO25804-03-34
5​
APO25904-03-35
1​
APO26004-03-36
6​
APO26104-03-37
1​

En formule excel je ferais : =SOMME.SI.ENS(Tableau1[Colonne2];Tableau1[Colonne3];F2;Tableau1[Colonne1];"*"&E2&"*")
Le résultat doit etre : 10+1+12 = 23

Je ne trouve pas l'équivalence "*"& &"*" en DAX
Pour l'instant j'ai :
=CALCULATE(SUM(TABLE[Colonne2] ), TABLE[Colinne3]=”APO257”, TABLE[Colinne1]=”06-01-01”)
Je ne sais pas comment écrire le filtre en gras afin qu'il ne me cherche qu'une partie des caractères

Quelqu'un peut m'aider ?

Merci,
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Pour du DAX vous avez la fonction
CONTAINSSTRING (non testée)
Ou pour toute une table :
CONTAINS (non testée)

Pour Power Query la fonction Text.Contains
Coridialement
 

merinos

XLDnaute Accro
Salut @Vinceairline ,

Tu peux toujour créer une colonne supplementaire... en powerquery ou en dax...

Et alors c'est un filtre simple
1642587362592.png
 

Pièces jointes

  • filtre DAX text.xlsx
    130 KB · Affichages: 2
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Après tests, ceci fonctionne :
=CALCULATE(Sum('TABLE'[Colonne2]);'TABLE'[Colonne3]="APO257";SUBSTITUTE('TABLE'[Colonne1];"04-03-26";"";1)<>'TABLE'[Colonne1])
Explications : si après tentative de substitution de la chaîne cherchée par rien, la valeur est différente alors c'est que la chaîne cherchée est contenue dans la valeur.

Ceci fonctionne également :
CALCULATE(Sum('TABLE'[Colonne2]);'TABLE'[Colonne3]="APO257";SEARCH("04-03-26";'TABLE'[Colonne1];1;-1)<>-1)

Ou (uniquement chaîne positionnée à gauche)
CALCULATE(Sum('TABLE'[Colonne2]);'TABLE'[Colonne3]="APO257";LEFT('TABLE'[Colonne1];8)="04-03-26")

Cordialement
 
Dernière édition:

Discussions similaires