Pages: 1
- Sujet précédent - QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table - Sujet suivant
#1 Tue 12 May 2015 16:57
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Bonjour,
Difficile de nommer le problème pour que cela parle à tout le monde, mais voici ce que j'essaie de faire.
Je dispose d'une table comprenant plusieurs champs.
Certains sont remplis uniquement par le même caractère (X), d'autres restent vides (valeurs NULL).
Je souhaiterais faire une symbologie en fonction du nombre de colonnes renseignées par un X. En gros, si un enregistrement a 3 colonnes renseignées, une couleur sera attribuée ; s'il n'y a que 2 champs renseignés, la couleur sera différente etc...
Est-ce qu'il est possible de faire cela dans QGis (peut-être via l'ensemble de règles ou des conditions ?) ?
Je vous remercie.
Bonne journée
Hors ligne
#2 Wed 13 May 2015 09:07
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3884
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Salut,
Pourquoi pas une symbologie catégorisée mais au lieu d'un champ, y saisir une expression?
La formule à laquelle je pense pourrait être du genre (pas testé)
Code:
case when "champ1" = 'X' then 1 else 0 end + case when "champ2" = 'X' then 1 else 0 end + ... case when "champN" = 'X' then 1 else 0 end
Après, ça dépend du nombre de champs que tu as mais, ça me semble moins complexe à gérer que les règles.
Dernière modification par SANTANNA (Wed 13 May 2015 14:16)
Hors ligne
#3 Wed 13 May 2015 10:01
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Bonjour,
Merci pour cette réponse. Effectivement, ça peut être une solution mais parfois j'ai pas mal de champs, ce qui peut compliquer la chose. Mais, cela m'a donné une idée qui serait peut-être plus facile à mettre en œuvre (ou pas...;-)). Je pensais créer un champs virtuel qui compterait le nombre de 'X' que j'ai dans les autres champs.
En gros, une sorte de conditions qui ferait : si champ1 et champ2 = X alors la valeur de mon champ virtuel sera 2. Comme si je faisais le calcul du nombre de 'X' pour chaque ligne.
Par contre, y-a-t-il une façon de calculer automatiquement l'ensemble des combinaisons ou bien faut lister les possibilités une par une ?
Car parfois, je peux bien évidemment avoir 2 'X' mais ce ne sont pas forcément les champ 1 et 2 qui seront renseignés...
Merci
Dernière modification par Razorbak (Wed 13 May 2015 10:05)
Hors ligne
#4 Wed 13 May 2015 10:50
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3884
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Je ne comprends pas bien car la formule que je te proposais se charge elle de calculer les combinaisons pour chaque champ.
une formule comme Case when "champ1" = 'X' then 1 else 0 END : si ton champ1 a la valeur 'X', il est compté (1) sinon on l'ignore (0) et on passe à la suivante. Pour chacun des champs, on compte ou on compte pas puis à la fin, on fait la somme des "comptés"... La seule différence avec un champ virtuel est que cette formule ne stocke pas visuellement la valeur, elle te traite la symbologie directement. Et Le calcul s'actualisera tout aussi bien au fil des modif de ta table. Et avec un champ virtuel, il te faudra de toute manière saisir la formule à utiliser pour qu'il fasse le compte des X.
LA seule contrainte de la formule, c'est si t'as vraiment beaucoup de champs mais un copier/coller peut alléger les choses.
Et si t'as VRAIMENT beaucoup de champs ou une couche dont le nombre de champs évolue, l'option que je vois est de créer une fonction personnalisée (voir ici, QGIS 2.8 offrant une nouvelle interface pour de telles choses et là)
Hors ligne
#5 Wed 13 May 2015 13:58
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Ok, je vois ce que tu veux dire, mais comment faire cette somme des "comptés" comme tu le dis ?
Pour l'instant, j'ai réussi à faire ce que je voulais en concaténant l'ensemble des valeurs des champs dans un champs virtuel, puis j'ai fait une symbologie par catégorisation.
Ainsi, j'ai une couleur pour un 'X', une autre couleur quand j'ai 2 'X' etc...
Dernière modification par Razorbak (Wed 13 May 2015 14:04)
Hors ligne
#6 Wed 13 May 2015 14:13
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3884
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Ok, je vois ce que tu veux dire, mais comment faire cette sommes des "comptés" comme tu le dis ?
Essaye la formule proposée sur ta couche ( quitte à n'utiliser que tes trois premiers champs si t'en as beaucoup par ex pour voir ce que ça donne)? car c'est justement elle qui se charge de faire le compte :
- case when .. else... end analyse chaque champ et renvoie une valeur numérique (1 si existence, sinon 0)
- l'opérateur + entre les différentes "Case..." se charge de faire la somme des résultats d'analyses les unes aux autres.
PS : Ai modifié la proposition de code dans mon premier message
Hors ligne
#7 Wed 13 May 2015 14:20
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Yes ! Je viens de tester et ça fonctionne très bien.
J'avais pas vu l'opérateur + en fait...
Merci
Hors ligne
#8 Wed 13 May 2015 14:27
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Une autre question pendant que j'y suis : sais-tu s'il est possible par la suite de faire des regroupements pour la symbologie : en gros, quand il y a un ou 2 'X', je veux la même couleur ; puis 3 ou 4 'X' une autre couleur...
Ça peut aller jusqu'à 8 'X' donc je souhaite faire maximum 5 classes.
Merci
Hors ligne
#9 Wed 13 May 2015 14:30
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3884
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Dans ce cas, fais plutôt une symbologie graduée, avec la même formule.
Hors ligne
#10 Wed 13 May 2015 14:38
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table
Ben oui...que suis-je bête ! Merci et bonne journée
Hors ligne
Pages: 1
- Sujet précédent - QGIS 2.6.1 : Calcul du nombre de colonnes renseignées dans une table - Sujet suivant