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 Mon 08 June 2020 03:13

Ilyass
Juste Inscrit !
Date d'inscription: 7 Jun 2020
Messages: 9

QGIS: Calculatrice de champ: fonction left et right

Bonjour,

J'ai un champ numero qui contient les valeurs :
Exmple :
123456-321654
123-321
1234-4321
159-32

J'ai crée deux nouveau champs pour récupérer les valeurs comme suit.
Champ_gauche : 123456, 123, 1234, 159
Champ_droite : 321654, 321, 4321, 32

J'ai utilisé le code suivant pour les valeurs à gauche:
if("numero"  '' AND "numero" 0, to_string(left("numero", strpos("numero", '-')-1)),’999’)
Le résultat est bon

Pour récupérer les valeurs à droite, j'ai utilisé:
if("numero"  '' AND "numero" 0, to_string(right("numero", strpos("numero", '-')-1)),’999’)
Le résultat parfois est bon parfois il me récupère le tiret -123, ou bien des fois 9-32

Je sais pas comment résoudre le problème

Merci !

Hors ligne

 

#2 Mon 08 June 2020 11:25

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1110

Re: QGIS: Calculatrice de champ: fonction left et right

Bonjour,

Dans votre cas, j'aurais utilisé les fonctions ARRAY. String_to_array permet de scinder les informations contenues dans votre cellule en plusieurs "colonnes" en fonction d'un séparateur '-' ; array_get permet de récupérer l'information d'une des colonnes. Ici, il faudra saisir 0 pour récupérer les valeurs à gauche du '-' et il faudra saisir '1' pour récupérer les valeurs à droite du '-' :

Pour récupérer les valeurs à gauche du premier tiret : array_get(string_to_array("NUMERO",'-'),0)
Pour récupérer les valeurs à droite du premier tiret : array_get(string_to_array("NUMERO",'-'),1)

SANTANNA qui va certainement passer par là l'aurait mieux expliquer que moi ! Mais, ça devrait tout de même faire l'affaire.

Au plaisir,

Hors ligne

 

#3 Mon 08 June 2020 12:09

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3948

Re: QGIS: Calculatrice de champ: fonction left et right

Bonjour,
Je passe, pour ne pas te faire mentir, GlaDal. big_smile Autrement j'avais répondu sur son autre commentaire, et ta formule ici est beaucoup plus clean que ma proposition (faut vraiment que je prenne le réflexe array, moi!!!). Pour l'explication, rien à ajouter, si ce n'est de voir dans QGIS l'aide et les exemples des fonctions suggérées ici pour mieux s'imprégner de leur utilisation.

Hors ligne

 

#4 Mon 08 June 2020 13:03

Ilyass
Juste Inscrit !
Date d'inscription: 7 Jun 2020
Messages: 9

Re: QGIS: Calculatrice de champ: fonction left et right

J'ai essayé la même chose mais en utilisant length et strpos 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