Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Nouvel utilisateur de QV. En test pour le moment.
Premier Post sur le forum 🙂
J'ai 2 tableaux XLS contenant exactement les mêmes champs (1 pour l'année en cours, l'autre pour l'année N-1)
J'ai un champ "Gravity" qui contient :
- soit un nombre (de 1 à 5)
- soit un texte :
1 Critical
2 High
...
Ce que je cherche à faire :
Créer une fonction sur le champ "Gravity"
Qui ne reprendrait que le 1er caractère de ce champ (qu'il soit alpha ou numérique)
Ainsi, j'aurais tous le temps un seul caractère sur ce champ ... (idéalement, j'aimerais qu'il soit numérique.
Merci par avance,
Virtuellement
Alexander
Bonjour Alexander
Bienvenue dans la communauté !
Alors il suffit que tu utilises la fonction left(string, nombre de caractères) as LeNomDeMonChamp pour arriver à recuperer les "n" premiers caractères
Soit dans votre cas
LOAD
.....
left(Gravity, 1) as GravityNb
....
FROM .....
QV reconnait les nombres (surtout si ils sont sans format particulier)... Donc pas besoin de transformer le champ en nombre
Cdt
Bonjour,
Merci bcp.
C'est parfait ...
Je peux donc continuer mes tests 😉
Virtuellement,
Alexander
Bonjour Ben,
Avant d'ouvrir une nouvelle discussion, j'aurais souhaité savoir si tu avais une piste pour mon problème (du même ordre que celui d'Alexander) :
j'ai :
10
1110000000
12000
je voudrais :
100000
111000
120000
merci d'avance!
Maxime
Bonjour Maxime,
if(
len (champ >=6 ,
left(champ, 6),
num(champ & repeat( '0', 6 - len(champ) ) )
)
christian
Puis-je insérer cette condition directement dans mon script?
Oui par exemple
LOAD
champ1,
champ2,
if(
len (champ >=6 ,
left(champ, 6),
num(champ & repeat( '0', 6 - len(champ) ) )
),
champ3,
...
from table
La page d'aide de QlikView donne beaucoup d'infos sur les fonctions chaines de caractères
christian
sinon
left(Champ1 & '000000',6) as Champ3
marchera aussi
Simple et efficace. Merci à vous deux!
Un autre extraction de SI me renvoie :
41 Clients...
101300 Capital...
145000 Amortissement...
Total...
(Ces cellules étant concaténées)
Je ne voudrais que les comptes à 6 chiffres.
101300
145000
j'ai tenté : if ( left (champ1, 6)>99999, champ1) mais ceci n'est pas opérant.
Sauriez-vous comment isoler les chiffres?
D'avance merci.