Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

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 …

Faire un don 

Retrouver nos membres bienfaiteurs

#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,

Ilyas a écrit:

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

 

Pied de page des forums

Powered by FluxBB