jueves, 12 de agosto de 2010

Funciones de la calculadora de ArcGis

Bueno... esto es algo que tenía guardadito y no lo había utilizado pero resulta bastante útil... conocerlo... estas funciones no muestran su documentación en ArcGis... y por tanto resulta algo fastidioso de desenmarañar, pues acá esta el resultado para las siguientes funciones:


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
NUMÉRICA
Abs
Devuelve un valor del mismo tipo que el que se pasó como parámetro y que especifica el valor absoluto de un número.
Abs(número)
Número
Puede ser cualquier expresión numérica válida. Si número contiene Null, la función devolverá Null; si es una variable no inicializada, devolverá cero.
Atn
Devuelve el arcotangente de un número en un tipo Double.
Atn(número)
Número
Es de tipo Double o cualquier expresión numérica válida.
Cos
Devuelve el coseno de un ángulo en tipo Double.
Cos(número)
Número
Es de tipo Double o cualquier expresión numérica válida que expresa un ángulo en radianes.
Exp
Devuelve un tipo Double que especifica e (la base de los logaritmos naturales) elevado a una potencia.
Exp(número)
Número
Es de tipo Double o cualquier expresión numérica válida.
Fix
Devuelve la parte entera de un número.(A diferencia del INT, la función FIX() devuelve el primer entero negativo mayor o igual a número en el caso en que el argumento sea negativo)
Fix(número)
Número
Es de tipo Double o cualquier expresión numérica válida. Si número contiene Null, la función devolverá Null.
Int
Devuelve la parte entera de un número.(A diferencia del FIX, la función INT() devuelve el primer entero negativo menor o igual a número en el caso en que el argumento sea negativo)
Int(número)
Número
Es de tipo Double o cualquier expresión numérica válida. Si número contiene Null, la función devolverá Null.
Log
Devuelve el logaritmo natural de un número en tipo Double.
Log(número)
Número
Es de tipo Double o cualquier expresión numérica válida mayor que cero


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
NUMBER
Sin
Devuelve el seno de un ángulo en tipo Double.
Sin(número)
Número
Es de tipo Double o cualquier expresión numérica válida que expresa un ángulo en radianes.
Sqr
Devuelve la raíz cuadrada de un número en tipo Double.
Sqr(número)
Número
Es de tipo Double o cualquier expresión numérica válida mayor o igual a cero.
Tan
Devuelve la tangente de un ángulo en tipo Double.
Tan(número)
Número
Es de tipo Double o cualquier expresión numérica válida que expresa un ángulo en radianes.
STRING
Asc
Devuelve el código de carácter correspondiente a la primera letra de una cadena, en tipo Integer que representa.
NOTA: Cambia de String a ASCII
Asc(cadena)
Cadena
Debe ser una expresión de cadena válida. Si cadena no contiene caracteres, se produce un error en tiempo de ejecución
Chr

Devuelve un tipo String que contiene el carácter asociado con el código de carácter especificado.
NOTA: Cambia de ASCII a String
Chr(códigocar)
Códigocar
Es un tipo Long que identifica a un carácter.
Int
Devuelve un tipo Variant (String) que contiene una expresión formateada de acuerdo a las instrucciones contenidas en una expresión de formato.
Format(expresión[, formato[, primerdíadesemana[, primerdíadeaño]]])
Expresión: Requerido. Cualquier expresión válida.
Formato: Opcional. Una expresión de formato definida por el usuario o con nombre válido.
Primerdíadesemana: Opcional. Una constante que especifica el primer día de la semana.
Primerdíadeaño: Opcional. Una constante que especifica la primera semana del año.


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
STRING
InStr
Devuelve un tipo Variant (Long) que especifica la posición de la primera aparición de una cadena en otra.
InStr([start, ]string1, string2[, compare])
Start: Opcional. Expresión numérica que establece la posición inicial para cada búsqueda. Si se omite, la búsqueda comienza en la posición del primer carácter. Si inicio contiene un valor Null, se produce un error. El argumento inicio se requiere si se especifica compare.
String1: Requerido. Expresión de cadena en la que se busca.
String2: Requerido. Expresión de cadena buscada.
Compare: Opcional. Especifica el tipo de comparación de cadena. Si compare es Null, ocurre un error. Si se omite compare, el valor Option Compare determina el tipo de comparación. Especifica un LCID (LocaleID) válido para usar reglas específicas de configuración regional en la comparación.
LCase
Devuelve un tipo String que se ha convertido a minúsculas.
LCase(cadena)
Cadena
Es cualquier expresión de cadena válida. Si string contiene Null, se devuelve Null.
Left
Devuelve un tipo Variant (String) que contiene un número especificado de caracteres del lado izquierdo de una cadena.
Left(string, length)
String: Requerido. Expresión de cadena de la cual se devuelven los caracteres que están más a la izquierda. Si string contiene Null, se devuelve Null.
Length: Requerido, un tipo Variant (Long). Expresión numérica que indica cuántos caracteres se van a devolver. Si es 0, devuelve una cadena de longitud cero (""). Si es mayor o igual al número de caracteres en string, se devuelve la cadena entera.
Len
Devuelve un tipo Long que contiene el número de caracteres en una cadena o el número de bytes necesarios para almacenar una variable.
Len(cadena | nombrevar)
Cadena: Cualquier expresión de cadena válida. Si la cadena contiene Null, se devuelve Null.
Nombrevar: Cualquier nombre de variable válido. Si nombrevar contiene Null, se devuelve Null. Si nombrevar es un tipo Variant, Len actúa igual que con un tipo String y siempre devuelve el número de caracteres que contiene.


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
STRING
LTrim
Devuelve un tipo Variant (String) que contiene una copia de una cadena determinada sin espacios a la izquierda (LTrim).
LTrim(cadena)
Cadena
El argumento cadena obligatorio es cualquier expresión de cadena válida. Si cadena contiene Null, se devuelve Null.
Mid
Devuelve un tipo Variant (String) que contiene un número especificado de caracteres de una cadena.
Mid(string, start[, length])
String: Requerido. Expresión de cadena de la cual se devuelven los caracteres. Si el string contiene Null, se devuelve Null.
Start: Requerido; un tipo Long. Posición de carácter en string en la cual comienza la parte que se quiere tomar. Si start es mayor que el número de caracteres en la string, Mid devuelve una cadena de longitud cero ("").
Length: Requerido; un tipo Variant (Long). Número de caracteres que se van a devolver. Si se omite o en el texto hay menos de length caracteres (incluyendo el carácter de start), se devuelven todos los caracteres desde la posición de start hasta el final de la cadena.
QBColor
Devuelve un tipo Long que representa el código de color RGB correspondiente al número de color especificado.
QBColor(color)
Color
El argumento color toma los siguientes valores
0
Negro
8
Gris
1
Azul
9
Azul claro
2
Verde
10
Verde claro
3
Aguamarina
11
Aguamarina claro
4
Rojo
12
Rojo claro
5
Fucsia
13
Fucsia claro
6
Amarillo
14
Amarillo claro
7
Blanco
15
Blanco brillante


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
STRING
Right
Devuelve un tipo Variant (String) que contiene un número especificado de caracteres del lado derecho de una cadena.
Right(string, lenght)
String: Requerido. Expresión de cadena desde la cual se devuelven los caracteres que están más a la derecha. Si string contiene Null, se devuelve Null.
Lenght: Requerido, un tipo Variant (Long). Expresión numérica que indica cuántos caracteres se van a devolver. Si es 0, se devuelve una cadena de longitud cero (""). Si es mayor o igual al número de caracteres en string, se devuelve la cadena completa.
RTrim
Devuelve un tipo Variant (String) que contiene una copia de una cadena determinada sin espacios a la derecha (RTrim).
RTrim(cadena)
Cadena
El argumento cadena obligatorio es cualquier expresión de cadena válida. Si cadena contiene Null, se devuelve Null.
Space
Devuelve un tipo Variant (String) que consiste en un número especificado de espacios.
Space(número)
Número
Es el número de espacios que se desea incluir en la cadena.


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
STRING
StrConv
Devuelve un tipo Variant (String) que se convierte como se especifica.
StrConv(string, conversion, LCID)
String: Requerido. Expresión de cadena que se va a convertir.
Conversión: Requerido. Un tipo Integer. La suma de los valores que especifica el tipo de conversión que se va a realizar.
LCID: Opcional. La LocaleID, si es diferente de la LocaleID del sistema. (La LocaleID del sistema es la predeterminada.).
Los valores del argumento conversion son:
vbUpperCase
1
Convierte la cadena a caracteres en mayúscula.
vbLowerCase
2
Convierte la cadena a caracteres en minúscula.
vbProperCase
3
Convierte a mayúscula la primera letra de cada palabra de la cadena.
vbWide*
4*
Convierte los caracteres cortos (un único byte) de la cadena a caracteres anchos (doble byte).
vbNarrow*
8*
Convierte los caracteres anchos (doble byte) de la cadena a caracteres cortos (un único byte).
vbKatakana**
16**
Convierte los caracteres Hiragana de la cadena a caracteres Katakana.
vbHiragana**
32**
Convierte los caracteres Katakana de la cadena a caracteres Hiragana.
vbUnicode
64
Convierte la cadena a Unicode utilizando la página de códigos predeterminada del sistema. (No disponible en Macintosh.)
vbFromUnicode
128
Convierte la cadena de Unicode a la página de códigos predeterminada del sistema. (No disponible en Macintosh.)


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
STRING
String
Devuelve un tipo Variant (String) que contiene una cadena de caracteres que se repite de la longitud especificada.
String(number, character)
Number: Requerido; un tipo Long. Longitud de la cadena devuelta. Si número contiene Null, se devuelve Null.
Carácter: Requerido; un tipo Variant. Código de carácter que especifica el carácter o la expresión de cadena cuyo primer carácter se utiliza para construir la cadena devuelta. Si character contiene Null, se devuelve Null.
Trim
Devuelve un tipo Variant (String) que contiene una copia de una cadena determinada sin espacios ni a la derecha ni a la izquierda (Trim).
Trim(cadena)
Cadena
El argumento cadena obligatorio es cualquier expresión de cadena válida. Si cadena contiene Null, se devuelve Null.
UCase
Devuelve un tipo Variant (String) que contiene una cadena especificada que se ha convertido a mayúsculas.
UCase(cadena)
Cadena
Es cualquier expresión de cadena válida. Si cadena contiene Null, se devuelve Null.
DATE
Date
Devuelve un tipo Variant (Date) que contiene la fecha actual del sistema.
Date
-
DateAdd
Devuelve un valor de tipo Variant (Date) con una fecha a la que se ha agregado un intervalo de tiempo especificado.
DateAdd(intervalo, número, fecha)
Intervalo: Requerido. Expresión de cadena que contiene el intervalo de tiempo que se desea agregar.
Número: Requerido. Expresión numérica con el número de intervalos que se desea agregar. Puede ser positiva (para obtener fechas futuras) o negativa (para obtener fechas pasadas).
Fecha: Requerido. Valor de tipo Variant (Date) o literal que representa la fecha en la que se agregó el intervalo.


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
DATE
DateAdd

DateAdd(intervalo, número, fecha)
El argumento intervalo tiene los siguientes valores:
Valor
Descripción
yyyy
Año
q
Trimestre
m
Mes
y
Día del año
d
Día
w
Día de la semana
ww
Semana
h
Hora
n
Minuto
s
Segundo
DateDiff
Devuelve un valor de tipo Variant (Long) que especifica el número de intervalos de tiempo entre dos fechas determinadas.
DateDiff(intervalo, fecha1, fecha2[, primerdíasemana[, primerasemanaaño]])
Intervalo: Requerido. Expresión de cadena con el intervalo de tiempo utilizado para calcular la diferencia entre fecha1 y fecha2.
Fecha1, fecha2: Requerido; Variant (Date). Las dos fechas que se van a utilizar en el cálculo.
Primerdíasemana: Opcional. Constante que especifica el primer día de la semana. Si no se especifica, se asume que es el domingo.
Primerasemanaaño: Opcional. Constante, que especifica la primera semana del año. Si no se especifica, se asume que es aquélla en la que se encuentre el 1 de enero.


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
DATE
DateDiff

DateDiff(intervalo, fecha1, fecha2[, primerdíasemana[, primerasemanaaño]])
El argumento intervalo tiene los siguientes valores:
Valor
Descripción
yyyy
Año
q
Trimestre
m
Mes
y
Día del año
d
Día
w
Día de la semana
ww
Semana
h
Hora
n
Minuto
s
Segundo
DatePart
Devuelve un valor de tipo Variant (Integer) que contiene la parte especificada de la fecha dada.
DatePart(intervalo, fecha[,primerdíasemana[, primerasemanaaño]])
Intervalo: Requerido. Expresión de cadena con el intervalo de tiempo que desea devolver.
Fecha: Requerido. Tipo de valor Variant (Date) que se desea evaluar.
Primerdíasemana: Opcional. Una constante que especifica el primer día de la semana. Si no se especifica, se asume que es el domingo.
Primerasemanaaño: Opcional. Una constante que especifica la primera semana del año. Si no se especifica, se asume que es aquélla en la que se encuentre el 1 de enero.


TIPO
FUNCIÓN
DESCRIPCIÓN
SINTAXIS
ARGUMENTO
DATE
DatePart

DatePart(intervalo, fecha[,primerdíasemana[, primerasemanaaño]])
El argumento intervalo tiene los siguientes valores:
Valor
Descripción
yyyy
Año
q
Trimestre
m
Mes
y
Día del año
d
Día
w
Día de la semana
ww
Semana
h
Hora
n
Minuto
s
Segundo
Now
Devuelve un valor de tipo Variant (Date) que especifica la fecha y hora actuales de acuerdo con la configuración de la fecha y la hora del sistema de su equipo.
Now
-

Ejemplo del uso de las funciones, aveces necesitamos separar alguna cadema de caracteres que tenemos en un campo desde ArcGis, pues bien para evitarnos pasar nuesta tabla a (dbase) .dbf con la consecuente perdida de acentos debido al encoding, y con el problema que tenemos al abrir esta nueva tabla desde el Excel con sus limitaciones en cuanto a la carga de registros, vamos a realizarlo utilizando las funciones básicas de la calculadora de ArcGis:

pues bien:
si tenemos un campo

NombreC
Pedro Plinio Perez Plazas
y queremos pasarlo a:

Nombre1
Nombre2
Apellido1
Apellido2
Pedro
Plinio
Perez
Plazas

podemos usar la siguiente formula de la calculadora del ArcGis:
desde el campo Nombre1 calculamos:

Trim(Mid(NombreC, 1,InStr(1,NombreC, " ")-1))
para obtener:

Nombre1
Nombre2
Apellido1
Apellido2
Pedro




Luego desde el campo Nombre2 calculamos:

Trim(Mid(NombreC, InStr( InStr(1,NombreC, " ")+1,NombreC, " "),InStr(InStr(1,NombreC, " ")+1,NombreC, " ")-1)
para obtener:


Nombre1
Nombre2
Apellido1
Apellido2
Pedro
Plinio



y así se continúa hasta completar, este ejemplo se muestra a modo de ilustración comenten si les da resultado y Bienvenidos todos los aportes.

Saludos

6 comentarios:

  1. Excelente, aunque hay que revisar las sentencias Trim(Mid(NombreC, 1,InStr(1,NombreC, " ")-1)...falta un parentesis para cerrar la sentencia.

    ResponderEliminar
  2. Mi estimado Juanito, es posible generar una enumeracion tipo alfabeto en un campo de Shape, es decir A, B, C, D....

    ResponderEliminar
  3. Amigo, todo es posible, pero quizá no desde la calculadora de ArcGis ... Aunque no estoy familiarizado con las últimas versiones, creo que esto no lo han implementado, ni siquiera para campos numéricos... Sin embargo, yo lo haría abriendo el dbf desde openoffice y manejándolo como cualquier hoja de cálculo !!

    ResponderEliminar
  4. Para els egundo apellido seria: trim(mid([PDoTexto],(instr(1,[PDoTexto]," ")+1),(instr(1,[PDoTexto]," ")-1))), y asi el tercero como dices

    ResponderEliminar