#1 Thu 01 August 2019 08:21
- SIGstud_V
- Juste Inscrit !
- Date d'inscription: 10 Jul 2019
- Messages: 4
Calculateur de champ avec condition multiple
Bonjour,
je dois créer un champ à partir d'un autre sur ArcMap, mais je ne maîtrise ni le VBscript, ni python. Mon problème est le suivant :
J'ai une [colonne X] dont les valeurs sont des chaines de caractères sous cette forme "X.X.X.X", je cherche à calculer un nouveau [champ Z] de sorte que:
si le début de la chaine de la [colonne X] = "X.X" alors [champ Z] = "rocher",
si le début de la chaine = "A.X et X.A" alors [champ Z] = "pelouse",
si le début de la chaine = "A.A" et alors [champ Z] = "sable",
etc... il y a environ 5 conditions identiques.
Je voulais savoir si quelqu'un avait un script à me proposer, car je ne connais pas les mots clefs ni la typo à respecter.
Merci beaucoup!
Hors ligne
#2 Fri 02 August 2019 14:37
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: Calculateur de champ avec condition multiple
Plusieurs solutions ici : https://community.esri.com/thread/21689
Hors ligne
#3 Wed 07 August 2019 11:13
- SIGstud_V
- Juste Inscrit !
- Date d'inscription: 10 Jul 2019
- Messages: 4
Re: Calculateur de champ avec condition multiple
merci bien,
malheureusement les scripts ne sont pas corrects j'ai toujours un message d'erreur : "syntaxe incorrect" ou "caractère incorrect"... j'ai essayé les différents scripts en changeant la typo quand ça ne marchait pas, et avec des champs plus simples, mais rien ne marche.
Et je ne sais toujours pas comment sélectionner seulement les 2 premiers caractères dans la chaine et non la chaine entière...
Hors ligne
#4 Fri 09 August 2019 16:28
- s10
- Participant occasionnel
- Lieu: France
- Date d'inscription: 28 Nov 2018
- Messages: 23
Re: Calculateur de champ avec condition multiple
Dans la calculatrice de champs tu coches bien "Code de script Pre-Logic" ?
Avec ca puis dans la case "Code de script" :
Code:
Dim Variable If [TONCHAMP]="1" Then Variable= "a" End If
et en dessous dans le champ sur lequel tu as calculé :
TOTO =
Variable
Aussi, si tu as un champs en texte mets bien les guillemets et inversement en nombre il en faut pas
Code:
If [NUMERO] = 1 Then If [NOMDEVILLE] = "Paris" Then
En espérant que ça t'aide,
Hors ligne
#5 Mon 12 August 2019 11:32
- SIGstud_V
- Juste Inscrit !
- Date d'inscription: 10 Jul 2019
- Messages: 4
Re: Calculateur de champ avec condition multiple
ça a marché! \o/
J'ai rentré ce script dans le bloc de code pré-logic :
il fallait juste penser à créer une variable au préalable ("niv_sensi" ici) de type chaine et de longueur suffisante sinon ça bloque le calcul.
Dim niv_sensi
If [Int_Hab] = -998 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = -999 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = 0 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = 1 Then
niv_sensi = "Nulle"
ElseIf [Int_Hab] = 2 Then
niv_sensi = "Faible"
ElseIf [Int_Hab] = 4 Then
niv_sensi = "Moyen"
ElseIf [Int_Hab] = 5 Then
niv_sensi = "Fort"
End If
Et dans la fenêtre du calcule de champ :
sensi =
niv_sensi
Donc ça m'a bien aidé! Merci Beaucoup!
A bientôt!
Hors ligne
#6 Tue 13 August 2019 11:43
- Eckmül
- Participant actif
- Date d'inscription: 5 Feb 2019
- Messages: 62
Re: Calculateur de champ avec condition multiple
Tu peux aussi utiliser les sous-type de champs dans ArcCatalog pour faire correspondre un code ? une description plus explicite :
Cr?er une GDB de toute tes couches, va dans propri?t?s de la couche dans la GDB, puis dans sous-types puis "domaines"
Le SIG c'est donné une réponse spatiale à des problèmes statistiques
Hors ligne