Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
Pages: 1
- Sujet précédent - QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule - Sujet suivant
#1 Tue 02 June 2020 12:39
- cbrun
- Juste Inscrit !
- Date d'inscription: 7 Oct 2019
- Messages: 6
QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule
Bonjour,
Je souhaiterais isoler les valeurs qui se trouvent à gauche de ma virgule.
Dans l'exemple :
Valeur initiale : 3, Avenue des Fleurs -> Valeur attendue : 3
Je réussis à faire cette opération sous Excel (avec les fonctions Gauche et Cherche) mais n'y parviens pas sous QGIS avec la calculatrice de champs...
Cette manipulation est-elle possible?
Vous remerciant par avance pour votre accompagnement,
Bien cordialement à vous,
Hors ligne
#2 Tue 02 June 2020 14:24
- Njoy
- Participant actif
- Lieu: Lyon
- Date d'inscription: 29 Nov 2018
- Messages: 89
Re: QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule
Bonjour,
Ou souhaites tu effectuer cette opération ? En calculatrice de champ ? En plugin python?
En calculatrice de champ, quelque chose comme ça
left( "nom_du_champ", strpos( "nom_du_champ" ,','))`
Hors ligne
#3 Tue 02 June 2020 14:51
- cbrun
- Juste Inscrit !
- Date d'inscription: 7 Oct 2019
- Messages: 6
Re: QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule
Bonjour,
Grand merci pour votre retour qui fonctionne à merveilles.
En complétant votre instruction ( left("nom_du_champ", strpos ("nom_du_champ",',')-1) ), j'obtiens bien toutes les valeurs avant la virgule (et sans la virgule).
Grand merci pour votre aide qui va me faire gagner un temps certain. Bien cordialement à vous,
Hors ligne
#4 Tue 02 June 2020 14:58
- Njoy
- Participant actif
- Lieu: Lyon
- Date d'inscription: 29 Nov 2018
- Messages: 89
Re: QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule
Avec plaisir, merci pour le complément
Hors ligne
#5 Mon 08 June 2020 03:14
- Ilyass
- Juste Inscrit !
- Date d'inscription: 7 Jun 2020
- Messages: 9
Re: QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule
Comment on fait si on voudrait récupérer la valeur à droite mais sans virgule.
J'ai des valeurs comme ça :
123456-321654
123-6549
12-321654
654-987654
321654-98
if("numero" '' AND "numero" 0, to_string(right("numero", strpos("numero", '-')-1)),’999’)
J'ai essayé avec ça, parfois ça marche parfois non, il me renvoie -6549, 321654, ou encore 4-98 je ne vois pas pourquoi !
Hors ligne
#6 Mon 08 June 2020 11:59
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3948
Re: QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule
Bonjour,
if("numero" '' AND "numero" 0, to_string(right("numero", strpos("numero", '-')-1)),’999’)
Vous êtes certain que QGIS ne se plaint pas d'une mauvaise syntaxe (pour la partie conditionnelle)?
Cela dit, j'ai testé votre code sans la partie conditionnelle et je ne tombe pas sur les résultats que vous mentionnez. Modification de code entre-temps?
Une "bonne" manière de débugger les expressions soi-même est de les prendre petit bout par petit bout, de la fonction la plus simple (à l'intérieur) à la globale (avec lecture de l'aide de ladite fonction), càd:
1/ que renvoie strpos("numero", '-'): la place du caractère '-' dans le texte '321654-98' par ex, soit 7
2/ strpos("numero", '-')-1 ==> 7-1 ==> 6
3/ right("numero", strpos("numero", '-')-1) ==> right("numero", 6) ==> revient à demander les 6 caractères les plus à droite dans le texte, soit 654-98
4/ Le reste est de la conversion donc je passe vu que l'extraction retenue n'est pas bonne
Essayez donc avec right("numero", length("numero") - strpos("numero", '-')) car ce que vous voulez, ce sont les x caractères restants à partir du numéro occupé par '-', et donc on soustrait sa position du nombre total de caractères (qui est variable, donc on calcule)
Hors ligne
#7 Mon 08 June 2020 13:00
- Ilyass
- Juste Inscrit !
- Date d'inscription: 7 Jun 2020
- Messages: 9
Re: QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule
y'a pas de problème dans partie conditionnelle, j'ai essayé la même que vous aviez proposé et ça marche.
voici le code : if("numero" <>'' AND "numero" <> 0,right("numero", length("numero") - strpos("numero", '-')),999)
Merci à vous !
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Isoler les valeurs qui se trouvent a gauche d'une virgule - Sujet suivant