Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Quelqu'un pourrait il m'aider ? Set analysis qui ramène une chaîne de caractère

Bonjour à la communauté,

Je me suis basé sur les set suivants qui ramènent respectivement   pour le premier le nom du fonds le plus rentable et pour le second le fond le moins rentable.

=Minstring({< Asset_USD = {$(=Num(Max({<[Asset Class] = {'Equity'}>} Asset_USD)))} >} [Account Name])

=Minstring({< Asset_USD = {$(=Num(Min({<[Asset Class] = {'Equity'}>} Asset_USD)))} >} [Account Name])

Je tiens ces formules d'une démo mis sur le site de Qlikview.

Au passage peu importe que le Minstring soit remplacé par Only ou MaxString les formules renvoient toujours le même résultat.

Pour revenir à mon sujet, je dispose des informations suivantes:

  1. DivisionName: Europe, Afrique, Amérique, Asie
  2. CompanyName: 100 Company
  3. Marge : j'ai une marge par produit

Dans un objet text, J'ai voulu me baser sur ces formules pour déterminer pour Chaque DivisionName('Europe'...), la CompanyName qui a fait le plus de marge ainsi que celle qui fait le moins de marge.

=Only({< Marge = {$(=Num(Max({< DivisionName  = {' Europe'}>} Marge)))} >} CompanyName)

=Only({< Marge = {$(=Num(Min({< DivisionName  = {' Europe'}>} Marge)))} >} CompanyName)

Mon résultat est faux peu importe que j'utilise Only, MaxString ou Minstring.

Quelqu'un pourrais t'il m'aider?

1 Solution

Accepted Solutions
christophebrault
Specialist
Specialist

Bonjour,

Si tu as une marge par produit et que tu fais un tableau avec la dimension DivisionName, only ne marche pas car tu dois faire la somme des marges pour chaque company, et ramener la meilleure.

Pour ma part j'utilise :

=FirstSortedValue(CompanyName,aggr(rank(-sum(Marge)),DivisionName,CompanyName),1)

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin

View solution in original post

3 Replies
christophebrault
Specialist
Specialist

Bonjour,

Si tu as une marge par produit et que tu fais un tableau avec la dimension DivisionName, only ne marche pas car tu dois faire la somme des marges pour chaque company, et ramener la meilleure.

Pour ma part j'utilise :

=FirstSortedValue(CompanyName,aggr(rank(-sum(Marge)),DivisionName,CompanyName),1)

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
Not applicable
Author

Merci Christophe pour  ton aide ô combien précieuse!

Entreprise la moins rentable

=FirstSortedValue(CompanyName,aggr(rank(-sum(Marge)),DivisionName,CompanyName),1)

Entreprise la plus rentable

=FirstSortedValue(CompanyName,aggr(rank(+sum(Marge)),DivisionName,CompanyName),1)


Dans un Objet Text ça donne ceci :

Entreprise la plus rentable

=FirstSortedValue(  Client.CompanyName  ,aggr(  rank(  +sum( {$<Client.DivisionName = {'Europe'}>} Marge)  )

  ,Client.CompanyName  )  ,1)

Le 1 concerne la première entreprise qui dégage le plus de marge , pour la seconde et la troisième il faut juste remplacer le 1 par 2 et 3 ainsi de suite.

Cordialement

christophebrault
Specialist
Specialist

Ok parfait.

et si tu veux la marge de la meilleure companyseulement :

sum({$<CompanyName=$(=FirstSortedValue(CompanyName,aggr(rank(+sum(Marge)),DivisionName,CompanyName),1)>}Marge)

Cela ne marche que si CompanyName ne contient pas d'espace. Si c'est le cas, utilise le code de CompanyName à la place

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin