Creación de campos calculados
En la aplicación Reportes, los campos calculados son campos que derivan datos del cálculo de otros campos. Puede utilizar campos calculados para mostrar el resultado de un cálculo, sustituir valores de texto por valores numéricos o evaluar una o más condiciones y determinar el valor de un campo en función del resultado.
Cómo funciona
Las vistas le proporcionan campos de Diligent One que puede utilizar para generar un reporte. Si necesita crear campos adicionales como parte de su proceso de redacción de reportes, puede usar algunos de los campos provistos en la vista como base para cálculos más complejos.
Editor de fórmulas simples
Puede usar el generador de fórmulas simples para definir campos calculados usando cualquier combinación de:
- campos de dimensiones, medidas y fechas clasificaciones de tipos de campos
Si desea obtener más información, consulte Creación de reportes.
- operadores lógicos operadores, como "entre" o "no está en la lista", que devuelven un resultado booleano
- funciones de agregación herramientas que realizan cálculos u operaciones en un campo, como recuento o suma
- ecuaciones matemáticas operaciones, incluyendo la suma, resta, multiplicación y división
- expresiones CASE expresiones condicionales utilizadas para cambiar la forma en que se representan los datos
Una vez que crea un campo calculado, el campo se agrega automáticamente a la carpeta Campos calculados en la lista de campos de datos y puede agregar el campo a su reporte.
Editor de fórmulas predefinidas
Otra opción para definir sus propios campos calculados consiste en usar el editor de fórmulas predefinidas para escoger de una lista de funciones definidas por Diligent.
El editor de fórmulas predefinidas resulta útil cuando es necesario:
- dividir valores de campos delimitados a fin de generar un reporte con los subvalores
- extraer el mes o el año de un campo de marca de hora
- utilizar funciones avanzadas de antigüedad
- convertir tipos de datos de caracteres a numéricos o de fecha
Consejo
La conversión de datos es útil al generar reportes con campos de atributos personalizados desde Proyectos, que suelen estar almacenados como datos de caracteres.
Nota
Los campos calculados que se crean utilizando el editor de formulas simples pueden derivar datos de campos calculados con funciones predefinidas. Sin embargo, los campos calculados con funciones predefinidas no pueden derivar datos de otra función predefinida.
Funciones de agregación
Todas las funciones de agregación ignoran los valores nulos. Si desea obtener más información sobre cómo arreglar valores nulos, consulte Trabajando con valores nulos.
Funciones de agregación y valores nulos
Ejemplos:
- COUNT(1, 2 , 2 , 3 , null ,null) = 4
- COUNT DISTINCT (1, 2, 2, 3, null, null) = 3
- SUM (1, 2, 2, 3, null, null) = 8
- AVG (1, 2, 2, 3, null, null) = 2
- MIN (1, 2, 2, 3, null, null) = 1
- MAX (1, 2, 2, 3, null, null) = 3
Ecuaciones matemáticas
Las ecuaciones matemáticas que involucran números enteros y decimales siempre devuelven resultados precisos. Las ecuaciones matemáticas que implican nulos o una división por 0 siempre devuelven nulo.
Ecuaciones matemáticas y resultados
Ejemplos:
- 8 + 2 = 10
- 8 + 2,5 = 10,5
- 8 + 2,5 + nulo = nulo
- 8 / 0 = nulo
Ejemplos
Ejemplo de campos calculados
Resultado de un cálculo
Nombre del campo calculado diff_risk_score
Sintaxis Calificación del riesgo esperado del objetivo - Calificación de riesgo real del objetivo
Resultado devuelve la diferencia del campo Objetivo de calificación de riesgo esperado y el campo Objetivo de puntuación de riesgo real
Valores de texto sustituidos por valores numéricos
Nombre del campo calculado risk_assurance_rating
Sintaxis CASE WHEN Aseguramiento del riesgo del objetivo <= 50 THEN 'Área de riesgo crítico: Se requiere seguimiento' ELSE 'Desconocido' END
Resultado devuelve 'Área de riesgo crítico: Se requiere seguimiento' cuando el valor del aseguramiento del riesgo del objetivo es menor o igual a 50
Evaluación de varias condiciones y determinación del valor de un campo en función del resultado
Nombre del campo calculado risk_assurance_rating
Sintaxis CASE WHEN Aseguramiento del riesgo del objetivo <= 50 AND Estado de las acciones correctivas del asunto = 'Abierto' THEN 'Área de riesgo crítico' ELSE 'Desconocido' END
Resultado devuelve 'Área de riesgo crítico' cuando el valor del aseguramiento del riesgo del objetivo es menor o igual a 50 y Estado de las acciones correctivas del asunto es igual a 'Abierto'.
Permisos
Solo los administradores de reportes y los redactores de reportes pueden crear campos calculados.
Crear campo calculado
- Abra la aplicación Reportes.
Se abre la página Explorar.
- Abra un reporte y vaya a la ficha Datos en el Generador de reportes.
- En la parte inferior de la lista de campos de datos, haga clic en Crear campo calculado .
Se abre el cuadro de diálogo Campo calculado.
- Junto al Nombre del campo calculado especifique un nombre para el campo calculado.
- Junto a Tipo de fórmula, seleccione una de las siguientes opciones:
- Simple le permite generar sus propios campos calculados
- Predefinido le permite seleccionar una función definida por Diligent
- Complete los siguientes pasos:
Si seleccionó Simple... Si seleccionó Predefinido... - Defina una expresión utilizando los botones en la parte inferior del cuadro de diálogo.Nota
Consideraciones:
- Las expresiones que contienen valores con apóstrofes no son compatibles.
- Las funciones de agregación deben agregarse antes que los campos a los que desea que se apliquen.
- Para cualquier expresión, debe hacer clic en + Agregar después de agregar valores y operadores lógicos a su declaración.
- Para editar una parte de una expresión, debe hacer clic en Deshacer y volver a crearla.
- Para las declaraciones booleanas, ingrese 0 para representar 'No', y 1 para representar 'Sí'.
- Para probar la expresión, haga clic en Validar.
Se muestra un mensaje para confirmar que la expresión es válida o inválida. Si la expresión no es válida, no podrá guardar el campo calculado y deberá actualizar la sintaxis antes de continuar.
- Haga clic en Guardar.
Resultado En la lista de campos de datos se crea automáticamente una carpeta Campos calculados y el campo calculado recientemente creado se agrega a la carpeta.
- Seleccione una función de la lista.
Si desea ver una lista completa de las funciones, consulte Funciones predefinidas.
- Seleccione el tipo de campo del campo calculado que desea crear.
- Defina los campos que se deben usar en la función.
- Haga clic en Guardar.
Resultado Se crea automáticamente una carpeta de Campos calculados en la lista de campos de datos y el campo calculado recién creado se agrega a la carpeta.
- Defina una expresión utilizando los botones en la parte inferior del cuadro de diálogo.
Agregar un campo calculado a un reporte
- Abra la carpeta Campos calculados en la lista de campos de datos.
- Arrastre el campo calculado al área apropiada en el reporte.
Resultado El campo calculado se agrega al reporte.
Funciones predefinidas
Descripción
Devuelve la cantidad de días transcurridos (la antigüedad) de una fecha específica.
Sintaxis
AGE(Fecha: marca de hora)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha | Marca de hora | El campo para antigüedad. |
Salida
Número.
Ejemplo
Devuelve la cantidad de días entre el fin del plazo de las acciones correctivas del asunto y la fecha actual:
AGE(Fecha: Fecha del fin del plazo de las acciones correctivas del asunto)
- Si se devuelve un valor positivo, es igual a la cantidad de días en el pasado en que ocurrió la fecha de fin del plazo de la corrección del asunto.
- Si se devuelve un valor negativo, es igual a la cantidad de días en el futuro en que se producirá la fecha de fin del plazo de la corrección del asunto.
- Si se devuelve 0, la fecha de fin del plazo de la corrección del asunto es la fecha actual.
Descripción
Devuelve la cantidad de días transcurridos entre dos fechas.
Sintaxis
DATEDIFF(Fecha de inicio: marca de horas, Fecha de finalización: marca de horas)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha de inicio | Marca de hora | El campo para antigüedad. |
Fecha de finalización | Marca de hora | El campo con el que se compara la Fecha de inicio. |
Salida
Número.
Ejemplo
Devuelve la cantidad de días entre la fecha de identificación del asunto y la fecha real de las acciones correctivas del asunto:
DATEDIFF(Fecha de inicio: Fecha de identificación del asunto, Fecha de finalización: Fecha real de las acciones correctivas del asunto)
- Si se devuelve un valor positivo, la fecha real de las acciones correctivas del asunto es anterior a la fecha real de correción del asunto.
- Si se devuelve un valor negativo, la fecha real de las acciones correctivas del asunto es anterior a la fecha de identificación del asunto.
- Si se devuelve 0, la fecha de identificación del asunto y la fecha real de las acciones correctivas del asunto son la misma fecha.
Descripción
Extrae el mes de una marca de hora específica y lo devuelve como un valor numérico (1 a 12).
Sintaxis
MONTH(Fecha:marca de hora)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha | Marca de hora | El campo del cual extraer el mes. |
Salida
Entero (1-12).
Ejemplo
Devuelve el mes (1-12) para cada valor en el campo Fecha real de las acciones correctivas del asunto:
MONTH(Fecha: Fecha real de las acciones correctivas del asunto)
Descripción
Extrae el año de una marca de hora especificada y lo devuelve como un valor numérico con el formato AAAA.
Sintaxis
YEAR(Fecha: marca de hora)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha | Marca de hora | El campo del cual extraer el año. |
Salida
Entero.
Ejemplo
Devuelve el año (AAAA) para cada valor en el campo Fecha real de las acciones correctivas del asunto:
YEAR(Fecha: Fecha real de las acciones correctivas del asunto)
Descripción
Devuelve la cantidad de días transcurridos (la antigüedad) de una fecha específica.
Sintaxis
AGE_C(Fecha: texto)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha | Texto | El campo para antigüedad. |
Salida
Número.
Ejemplo
Usted tiene un campo personalizado definido para los asuntos que especifica un valor de fecha. Desea realizar un cálculo de antigüedad en el campo; sin embargo, los campos personalizados se representan como valores de texto en la aplicación Reportes. Utiliza la función Texto - Antigüedad para realizar el cálculo de antigüedad.
Devuelve la cantidad de días entre la fecha del campo personalizado y la fecha actual:
AGE_C(Fecha: Atributo del asunto personalizado 1)
- Si se devuelve un valor positivo, es igual a la cantidad de días pasados en que se produjo la fecha del campo personalizado.
- Si se devuelve un valor negativo, es igual a la cantidad de días en el futuro cuando ocurrirá la fecha del campo personalizado.
- Si se devuelve 0, la fecha del campo personalizado es la fecha actual.
Descripción
Convierte un campo de texto de fecha en una marca de hora.
Sintaxis
CHAR_TO_DATE(Fecha: texto)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha | Texto | El campo para convertir en una marca de hora. |
Salida
Marca de hora.
Ejemplo
Usted tiene un campo personalizado definido para los asuntos que especifica un valor de fecha. Desea realizar cálculos en el campo; sin embargo, los campos personalizados se representan como valores de texto en la aplicación Reportes. Utiliza la función Texto - Convertir a fecha para convertir el campo en una marca de hora:
CHAR_TO_DATE(Fecha: Atributo del asunto personalizado 1)
Consejo
La salida es una marca de hora, que muestra tanto la fecha como la hora. Si solo desea mostrar la fecha, puede formatear la visualización del campo y especificarla como Fecha. Si desea obtener más información, consulte Formato de las columnas en los reportes.
Descripción
Convierte un campo de texto numérico en un valor numérico.
Sintaxis
CHAR_TO_NUM(Texto: texto)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Texto | Texto | El campo a convertir en valor numérico. |
Salida
Número.
Ejemplo
Usted tiene un campo personalizado definido para los asuntos que especifica un valor numérico. Desea realizar cálculos en el campo; sin embargo, los campos personalizados se representan como valores de texto en la aplicación Reportes. Utiliza la función Texto - Convertir a numérico para convertir el campo en un valor numérico:
CHAR_TO_NUM(Texto: Atributo del asunto personalizado 1)
Descripción
Devuelve la cantidad de días transcurridos entre dos fechas.
Sintaxis
DATEDIFF_C(Fecha de inicio: texto; Fecha de finalización: texto)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha de inicio | Texto | El campo para antigüedad. |
Fecha de finalización | Texto | El campo con el que se compara la Fecha de inicio. |
Salida
Número.
Ejemplo
Tiene dos campos personalizados definidos para los asuntos que especifican valores numéricos. Desea calcular la cantidad de días que han transcurrido entre las dos fechas; sin embargo, los campos personalizados se representan como valores de texto en la aplicación Reportes. Utiliza la función Texto - Días entre fechas para calcular la cantidad de días.
Devuelve la cantidad de días entre la fecha del primer campo personalizado y la fecha del segundo campo personalizado:
DATEDIFF_C(Fecha de inicio: Atributo del asunto personalizado 1; Fecha de finalización: Atributo del asunto personalizado 2)
- Si se devuelve un valor positivo, la fecha del primer campo personalizado es anterior a la fecha del segundo campo personalizado.
- Si se devuelve un valor negativo, la fecha del segundo campo personalizado es anterior a la fecha del primer campo personalizado.
- Si se devuelve 0, las fechas de los dos campos personalizados son la misma fecha.
Descripción
Extrae el mes de un campo de texto especificado y lo devuelve como un valor numérico (1 a 12).
Sintaxis
MONTH_C(Fecha: texto)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha | Texto | El campo del cual extraer el mes. |
Salida
Entero (1-12).
Ejemplo
Usted tiene un campo personalizado definido para los asuntos que especifica un valor de fecha. Desea extraer el mes del campo; sin embargo, los campos personalizados se representan como valores de texto en la aplicación Reportes. Utiliza la función Texto - Extraer mes para extraer el mes del campo.
Devuelve el mes (1-12) para cada valor en el campo personalizado:
MONTH_C(Fecha: Atributo del asunto personalizado 1)
Descripción
Extrae el año de un campo de texto especificado y lo devuelve como un valor numérico con el formato AAAA.
Sintaxis
YEAR_C(Fecha: texto)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Fecha | Texto | El campo del cual extraer el año. |
Salida
Entero.
Ejemplo
Usted tiene un campo personalizado definido para los asuntos que especifica un valor de fecha. Desea extraer el año del campo; sin embargo, los campos personalizados se representan como valores de texto en la aplicación Reportes. Utiliza la función Texto - Extraer año para extraer el año del campo.
Devuelve el año para cada valor en el campo personalizado:
YEAR_C(Fecha: Atributo del asunto personalizado 1)
Descripción
Extrae un segmento particular de datos de un campo. El segmento debe aparecer en la misma posición en cada campo.
Sintaxis
SPLIT(Texto: texto, Separador: texto, Segmento: entero )
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
Texto | Texto | El valor del cual extraer el segmento. |
Separador | Texto |
El carácter o caracteres que delimitan o indican segmentos de datos en una cadena de origen. También puede especificar una expresión regular como separador. Consulte los ejemplos Delimitadores de varios caracteres y espacios a continuación. |
Segmento | Entero |
El segmento que se extraerá. Utilice un número para especificar qué segmento se extraerá. Por ejemplo, para extraer el tercer segmento, especifique 3. |
Salida
Carácter.
Ejemplos
La función Texto - Dividir divide los datos de caracteres en segmentos en función de los separadores, como comas o espacios y devuelve un segmento especificado:
Segmentos delimitados por comas | Delimitadores de varios caracteres y espacios |
---|---|
Devuelve "Norteamérica": SPLIT("Norteamérica, Canadá, Columbia Británica", ",", 1) Devuelve "Columbia Británica" SPLIT("Norteamérica, Canadá, Columbia Británica", ",", 3) Devuelve "" (el tercer segmento está vacío): SPLIT("Norteamérica, Canadá, ,Columbia Británica", ",", 3) |
Devuelve "A": SPLIT("ABC"; "/*"; 1) Devuelve "Doe": SPLIT("Jane Doe"; "\s+ "; 2) |