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 Sat 17 February 2018 11:38

Fom willy
Juste Inscrit !
Date d'inscription: 20 Sep 2017
Messages: 5

QGIS: Incrementation ?

Bonjour☺.
Voilà, je travaille dans qgis et pour un shp donné j'ai un champs (CODE_Route) que j'aimerais remplir automatiquement avec des codes de ce genre (c0001; c0002; c0003...etc ).jusqu'a 5000 entités, c'est très fastidieux manuellement.😓
Svp existe t'il une extension pour cette incrémentation? Ou alors un code python ?
Merci d'avance.

Hors ligne

 

#2 Sat 17 February 2018 14:47

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 947
Site web

Re: QGIS: Incrementation ?

Bonjour,

Aller dans la calculette de champs de QGIS puis utilisez les fonctions @row_number et lpad
J'ai fait un GIF qui illustre comment faire via ce lien http://labs.webgeodatavore.com/partage/ … r_lpad.gif


Cordialement

Thomas

Hors ligne

 

#3 Sat 17 February 2018 15:20

Fom willy
Juste Inscrit !
Date d'inscription: 20 Sep 2017
Messages: 5

Re: QGIS: Incrementation ?

Merci énormément Thomas.  Vous avez résolu avec une precision remarquable mon problème.  Merci une fois de plus.

Hors ligne

 

#4 Sat 17 February 2018 20:49

Quentin_gis
Juste Inscrit !
Date d'inscription: 26 May 2014
Messages: 7

Re: QGIS: Incrementation ?

Flute, pour une fois que je pouvais répondre à une question, je me fais prendre de vitesse wink wink

Hors ligne

 

#5 Sun 18 February 2018 07:38

Fom willy
Juste Inscrit !
Date d'inscription: 20 Sep 2017
Messages: 5

Re: QGIS: Incrementation ?

😂😂😂 t'inquiète Quentin_gis, ton tour viendra.

Hors ligne

 

#6 Tue 17 September 2019 14:27

jpjp74
Participant assidu
Date d'inscription: 21 Oct 2011
Messages: 159

Re: QGIS: Incrementation ?

Bonjour,

Merci Thomas pour cette réponse qui correspond à mon besoin, au moins au départ.

Je rentre cette expression
lpad( @row_number ,3,'0') et j'obtiens bien 001, 002, 003, ...

Mais je voudrais démarrer la numérotation à 2. Je tape donc
lpad( @row_number ,3,'2') mais j'obtiens 210, 211, 212 ... Donc '0' ne doit pas être le point de départ ?

Je cherche depuis un moment. Comment dire à QGIS que je veux commencer à 10 par exemple ?, pour avoir 010, 011, 012, ... ou à 100 ?

Merci d'avance, bonne journée


Win 10 et QGIS 328

Hors ligne

 

#7 Tue 17 September 2019 14:39

Pascal Boulerie
Participant assidu
Lieu: France
Date d'inscription: 12 Sep 2005
Messages: 2947
Site web

Re: QGIS: Incrementation ?

il faut se référer à la documentation de cette fonction lpad pour comprendre ce qu'elle donne en sortie, et ce qu'elle fait avec son troisième argument... Et que ce n'est pas cette fonction lpad qu'il faut utiliser pour changer la borne de départ du compteur identifiant...

lpad en SQL :
https://sql.sh/fonctions/lpad



PS Pour se souvenir à quoi cette fonction lpad ou LPAD ou LPad sert, il s'agit de left padding :
https://database.guide/left-padding-in- … uivalents/

Il existe aussi rpad : right padding .

Ce sont deux fonctions de remplissage d'une chaîne de texte.


https://fr.wiktionary.org/wiki/padding
rembourrage

Dernière modification par Pascal Boulerie (Wed 18 September 2019 10:17)


« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)

Hors ligne

 

#8 Tue 17 September 2019 15:10

BOUGUEN
Participant occasionnel
Lieu: Guignen
Date d'inscription: 9 Mar 2008
Messages: 43

Re: QGIS: Incrementation ?

Bonjour,

La fonction lpad vous permet de gérer du texte, il est tout à fait normal que QGis vous renvoie 210 selon votre expression.

Par exemple pour partir de 10 il vous faut faire une addition avec le @row_number

lpad( @row_number+10 ,3,0) cette expression vous renverra '011'

Cordialement,

Gaël

Hors ligne

 

#9 Tue 17 September 2019 16:33

jpjp74
Participant assidu
Date d'inscription: 21 Oct 2011
Messages: 159

Re: QGIS: Incrementation ?

Merci à vous deux,

Je comprends mieux. Et j'arrive à un résultat.

Du coup je m'aperçois que @row_number n'est pas du tout la bonne expression, comme elle numérote les entités dans l'ordre où elles ont été créées.

Grâce à votre piste, j'obtiens bien ce que je veux, en passant par un champ de numérotation intermédiaire (NUMTEMP) et je met NUMTEMP" au lieu de "@row_number" dans l'expression.
Il est plus facile de renseigner manuellement ce champ intermédiaire (1, 2, 3, 4, etc) au lieu de 238, 239, 240, ...

Mais la cerise sur le gâteau serait de tout automatiser de suite. Est-il possible : 
- après avoir sélectionné un certain nombre de lignes non contigües (qui ne suivent pas / n'ont pas été créées les unes à la suite des autres)
- les avoir classées dans l'ordre qui me convient
que la numérotation incrémentée se fasse en suivant l'ordre de classement des lignes sélectionnées ?

Je ne sais si si ma question est très explicite. Je joins une capture d'écran.
Dans ma capture d'écran, je cherche à avoir une suite incrémentée automatiquement dans X_NUM dans l'ordre d'affichage des lignes et en pouvant définir le numéro de départ (ici 10)

Merci d'avance


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Win 10 et QGIS 328

Hors ligne

 

#10 Mon 23 September 2019 11:51

jpjp74
Participant assidu
Date d'inscription: 21 Oct 2011
Messages: 159

Re: QGIS: Incrementation ?

Bonjour,

Je me permets de "remonter" la question ci dessus.

Est-il possible de créer une numérotation incrémentée automatiquement, à partir d'une sélection de lignes et de leur "classement les unes au dessous des autres. Un peu comme on le fait avec un tableur ?

Merci d'avance, bonne journée


Win 10 et QGIS 328

Hors ligne

 

#11 Thu 05 October 2023 14:53

sapeur04
Participant occasionnel
Date d'inscription: 11 Dec 2007
Messages: 11

Re: QGIS: Incrementation ?

jpjp74 a écrit:

Bonjour,

Merci Thomas pour cette réponse qui correspond à mon besoin, au moins au départ.

Je rentre cette expression
lpad( @row_number ,3,'0') et j'obtiens bien 001, 002, 003, ...

Mais je voudrais démarrer la numérotation à 2. Je tape donc
lpad( @row_number ,3,'2') mais j'obtiens 210, 211, 212 ... Donc '0' ne doit pas être le point de départ ?

Je cherche depuis un moment. Comment dire à QGIS que je veux commencer à 10 par exemple ?, pour avoir 010, 011, 012, ... ou à 100 ?

Merci d'avance, bonne journée


Bonjour à tous

C'est sans doute bien trop tard, mais pour réaliser ceci il suffit de taper, pour commencer la numérotation à 012 :

lpad( @row_number + 11 ,3,'0')

;-)

Hors ligne

 

Pied de page des forums

Powered by FluxBB