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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 17 September 2018 11:12

V.LEONARD38
Participant occasionnel
Date d'inscription: 18 Jan 2016
Messages: 18

QGIS: Réduire le nombre de caractère d'une colonne

Bonjour à tous,

ma demande est simple et je croyais m'en sortir avec les commandes Right ou Left des chaines de caractères de la calculatrice de champs, mais je me rend compte que ces commandes ne peuvent pas résoudre simplement ce problème.

J'ai une colonne où se trouve un code qui ressemble à ça :

54006-12
54006-28
54213-5
54213-360
54213-16
54122-2
54122-4236

Il faut que je récupère uniquement la partie du code à droite du tiret (12, 28, 5...) pour la mettre dans une autre colonne (actuellement vide).
Je pensais m'en sortir avec la commande 'Right' des chaines de caractères qui permet de ne conserver que la partie à droite d'une expression.

Si cette manipulation est possible, elle ne peut se faire que valeur unique par valeur unique, et non pas sur toute la colonne d'un coup...ce qui est parfaitement inutile puisque j'ai plusieurs centaines de valeurs uniques, autant tout retaper à la main.

Connaissez-vous un autre moyen pour supprimer la partie de gauche du code ou ne conserver que la partie de droite  ?

En vous remerciant,

Valentin

Dernière modification par V.LEONARD38 (Mon 17 September 2018 11:13)

Hors ligne

 

#2 Mon 17 September 2018 11:20

Kili555
Participant actif
Date d'inscription: 12 Feb 2018
Messages: 50

Re: QGIS: Réduire le nombre de caractère d'une colonne

La commande substr de la calculatrice de champs irait bien je pense

Hors ligne

 

#3 Mon 17 September 2018 11:47

V.LEONARD38
Participant occasionnel
Date d'inscription: 18 Jan 2016
Messages: 18

Re: QGIS: Réduire le nombre de caractère d'une colonne

Merci Kili555,

je n'ai pas essayé cet outil, il me semble qu'il fonctionne également par valeur unique et non pas sur un ensemble de valeurs différentes.

Si j'utilise cette commande, il faudra faire :


substr('54006-12',0,6) → '12'

et répéter cette action pour chaque valeur différente :


substr('54006-28',0,6) → '28'

substr('54213-360',0,6) → '360'

ect...

Ou alors, il y a une méthode pour tout traiter d'un coup avec cette commande ?

Hors ligne

 

#4 Mon 17 September 2018 12:17

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: QGIS: Réduire le nombre de caractère d'une colonne

Si la partie de gauche est toujours sur 5 caractères, alors le calcul suivant suffit :

Code:

right("code",length("code")-6)

longueur du code, moins longueur de la partie fixe + 1 pour le tiret
exemple pour 54213-360
longueur 9
- (5 + 1)
= 3
--> right('54213-360', 3) renvoie bien 360

Si la partie de gauche a une longueur variable, il faut en plus se servir de strpos() pour connaitre la position du tiret :

Code:

right("code",length("code")-strpos("code", '-'))

le strpos() va renvoyer un entier qui donne la position du tiret dans la chaine
sur l'exemple avec 54213-360 il renverra 6
on retombe donc bien sur le 9 - 6 = 3 et
--> right('54213-360', 3) renvoie bien 360

Hors ligne

 

#5 Mon 17 September 2018 12:22

loic58471
Participant occasionnel
Date d'inscription: 29 Sep 2017
Messages: 38

Re: QGIS: Réduire le nombre de caractère d'une colonne

Bonjour,
non cet outil s'applique comme tous les autres sur la table entière si tant est que l'option "ne mettre à jour que les n entités sélectionnées" soit décochées.
Et lisez bien la notice de la fonction, vos paramètres seront
- le nom de votre colonne entre guillemet (et non une entrée particulière comme dans votre exemple)
- l'indice du caractère de début d'extraction sachant que le premier caractère a l'indice 1; dans votre cas ce sera donc 7 si le premier nombre à gauche a toujours la même longueur (6 chiffres plus le tiret)
- le nombre de caractère à extraire, ici "qui peut le plus peut le moins"mettez donc au plus grand, 10 ou 100 devrait convenir

Hors ligne

 

#6 Mon 17 September 2018 15:56

V.LEONARD38
Participant occasionnel
Date d'inscription: 18 Jan 2016
Messages: 18

Re: QGIS: Réduire le nombre de caractère d'une colonne

Sympa l'astuce, p.jeremie, je pense que strpos est une commande qui va bien me servir.
Problème résolu du coup. Merci pour vos réponses.

Hors ligne

 

Pied de page des forums

Powered by FluxBB