Заповнення стовпців послідовними номерами в QGIS?


30

Я створюю новий стовпець у своїй таблиці атрибутів, і він має значення за замовчуванням (наприклад, 0). Я хочу (можливо, використовуючи калькулятор поля), що результат 1 має значення 1, рядок 2 = 2 і так далі, як нумерований індекс.

Буду вдячний за приклад коду для калькулятора поля (включаючи використання $rownum(я думаю, мені це потрібно для переходу на рядок)).

Відповіді:


54

Просто $rownumвведіть (QGIS 2) або @row_number(QGIS 3+) як вираз. Просто як це. :)

Оновлений список усіх функцій калькулятора поля можна прочитати в офіційних документах .


Я дотримувався вашого підходу, однак без видимих ​​причин цифри змінюються в один момент. Він прекрасно працював з першого ряду до рядка 129, а після того, як він перемістився до 789 ... чи є спосіб вирішити це?
Гійом

1
Переконайтеся, що у вас немає активного фільтра дисплея, оскільки немає причин його стрибнути.
lynxlynxlynx

8

@ArMoraer розробив цікавий плагін, щоб можна було керувати способом виготовлення цієї автоматичної нумерації, її називають "Сортування та число" . Ви можете використовувати його для заповнення стовпця унікальними номерами, беручи до уваги 3 інші поля, щоб сортувати ваші дані перед нумерацією.

Дивіться тему джерела: Чи є спосіб призначити номер рядка для відсортованої таблиці за стовпцями в QGIS?



1

Для мене найкращий і найпростіший спосіб - це якраз $idповернення idчисла до кожного рядка, що його індексує 0.


Він повертає кожен ідентифікатор функції, але послідовність не обов'язково починається з 0 і може мати відсутні значення. Це справа після того, як ви видалили існуючу функцію (тобто почніть із шару, який містить 3 функції, видаліть №2, виклик $ id поверне 0 і 2.)
JGH

Ви маєте рацію, якщо відсутні відсутні значення, то виникне проблема з реальним номером індексації. Однак, я думаю, що виклик $idпісля видалення рядків повинен підтвердитись @row_number. Якщо я правильно зрозумів ваше твердження.
Влад

ні, це залишить дірки
JGH
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.