5

I am trying to use the field calculator to assign a "odd" or "even" value to a field of small integers. I usually do this with by selecting where:

MOD([field],2) = 0

and then just calculating it as "even", then reversing the selection and setting it to "odd"

I was hoping to do something like this in the field calculator:

DIM oddeven
IF mod([Field],2) = 0
   oddeven = "even"
else
   oddeven = "odd"
end IF

This does not work and I assume there is an alternate use of the mod() in this setting, or perhaps you cannot use an operator in the IF/THEN condition statement.

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
Mr.ecos
  • 471
  • 9
  • 16

2 Answers2

5

Your logic is correct, but the syntax is a bit off. In VBA the mod operator is [Field] Mod 2 and you must use the Then clause at the end of the IF statement. So your corrected code is:

DIM oddeven
IF [TILESQMILE] mod 2 = 0 Then
oddeven = "even"
else
oddeven = "odd"
end IF

And you should input the code into the field calculator window as follows:

enter image description here

sgrieve
  • 3,726
  • 1
  • 19
  • 36
5

If you're interested in a Python implementation, make sure you set your parser to "Python" and enter the below function in the Codeblock area. Then, all you have to do is call the function oddeven with the field name surrounded by "!".

def oddeven(n):
  if n%2 ==0:
    return "even"
  else:
    return "odd"

enter image description here

Fezter
  • 21,867
  • 11
  • 68
  • 123