The table calculator calculates a new attribute from existing attributes based on a mathematical formula. Attributes are addressed by the character 'f' (for 'field') followed by the field number (i.e.: f1, f2, ..., fn) or by the field name in square brackets (e.g.: [Field Name]).
Examples:
- sin(f1) * f2 + f3
- [Population] / [Area]
One can also use the drop-down-menu to append fields numbers to the formula.
If the use no-data flag is unchecked and a no-data value appears in a record's input, no calculation is performed for it and the result is set to no-data.
Following operators are available for the formula definition:
| + | Addition | 
| - | Subtraction | 
| * | Multiplication | 
| / | Division | 
| abs(x) | Absolute Value | 
| mod(x, y) | Returns the floating point remainder of x/y | 
| int(x) | Returns the integer part of floating point value x | 
| sqr(x) | Square | 
| sqrt(x) | Square Root | 
| exp(x) | Exponential | 
| pow(x, y) | Returns x raised to the power of y | 
| x ^ y | Returns x raised to the power of y | 
| ln(x) | Natural Logarithm | 
| log(x) | Base 10 Logarithm | 
| pi() | Returns the value of Pi | 
| sin(x) | Sine, expects radians | 
| cos(x) | Cosine, expects radians | 
| tan(x) | Tangent, expects radians | 
| asin(x) | Arcsine, returns radians | 
| acos(x) | Arccosine, returns radians | 
| atan(x) | Arctangent, returns radians | 
| atan2(x, y) | Arctangent of x/y, returns radians | 
| min(x, y) | Returns the minimum of values x and y | 
| max(x, y) | Returns the maximum of values x and y | 
| gt(x, y) | Returns true (1), if x is greater than y, else false (0) | 
| x > y | Returns true (1), if x is greater than y, else false (0) | 
| lt(x, y) | Returns true (1), if x is less than y, else false (0) | 
| x < y | Returns true (1), if x is less than y, else false (0) | 
| eq(x, y) | Returns true (1), if x equals y, else false (0) | 
| x = y | Returns true (1), if x equals y, else false (0) | 
| and(x, y) | Returns true (1), if both x and y are true (i.e. not 0) | 
| or(x, y) | Returns true (1), if at least one of both x and y is true (i.e. not 0) | 
| ifelse(c, x, y) | Returns x, if condition c is true (i.e. not 0), else y | 
| rand_u(x, y) | Random number, uniform distribution with minimum x and maximum y | 
| rand_g(x, y) | Random number, Gaussian distribution with mean x and standard deviation y | 
| nodata() | Returns tables's no-data value | 
| isnodata(x) | Returns true (1), if x is a no-data value, else false (0) |