Saltar al contenido principal

Domo University Videos

Domo

Cálculos de ejemplo de Beast Mode

Importante: Cuando haga referencia a esta página fuera de la Base de conocimientos, use este vínculo: http://knowledge.domo.com?cid=samplebeastmode

Introducción

Puede usar los siguientes cálculos de ejemplo para ayudarle a crear sus propios cálculos en Beast Mode.

Para obtener más información sobre las funciones de Beast Mode, consulte Adición de un cálculo en Beast Mode al diagrama.

Vídeo de aprendizaje: Creación de un campo calculado

Obtenga información sobre cómo crear un campo calculado mediante Beast Mode.

 

 

Vídeo de aprendizaje: Creación de una clasificación personalizada

Obtenga información sobre cómo crear una clasificación personalizada mediante Beast Mode.

 

Nota: Los vídeos de aprendizaje sobre productos solo están dirigidos a clientes de Domo.

Transformaciones de columna básicas

Cambiar el nombre de una columna

Puede usar un cálculo para cambiar el nombre de una columna de datos. Por ejemplo, para cambiar el nombre de una columna denominada "daily_total" por "Daily Total", cree un cálculo llamado "Total diario" con el código siguiente:

`daily_total`

Si desea sumar la columna, use el siguiente código:

sum(`daily_total`)

Después de haber guardado el cálculo, haga clic en el nuevo nombre de la columna en la lista Columnas para mostrar la columna en la tarjeta.

Cambiar los valores de una columna

Puede usar un cálculo para cambiar un valor de columna específico por otro distinto. Por ejemplo, si tuviera una columna llamada "Employee Last Name" y quisiera cambiar todas las instancias de "Janssen" de la columna por "Janssen-Soderquist", debería crear un cálculo con el siguiente código:

case when `Employee Last Name` = 'Janssen'
then 'Janssen-Soderquist'
else `Employee Last Name`
end

Filtrar los valores de una columna

Puede filtrar los valores de una columna mediante la creación de un cálculo y, a continuación, definir un filtro para incluir o excluir los campos con el valor que desee. Por ejemplo, supongamos que tiene una columna de estados de los Estados Unidos y desea filtrar por State = TX; para ello, use este código:

case when `State` = 'TX'
then 0
else 1
end

A continuación, establezca un filtro en el que la columna no incluya un 0.

Como alternativa, si tiene varios valores y desea filtrarlos:

case when `State` in ('NY', 'TX')
then 0
else 1
end

A continuación, establezca un filtro en el que la columna no incluya un 0.

Otra opción para buscar patrones es:

case
when `State` like '%TX%' then 0
when `State` like '%NY%' then 0
else 1
end

A continuación, establezca un filtro en el que la columna no incluya un 0.

Forzar un orden de clasificación

Puede indicar a Beast Mode que ordene los datos de la forma que desee.

CASE
WHEN `Development Status` = 'Requested' THEN 1
WHEN `Development Status` = 'In Development' THEN 2
WHEN `Development Status` = 'Code Complete' THEN 3
WHEN `Development Status` = 'Data Mapping' THEN 4
WHEN `Development Status` = 'Ready' THEN 5
WHEN `Development Status` = 'Deployer' THEN 6
WHEN `Development Status` = 'Forecasted' THEN 7
WHEN `Development Status` = 'Hold' THEN 8 ELSE 0
END

Ordene según la columna con valores numéricos.

Quitar números del texto

Para quitar números de los campos de texto (por ejemplo, los campos incluyen un nombre y un número de identificador y solo desea quedarse con los nombres), use un cálculo de Beast Mode como este:

SUBSTRING(`text_Field`,INSTR(`text_Field`,' ')+1)

Reemplace el texto text_Field por el nombre de la columna de la que desea quitar los números. Esta operación proporcionará la cadena desde el primer espacio hacia la derecha.

Transformaciones de fechas

GMT y la zona horaria

CASE WHEN HOUR(CURRENT_TIMESTAMP()) < 8 THEN ADDDATE(CURRENT_DATE(), -1) ELSE CURRENT_DATE() END

Reemplace 8 por el valor de la diferencia horaria GMT.

Transformar una fecha o una fecha no reconocida

Puede usar Beast Mode para transformar el formato de fecha de una columna en otra columna. En el ejemplo siguiente, el usuario desea cambiar el formato de la fecha por el formato AAAA-MM-DD:

STR_TO_DATE(

CONCAT (

            YEAR (`Date`) , ‘ – ‘

            , DAY (`Date`) , ‘ – ‘

            , MONTH (`Date`)

)

, ‘ %Y-%m-%d ’

)

Para obtener más información, consulte Caracteres especificadores de formato de fecha en Beast Mode.

Números de semana en fechas

Si tiene un rol de seguridad predeterminado de "Administrador" en Domo o un rol personalizado con el privilegio "Administrar toda la configuración de la empresa" habilitado, puede convertir los números de semana de todas las tarjetas en fechas en Configuración del administrador, como se describe en Cambiar el formato de visualización semanal. Si no es "Administrador", no tiene un rol personalizado con el privilegio "Administrar toda la configuración de la empresa" o no desea realizar este cambio de forma universal, hay varias formas de convertir los números de semana en fechas con un criterio de tarjeta por tarjeta mediante Beast Mode.

Opción 1

SUBDATE(`Date`,WEEKDAY(`Date`)-1)

Se trata de la versión más sencilla, que devuelve la fecha completa del domingo de la semana especificada. Por tanto, si el número de semana era Semana 1 de 2015, el cálculo devolvería "04-01-2015" (ya que, este año, el domingo cayó en 4 de enero). Tenga en cuenta que, aunque presente el aspecto de una fecha, Domo considerará esta información como un valor de caracteres. No puede usar el selector de detalle por fecha en este valor, ya que todas las tarjetas que usan Beast Mode siempre estarán bloqueadas para la opción semanal.

Opción 2

DATE_FORMAT(SUBDATE(`Date`,WEEKDAY(`Date`)-1),'%m/%d/%Y')

Tiene la misma función que la opción anterior, salvo que aplica un formato distinto a la fecha; de hecho, "04/01/2015" se devolvería como "04-01-2015".

Opción 3

CONCAT('Week beg: ',DATE_FORMAT(SUBDATE(`Date`,WEEKDAY(`Date`)-1),'%b-%d'))

Esta versión incluye el texto "Week beg:", por lo que solo muestra el mes y el día del domingo de esa semana. Por ejemplo: "Week beg: 4 ene".

Opción 4

CONCAT(DATE_FORMAT(SUBDATE(`Date`,WEEKDAY(`Date`)-1),'%b %d'),' - ',DATE_FORMAT(SUBDATE(`Date`,WEEKDAY(`Date`)-7),'%b %d %Y'))

En esta versión, los valores abarcan tanto meses como años. Esta versión devuelve "01 ene - 07 ene 2015". El año siempre se asocia con el final de la semana. Para la última semana de 2014, usaría "28 dic - 03 ene 2015".

Quitar las marcas de tiempo de las fechas

Si tiene un formato de fecha que incluye mes, día, hora, minuto y segundo (por ejemplo, 21-Abr-16 1:53:46), puede cambiar el formato con Beast Mode. 

La fórmula siguiente mantendrá el tipo de datos como una fecha, en caso de que sea necesario. Para ello, es necesario que el tipo de datos de Domo sea un tipo de fecha.

DATE (`DateField`)

Si el tipo de datos de Domo es una cadena, puede convertirla. En el ejemplo siguiente se muestra cómo hacerlo:

str_to_date('21-APR-16 1:53:46','%d-%b-%y’) 

En función de cuál sea el formato de cadena sin procesar, puede que sea necesario ajustar ligeramente este cálculo de Beast Mode para interpretar correctamente los valores sin procesar.

Horario de verano dinámico

Los siguientes cálculos dinámicos de Beast Mode le permiten comparar una columna de fechas con las fechas del horario de verano. Se devuelve "sí" o "no" si las fechas se encuentran dentro de un intervalo concreto del horario de verano.

Beast Mode de ejemplo

"Date" es la columna de fecha.

CASE

    WHEN `date`>= CASE

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-08'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-08'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-09'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-09'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-10'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-10'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-11'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-11'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-12'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-12'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-13'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-13'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-14'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-03-14'),'%Y-%m-%d')

END

 

    AND  `date`< CASE

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-01'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-01'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-02'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-02'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-03'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-03'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-04'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-14'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-05'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-05'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-06'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-06'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-07'),'%Y-%m-%d')) = 0 THEN STR_TO_DATE(CONCAT(YEAR(curdate()), '-11-07'),'%Y-%m-%d')

END

        THEN 'yes'

    ELSE 'no'

 

END

Horario de verano dinámico 2

A veces, necesita restar o sumar horas a una columna de fecha/hora para ajustarla a su zona horaria. Esta consulta dinámica representa cualquier cambio del horario de verano y ajusta su hora según proceda.

Tome nota de lo siguiente:

  • `dt` debe reemplazarse por la columna de fecha y hora.

  • Los intervalos de 6 y 7 horas deben cambiarse para adaptarse a las necesidades de su empresa.

  • La primera instancia de SUBDATE() engloba marzo – noviembre (horas de verano). 

  • La declaración Else engloba noviembre – marzo (horas de verano).

CASE

WHEN `dt` < (CASE 

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-01'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-01'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-02'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-02'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-03'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-03'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-04'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-04'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-05'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-05'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-06'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-06'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-07'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-11-07'),'%Y-%m-%d')

END)  AND `dt` >= (CASE 

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-08'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-08'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-09'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-09'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-10'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-10'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-11'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-11'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-12'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-12'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-13'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-13'),'%Y-%m-%d')

WHEN DAYOFWEEK(STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-14'),'%Y-%m-%d')) = 1 THEN STR_TO_DATE(CONCAT(YEAR(`dt`), '-03-14'),'%Y-%m-%d')

END) THEN SUBDATE(`dt`, INTERVAL 6 HOUR)

ELSE SUBDATE(`dt`, INTERVAL 7 HOUR)

END

Diferencia de fecha para días laborables

Si necesita calcular la diferencia de fecha entre dos fechas para los días de la semana/días laborables, puede hacerlo en Beast Mode o en DataFlow de SQL (Lenguaje de consulta estructurado) mediante una consulta. Para obtener más información, consulte Diferencia de fecha para días laborables.

Mes y día del calendario

Date_Format(`MyDateColumn`,'%m/%d')

Año del calendario

Year(`MyDateColumn`)

Año actual

case when Year(`MyDateColumn`) = year(current_date()) then 'True' else 'False' end

Últimos 12 meses

case
when
year(`MyDateColumn`) = year(current_date()) - 1
and month(current_date()) <= month(`MyDateColumn`)
then
'Yes'

when
month(`MyDateColumn`) <= month(current_date())
and year(`MyDateColumn`) = year(current_date())
then
'Yes'
else 'No'
end

Filtro Últimos 12 meses

Use el siguiente código para crear un cálculo a fin de generar una columna con un valor de cadena "Sí" donde el valor de fecha correspondiente es mayor que o igual que el primer día del mes del día del calendario actual del año anterior, y un valor "No" cuando no sea así.

CASE WHEN `MyDateColumn` >= STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE() - 1), MONTH(CURRENT_DATE()), '01'), '%Y%m%d') THEN 'Yes' ELSE 'No' END

Para excluir el mes actual, agregue AND `MyDateColumn` < DATE_FORMAT(CURRENT_DATE(), '%Y%m01')
CASE WHEN `MyDateColumn` >= STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE() - 1), MONTH(CURRENT_DATE()), '01'), '%Y%m%d')
AND `MyDateColumn` < DATE_FORMAT(CURRENT_DATE(), '%Y%m01')
THEN 'Yes' ELSE 'No' END

Filtro El año pasado

Use el siguiente código para crear un cálculo a fin de generar una columna con un valor de cadena "Sí" donde el valor de fecha correspondiente es mayor que o igual que el día del calendario actual del año anterior, y un valor "No" cuando no sea así.

CASE WHEN `MyDateColumn` >= STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE() - 1), MONTH(CURRENT_DATE()), DAY(CURRENT_DATE())), '%Y%m%d') THEN 'Yes' ELSE 'No' END

Para excluir la fecha actual, agregue AND `MyDateColumn` < CURRENT_DATE()

CASE WHEN `MyDateColumn` >= STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE() - 1), MONTH(CURRENT_DATE()), DAY(CURRENT_DATE())), '%Y%m%d')
AND `MyDateColumn` < CURRENT_DATE()
THEN 'Yes' ELSE 'No' END

Otro filtro El año pasado

Use el siguiente código para crear un cálculo a fin de determinar si agregar un cero "0" antes del mes, de tal manera que se represente como un mes de dos dígitos, que ayuda a establecer la fecha.

CASE WHEN MONTH(CURRENT_DATE()) < 10 THEN CASE WHEN `MyDateColumn` >= STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE())-1, '0', MONTH(CURRENT_DATE()), '01'), '%Y%m%d') THEN 'Yes' ELSE 'No' END

13 meses rotativos

CASE WHEN PERIOD_DIFF(DATE_FORMAT(STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), MONTH(CURRENT_DATE())), '%Y%m%d'), '%Y%m'), DATE_FORMAT (`Month`, '%Y%m')) > 14
THEN 'No'
ELSE 'Yes'
END

Este trimestre fiscal

Use el siguiente código para crear un cálculo que devuelva "Sí" o "No" en función de si el valor se engloba dentro del trimestre fiscal actual:

CASE WHEN `FiscalQuarter` = (CASE WHEN MONTH(CURRENT_DATE()) >= 2 AND MONTH(CURRENT_DATE()) <=4 then 1
ELSE CASE WHEN MONTH(CURRENT_DATE()) >= 5 AND MONTH(CURRENT_DATE()) <=7 then 2
ELSE CASE WHEN MONTH(CURRENT_DATE()) >= 8 AND MONTH(CURRENT_DATE()) <=10 then 3
ELSE 4 END
END
END)
THEN 'Yes' ELSE 'No'
END

Este año fiscal

Use el siguiente código para crear un cálculo que devuelva "Sí" o "No" en función de si el valor se engloba dentro del año fiscal actual:

CASE WHEN `FiscalYear` = (CASE WHEN MONTH(CURRENT_DATE())<2 THEN YEAR(CURRENT_DATE())-1 ELSE YEAR(CURRENT_DATE()) END) THEN 'Yes' ELSE 'No' END

Calendario fiscal

Use el código siguiente para crear un cálculo a fin de generar una columna "Adjusted Date" que asigne la fecha del año actual y la fecha del año anterior al mismo valor:

Date_Format(`Adjusted Date`, '%b %d')

A continuación, cree un cálculo para filtrar fechas:

CASE WHEN DateDiff(AddDate(Current_Date(), -1), `Adjusted Date`) < 30 AND DateDiff(Current_Date(), `Adjusted Date`) > 0 THEN 'Y' ELSE 'N' END

La semana empieza el día X

Use el siguiente código para crear un cálculo que totalice los datos semanalmente. Para cambiar el día de inicio de la semana, agregue un valor entre 1 y 6 en lugar de la X. Tenga en cuenta que WEEKDAY() indexa los días de la semana de forma distinta a DAYOFWEEK(). Puede especificar formato adicional mediante DATE_FORMAT().

SUBDATE(`Date`, DAYOFWEEK(`Date`)+1)

Crear diagramas por día de la semana

Vea el vídeo siguiente para obtener información sobre cómo mostrar los datos para diferentes días de la semana:

 

 

Nota: Los vídeos de aprendizaje sobre productos solo están dirigidos a clientes de Domo.

Cuentas por cobrar/Cuentas vencidas por cobrar

Use el siguiente código para crear un cálculo para las cuentas por cobrar:

CASE
when DATEDIFF(CURRENT_DATE(),`TxnDate`) < 31 then ' 30 Days'
when DATEDIFF(CURRENT_DATE(),`TxnDate`) < 61 then ' 60 Days'
when DATEDIFF(CURRENT_DATE(),`TxnDate`) < 91 then ' 90 Days'
when DATEDIFF(CURRENT_DATE(),`TxnDate`) < 121 then '120 Days'
when DATEDIFF(CURRENT_DATE(),`TxnDate`) > 120 then 'Over 120'
end

Transformaciones de período contra período

En esta sección se enumeran una serie de cálculos de período contra período que puede probar en Beast Mode. Muchos de estos mismos cálculos también se pueden realizar con la funcionalidad de los diagramas de período contra período

Vídeo de aprendizaje: Período contra período con Beast Mode

 

 

Nota: Los vídeos de aprendizaje sobre productos solo están dirigidos a clientes de Domo.

Creación de un diagrama de período contra período

Puede crear un diagrama de período contra período en Domo mediante un cálculo de Beast Mode para el eje X (fecha) y otro cálculo de Beast Mode para las series. También puede crear un cálculo de Beast Mode para limitar los intervalos de fechas mostrados en la tarjeta.

Empiece a crear sus propios cálculos de Beast Mode de período contra período mediante los ejemplos proporcionados a continuación. En los ejemplos siguientes se presenta una demostración de cómo crear un diagrama de año contra año.

Paso 1: Crear el cálculo para el eje X (fecha) (OBLIGATORIO)

En este paso, se deben proyectar las fechas en el período actual a partir de períodos anteriores, como los años. De esta forma, los datos de períodos diferentes aparecerán en el mismo intervalo en el eje X. Este cálculo de Beast Mode reemplaza el año de un valor de fecha por el año actual.

STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field`, '%m-%d') ), '%Y-%m-%d’)

Paso 2: Crear el cálculo para las series (año) (OBLIGATORIO)

A continuación, debe crear una serie que represente los datos de cada período. Este cálculo de Beast Mode permite crear una serie que representa los datos de cada año.

YEAR(`Date_Field`)

Paso 3: Crear cálculos para filtros (OPCIONAL)

Si desea ver un marco de tiempo aparte de un año completo (trimestre contra trimestre, mes contra mes, etc.), puede crear un filtro que permita obtener solo el intervalo de fechas o el período que le interesa.

Existen dos métodos distintos para crear cálculos de Beast Mode para los filtros. El primer método permite crear un filtro para un intervalo de fechas específico. El segundo método permite crear un filtro para un número específico de días y meses anteriores, entre otros.

Intervalo de fechas específico

Use este cálculo de Beast Mode para crear un filtro para un intervalo de fechas específico.

CASE 

WHEN CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field `, '%m-%d') ) >= '2015-07-01' AND CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field `, '%m-%d') ) <= '2015-11-30' THEN 'TRUE' 

    ELSE 'FALSE'

END

Últimos "X" días, meses, etc.

Use este cálculo de Beast Mode para crear un filtro para un número determinado de períodos anteriores. Reemplace “3 MONTH” por cualquier intervalo que le interese, como “1 DAY”, “4 WEEK”, etc.  Solo debe usar el número y la versión en singular de la unidad.

CASE 

WHEN STR_TO_DATE(CONCAT(YEAR(CURRENT_DATE()), '-', DATE_FORMAT(`Date_Field `, '%m-%d') ), '%Y-%m-%d') >= DATE_SUB(CURRENT_DATE(), INTERVAL 3 MONTH)  THEN 'TRUE' 

    ELSE 'FALSE'

END

Puede usar variaciones de los filtros anteriores para limitar el intervalo de la manera más conveniente para usted y su audiencia.

Cambio de semana contra semana

Use el siguiente código para crear un cálculo que represente un cambio de semana contra semana. En el ejemplo siguiente se incluyen las 4 semanas anteriores (alineadas según los días) y 52 semanas anteriores (alineadas según los días). Cambie los valores por los períodos de tiempo que desee.

El eje X se corresponde con las fechas; tiene que ser una "Fecha común":

case
when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < 28 and DateDiff(Current_Date(), `MyDateColumn`) > 0 then Date_Format(`MyDateColumn`, '%b %e')

when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < (28 + 28) and DateDiff(Current_Date(), `MyDateColumn`) > 28 then Date_Format(AddDate(`MyDateColumn`,28), '%b %e')

when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < 28 + (52 * 7) and DateDiff(Current_Date(), `MyDateColumn`) > (52 * 7) then Date_Format(AddDate(`MyDateColumn`,52 * 7), '%b %e')

end

Filtrar por "Últimos 28 días":

case
when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < 28 and DateDiff(Current_Date(), `MyDateColumn`) > 0 then 'Yes'

when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < (28 + 28) and DateDiff(Current_Date(), `MyDateColumn`) > 28 then 'Yes'

when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < 28 + (52 * 7) and DateDiff(Current_Date(), `MyDateColumn`) > (52 * 7) then 'Yes'
else 'No'
end

Elija la métrica (en este ejemplo, "Visitas") y, a continuación, cree una columna llamada "Series":

case
when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < 28 and DateDiff(Current_Date(), `MyDateColumn`) > 0 then 'Last 28 Days'

when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < (28 + 28) and DateDiff(Current_Date(), `MyDateColumn`) > 28 then '4 Weeks Prior'

when when DateDiff(AddDate(Current_Date(), -1), `MyDateColumn`) < 28 + (52 * 7) and DateDiff(Current_Date(), `MyDateColumn`) > (52 * 7) then '52 Weeks Prior'
end

Cálculo del cambio porcentual del año anterior con respecto al actual

Supongamos que tiene una tarjeta que muestra los últimos 24 meses, agrupados por mes. El año se ha establecido como la serie. En el número de resumen desea mostrar el cambio porcentual desde enero hasta el mes actual del año anterior en comparación con el período que abarca desde enero hasta el mes en curso del año actual. Para conseguir esto, puede crear el siguiente cálculo de Beast Mode:

(SUM(CASE WHEN YEAR('Date') = YEAR('NOW') THEN 'Total Sales' ELSE 0 END)-SUM(CASE WHEN YEAR('Date')= YEAR(DATE_SUB('NOW', INTERVAL 1 YEAR))AND month('Date') <= month('NOW') THEN 'Total Sales' ELSE 0 END))/

SUM(CASE WHEN YEAR('Date')= YEAR(DATE_SUB('NOW', INTERVAL 1 YEAR)) AND month('Date') <= month('NOW') THEN 'Total Sales' ELSE 0 END)

Este cálculo resultaría útil como un número de resumen en una tarjeta o como el valor de una tarjeta de indicador de valor único. Si desea crear un diagrama del cambio porcentual con el paso del tiempo, siga las instrucciones de los cálculos avanzados de período contra período especificados en la sección anterior y, a continuación, cree un cálculo de Beast Mode para obtener el cambio porcentual de los campos creados para el valor del año anterior y el valor del año actual mediante esta fórmula:

(Valor de este año – Valor del año pasado)  / Valor del año pasado

Variación entre el año actual y el año anterior

Use el siguiente código para crear un cálculo para la variación del año actual con respecto al anterior:

(
SUM(CASE WHEN YEAR(`MyDateColumn`) = YEAR(CURRENT_DATE()) THEN `Amount` ELSE 0 END)
- SUM(CASE WHEN YEAR(`MyDateColumn`) = YEAR(CURRENT_DATE()) - 1 THEN `Amount` ELSE 0 END)
)

Porcentaje de variación ((Año actual - Año pasado) / Año pasado)

Use el siguiente código para crear un cálculo del porcentaje de variación ((Año actual - Año pasado) / Año pasado):

(
(SUM(CASE WHEN YEAR(`MyDateColumn`) = YEAR(CURRENT_DATE()) THEN `Amount` ELSE 0 END)
- SUM(CASE WHEN YEAR(`MyDateColumn`) = YEAR(CURRENT_DATE()) - 1 THEN `Amount` ELSE 0 END)
)
/ NULLIF(SUM(CASE WHEN YEAR(`MyDateColumn`) = YEAR(CURRENT_DATE()) - 1 THEN `Amount` ELSE 0 END), 0)
)

Variación de año a la fecha

Supongamos que tiene un DataSet con un recuento de empleados por tienda y por mes. ¿Cómo compararía el recuento de empleados del mes actual con el recuento de final de año?

Suponiendo que a la tarjeta se le aplica el filtro del año actual, podría crear los siguientes cálculos de Beast Mode:

Recuento de empleados de este mes:

COUNT(DISTINCT CASE WHEN YEAR(DateColumn) = YEAR(CURRENT_DATE()) AND MONTH(DateColumn) = MONTH(CURRENT_DATE()) THEN `Employee ID` END)

Recuento de empleados de este año:

COUNT(DISTINCT'Employee ID')

Recuento de empleados de este año -  Recuento de empleados de este mes (variación de año a la fecha):

COUNT(DISTINCT `Employee Id` - COUNT(DISTINCT CASE WHEN YEAR(DateColumn) = YEAR(CURRENT_DATE()) AND MONTH(DateColumn) = MONTH(CURRENT_DATE()) THEN `Employee ID` END)

Si necesita crear una tendencia de estos datos con el paso del tiempo, esta solución requerirá configurar algún DataFlow para que resuma estos datos a nivel mensual con una referencia a año a la fecha para cada mes. 

Formato de transformaciones

Estos cálculos de Beast Mode se pueden utilizar para aplicar un formato especial a varios elementos de Domo, como tarjetas, tablas, números de resumen, etc.

Estilizar un valor en una tabla

Use un cálculo para estilizar un valor de celda en una tabla. Por ejemplo, para estilizar una celda de una columna llamada "salesperson" cuando el valor es igual a "Bob", cree un cálculo denominado "Vendedor" y, a continuación, use el código siguiente:

CASE `salesperson`
when 'Bob' then CONCAT('<span style="color:red">',`salesperson`,'</span>')
else `salesperson`
end

Incluir una dirección URL en una tarjeta de tabla

Use el siguiente cálculo de Beast Mode para insertar una dirección URL en una tarjeta de tabla:

CONCAT(`TopicName`, ': ', '<a href="', `Link`, '" target="_blank">', `Link`, '</a>')

"TopicName" hace referencia al campo del DataSet con los nombres de tema y "Link" hace referencia al campo que contiene las direcciones URL. Las direcciones URL deben empezar con https://.

Formato condicional para una tabla estándar

En los ejemplos siguientes de Beast Mode se muestra cómo crear formato condicional en una tabla estándar, que puede usar en instancias en las que necesita una vista de tabla de ruta de sondeo modificada. Estas opciones no están disponibles actualmente en las tablas Sumo.

Este formato se aplica con la creación de una cadena HTML que contiene un elemento DIV en el que el color de fondo varía en función de las condiciones definidas por el usuario. 

Fondo verde (#bbe491)
CONCAT('<div style="background-color:#bbe491; width: 100%; height:100%; margin:-20px; padding:20px"><a href="#">', 'Formato condicional verde', '</a></div>')

Fondo amarillo (#ccf84)
CONCAT('<div style="background-color:#fccf84; width: 100%; height:100%; margin:-20px; padding:20px"><a href="#">', 'Formato condicional amarillo', '</a></div>')

Fondo rojo
CONCAT('<div style="background-color:#fcbcb7; width: 100%; height:100%; margin:-20px; padding:20px"><a href="#">', 'Formato condicional rojo', '</a></div>')

Nota: El elemento <a> con una referencia a # impide que el usuario sondee esa columna, ya que crearía un filtro para la cadena HTML completa.  

Beast Mode de ejemplo

CASE

WHEN `CHANGE` > 0 THEN CONCAT('<div style="background-color:#bbe491; width: 100%; height:100%; margin:-20px; padding:20px"><a href="#">', `CHANGE`, '</a></div>')

WHEN IFNULL(`CHANGE`, 0) = 0 THEN CONCAT('<div style="background-color:#fccf84; width: 100%; height:100%; margin:-20px; padding:20px"><a href="#">', `CHANGE`, '</a></div>')

WHEN `CHANGE` < 0 THEN CONCAT('<div style="background-color:#fcbcb7; width: 100%; height:100%; margin:-20px; padding:20px"><a href="#">', `CHANGE`, '</a></div>')

END

Tabla de ejemplo con un cálculo de Beast Mode aplicado

Nota: Tenga en cuenta que el valor que este Beast Mode devuelve es una CADENA. Todas las totalizaciones deben realizarse en Beast Mode, ya que estas se deshabilitarán en el momento de crear las tarjetas.  

Enfoque alternativo

Si solo desea resaltar la parte del bloque de texto y no la celda completa, use el siguiente código:

<span style="background-color:#ff666;display:block"><a href="#">Su texto va aquí</a></span>

Si desea resaltar solo el texto y no el bloque de visualización completo, use este código:

  <span style="color:#ff666;"><a href="#">Su texto va aquí</a></span>

Tenga en cuenta que la etiqueta <a> se ha agregado para solucionar el problema de sondeo, y el estilo necesita tener "color" para abordar solo el color de la fuente.

Cambios del número de resumen

Puede usar Beast Mode para cambiar el tamaño de la fuente de un número de resumen, personalizar otros aspectos de la apariencia de un número de resumen o incluso incluir varios números de resumen en la misma tarjeta. 

Importante: Los cambios tratados en esta sección no son compatibles en Domo Mobile o al realizar exportaciones a PowerPoint. En estos casos, aparecerá el código HTML en lugar de los números de resumen. 

Modificación del tamaño de la fuente de un número de resumen

Para cambiar el tamaño de la fuente de un número de resumen, debería ajustar el cálculo de Beast Mode en una función CONCAT en la que se debe especificar el tamaño de la fuente con las etiquetasdiv, como en el caso siguiente: 

CONCAT(
'<div style="font-size:20px">'
,CONCAT('2017',' ','Booked',' ','Rev',' ','$',round(sum(`Grouped booked Rev`)/1000000,2),'M',' ','v.',' ',' ','Budget',' ','Rev',' ','$',round(sum(`2017 Budget Revenue`)/1000000,2),'M')
,'</div>'
)

Creación de número de resumen personalizado 

La creación de un número de resumen personalizado puede proporcionar información detallada rápida sobre qué es lo más importante en una tarjeta. Con la adición de varias dimensiones, colores o incluso símbolos, puede crear un número de resumen personalizado que resalte aquello que los usuarios desean ver primero.

Para realizar esto, cree un cálculo de Beast Mode mediante la función concat(); esto permite combinar varias cadenas en una sola. Tenga en cuenta que esto elude las opciones de formato, como los separadores de miles, por lo que deberán integrarse en la declaración concat().

Consulte los cálculos de ejemplo siguientes y sus resultados correspondientes:

Ejemplo 1

Use este cálculo de Beast Mode:

CONCAT(Sum(CASE when `Status` <> ’New' then 1 END),' Total, ',sum(case when `Date` >= date_sub(curdate(),INTERVAL 1 MONTH) then 1 else 0 end),' In Last 30 Days’)

Como resultado, se mostrará un número de resumen como el del siguiente diagrama. (Las partes del cálculo de Beast Mode están codificadas con colores para establecer una coincidencia con las partes del número de resumen a las que corresponden).

 

custom_summary_number1.png

Ejemplo 2

Use este cálculo de Beast Mode:

CONCAT('$',round(SUM(Case when (`Date`<= curdate() and `Status` = 'Accepted' and `Account Status` = 'Active') then `Amount` END)/1000000,2),’m – ‘,(case when `Value` > 0 then 'm - ? ' else 'm - ? ' end),round(round(SUM(Case when (`Date`<= curdate() and `Status` = 'Accepted' and `Account Status` = 'Active') then `Amount` END)/SUM(Case when (`Date`<= date_sub(curdate(), INTERVAL 1 MONTH) and `Status` = 'Accepted' and `Account Status` = 'Active') then `Amount` END)-1,2)*100,0),'% From 30 Days Ago'

Como resultado, se mostrará un número de resumen como el del siguiente diagrama. (Las partes del cálculo de Beast Mode están codificadas con colores para establecer una coincidencia con las partes del número de resumen a las que corresponden).


custom_summary_number2.png

Ejemplo 3

Incluso puede agregar HTML a la función concat() para incluir imágenes, código de color y otros estilos. Para acceder a una lista completa del código HTML compatible, consulte Restricciones de tabla HTML.

Use este cálculo de Beast Mode:

CONCAT('<a style="color: #f00">',SUM(CASE WHEN `Color` = 'Red' THEN `Value` END),'</a>',' Total Red | ','<a style="color: #00c200">',SUM(CASE WHEN `Color` = 'Green' THEN `Value` END),'</a>',' Total Green | ','<a style="color: #ff0">',SUM(CASE WHEN `Color` = 'Yellow' THEN `Value` END),'</a>',' Total Yellow')

Como resultado, se mostrará un número de resumen como el del siguiente diagrama. (Las partes del cálculo de Beast Mode están codificadas con colores para establecer una coincidencia con las partes del número de resumen a las que corresponden).

custom_summary_number3.png

Notas: 

  • No verá los efectos de la codificación HTML mientras se encuentra en la vista de edición de la tarjeta. Debe guardar y ver la tarjeta en la vista de detalles o de página para ver el formato.

  • Si usa el complemento de PowerPoint o exporta una tarjeta que contiene HTML, se muestra como el cálculo de Beast Mode subyacente en lugar de como el resultado que se crea.

Para obtener más información sobre los números de resumen, consulte Configuración del número de resumen del diagrama.

Creación de varios números de resumen

Puede usar Beast Mode para mostrar varias estadísticas de resumen de tarjeta. Esto puede proporcionar a los lectores de la tarjeta una idea mejor de la historia que la tarjeta intenta contarles.

La función fundamental que deberá aplicar en el cálculo de Beast Mode es concat(). Puede agregar texto y cualquier combinación de métricas dentro de la declaración concat().

Nota: Al crear un número de resumen de esta forma, se eluden las opciones de formato estándar, por lo que el formato debe integrarse en la declaración concat().

Por ejemplo:

CONCAT(calculation, ‘Text’, [etc])

Ejemplo

En el siguiente cálculo de Beast Mode se usa la función CONCAT para crear un número de resumen en el que se muestra el número de registros en el que el valor del campo STATUS ES "COMPLETE" en comparación con el número total de registros:

CONCAT(SUM(CASE WHEN STATUS = 'COMPLETE' THEN `Amount` ELSE 0 END), ' out of ', 'SUM(`Amount`))

Si hubiera 65 registros completados y 80 registros totales, el resultado de la función anterior sería "65 de 80".

Para obtener más información sobre los números de resumen, consulte Configuración del número de resumen del diagrama.

Mostrar diferentes imágenes en una tabla en función de los valores cambiantes

Como puede usar codificación HTML en las tarjetas de tabla, puede usar una declaración Case de Beast Mode para insertar una imagen basada en los valores de datos. 

Por ejemplo, puede usar el siguiente cálculo de Beast Mode para mostrar una imagen distinta en una tabla en función de si el valor "Profit" es positivo o negativo.

case when `Profit`<0 then

CONCAT('<div style="text-align:center"><img alt="DOWN" height="20px" src="http://www.clipartkid.com/images/27/download-public-domain-ihtHTQ-clipart.png">','</div>')

else

CONCAT('<div style="text-align:center"><img alt="UP" height="20px" src="http://www.clipartkid.com/images/239/up-arrow-green-clip-art-clip-arts-clip-art-clipartlogo-com-Cy8l...>')

end

Para la sección "src", solo tiene que insertar la dirección URL de la imagen que desea usar.

Varias transformaciones

Quitar valores NULOS de los diagramas de líneas

Use el código siguiente para crear un cálculo para filtrar valores NULOS en diagramas de líneas (de esta forma, la línea no va hasta cero).

SUM(CASE WHEN `Number of SQLs` != 0 THEN`Number of SQLs` END)

SUM() está fuera de la declaración CASE como una práctica recomendada. Si `Number of SQLs` = 0, devolverá un valor NULO.

Tiempo promedio en segundos

Use el siguiente código para determinar el tiempo promedio que tarda algo. Se devolverá el tiempo promedio en segundos, pero puede dividir el resultado para obtener días, horas o minutos.

-- Días -- 

AVG(DATE(`end_date`)-DATE(`start_date`)) * 86400

+

-- Horas --

AVG(HOUR(`end_date`)-HOUR(`start_date`)) * 3600

+

-- Minutos --

AVG(MINUTE(`end_date`)-MINUTE(`start_date`)) * 60

+

-- Segundos --

AVG(SECOND(`end_date`)-SECOND(`start_date`))

 

Filtrar valores NULOS

Si intenta SUMAR los valores de una columna con valores NULOS, necesita convertir dichos valores a cero mediante la función IFNULL.

Por ejemplo:

IFNULL(`col`,0)

Por tanto, supongamos que tiene una columna "Categoría" con los valores "A", "B" y "C", además de una columna "Cantidad" con los valores "20", "10" y una celda vacía (cuyo valor es NULO). Al SUMAR la columna Cantidad, el cálculo IFNULL convierte el valor NULO a 0 y luego aplica la SUMA de la forma habitual.

Traducción de hexadecimal a decimal

Use el siguiente cálculo de Beast Mode para traducir valores hexadecimales a decimales:

(CASE
when RIGHT(LEFT(`_id_$oid`,1),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,1),1)*POWER(16,7)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,1),1)) 9)*POWER(16,7)
END)

(CASE
when RIGHT(LEFT(`_id_$oid`,2),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,2),1)*POWER(16,6)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,2),1)) 9)*POWER(16,6)
END)

(CASE
when RIGHT(LEFT(`_id_$oid`,3),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,3),1)*POWER(16,5)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,3),1)) 9)*POWER(16,5)
END)

(CASE
when RIGHT(LEFT(`_id_$oid`,4),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,4),1)*POWER(16,4)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,4),1)) 9)*POWER(16,4)
END)

(CASE
when RIGHT(LEFT(`_id_$oid`,5),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,5),1)*POWER(16,3)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,5),1)) 9)*POWER(16,3)
END)

(CASE
when RIGHT(LEFT(`_id_$oid`,6),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,6),1)*POWER(16,2)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,6),1)) 9)*POWER(16,2)
END)

(CASE
when RIGHT(LEFT(`_id_$oid`,7),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,7),1)*POWER(16,1)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,7),1)) 9)*POWER(16,1)
END)

(CASE
when RIGHT(LEFT(`_id_$oid`,8),1) in ('1','2','3','4','5','6','7','8','9','0')
then RIGHT(LEFT(`_id_$oid`,8),1)*POWER(16,0)
else (INSTR('abcdefghijklmnopqrstuvwxyz',RIGHT(LEFT(`_id_$oid`,8),1)) 9)*POWER(16,0)
END)

Vínculos a páginas en Analyzer o vinculación profunda con filtros

Mediante un cálculo de Beast Mode, puede crear vínculos a otras páginas en tarjetas de tabla y aplicar filtros de Analyzer según lo que haya establecido en Beast Mode. Se trata de una característica eficaz si desea guiar a un usuario en una historia de datos que engloba tarjetas que no se encuentran en la ruta de sondeo directa de la tarjeta actual o si desea que los usuarios puedan aplicar filtros de Analyzer rápidamente a cualquier página desde una tarjeta de tabla central o principal.

Para crear uno de estos vínculos, copie el código siguiente en un cálculo de Beast Mode:

CONCAT('<a href="https://customer.domo.com/page/##########'

,'?pfilters=[{%22column%22:%22ColumnName%22,%22dataSourceId%22:%22DataSet ID%22,%22dataType%22:%22string%22,%22operand%22:%22OperandType%22,%22values%22:[%22'

,`Owner.Name`

,'%22]}]" target=%22_blank%22>'

,’Link Display Name

,'</a>'

)

Para crear un vínculo profundo personalizado, reemplace las partes en negrita anteriores por lo siguiente:

https://customer.domo.com/page/########## Reemplace este valor con la dirección URL completa de la página de Domo a la que desea remitir a un usuario cuando este haga clic en el vínculo.
Nombre de columna Reemplace este valor con el nombre de la columna que desea filtrar.

 

Id. de DataSet

Reemplace este valor con el identificador del DataSet que desea filtrar. Para localizar esto, en Data Center, vaya al DataSet. Encontrará el identificador de la dirección URL.

DataSet ID URL.png

Cadena Reemplace este valor con el tipo de datos de la columna que va a filtrar. Puede ser un tipo de cadena, valor o fecha.
Tipo de operando Reemplace con el tipo de operando con el que desea filtrar. Las opciones incluyen IN o NOT_IN.
Consejo: Al usar NOT_IN, se debe incluir el guión bajo. Como el operando se va a incluir en la dirección URL, no puede haber un espacio. 

 

 

 

Owner.Name

Reemplace este valor con la columna que contiene los valores que desea filtrar. Por ejemplo, al usar valores Owner.Name , cuando hago clic en el vínculo profundo de la primera fila, se devuelven los datos de Bob Smith. Al elegir el vínculo de la fila 3, se devolverán los datos de Jeff Clark.

Deep Link Table.png

target=%22_blank%22 (Opcional) Abre el vínculo en una nueva pestaña del navegador. Puede quitar esta parte del cálculo de Beast Mode si prefiere que el vínculo se abra en la misma pestaña del navegador. 
Nombre del vínculo para mostrar El vínculo muestra texto. En lugar de presentar una dirección URL completa, puede especificar cómo se mostrará el vínculo.

Agregar varios filtros

Para agregar más de un filtro, copie la parte del filtro completa siguiente:

,'?pfilters=[{%22column%22:%22ColumnName%22,%22dataSourceId%22:%DataSet ID%22,%22dataType%22:%22string%22,%22operand%22:%22OperandType%22,%22values%22:[%22'

,`Owner.Name2`

 

Inserte el filtro tantas veces como necesite.

 

CONCAT('<a href="https://customer.domo.com/page/##########'

,'?pfilters=[{%22column%22:%22Owner.Name%22,%22dataSourceId%22:%DataSet ID%22,%22dataType%22:%22string%22,%22operand%22:%22OperandType%22,%22values%22:[%22'

,`Owner.Name`

,'?pfilters=[{%22column%22:%22Owner.Name%22,%22dataSourceId%22:%DataSet ID%22,%22dataType%22:%22string%22,%22operand%22:%22OperandType%22,%22values%22:[%22'

,`Owner.Name2`

,'%22]}]" target=%22_blank%22>'

,`Owner.Name`

,'</a>'

)

 

Para obtener más información sobre el código HTML en Domo, consulte Adición de diagramas, vínculos e imágenes a las tarjetas de tabla mediante Beast Mode

Cálculo de la barra X

Supongamos que intenta crear un diagrama de control y que necesita empezar con el cálculo de la barra X. Por ejemplo, puede tener varias transacciones de inventario que se han producido durante un día a la semana a lo largo de un período particular. El cálculo de la barra X sería la suma de las transacciones durante el período dividida por el número de transacciones, por clase de inventario.

Por ejemplo:

1 nov. Transacciones de la clase de inventario 1: 1200+1400+1000+800. Cálculo: 4400/4 = 1100

2 nov. Transacciones de la clase de inventario 1: 1000+700+1300. Cálculo: 3000/3 = 1000

3 nov. Transacciones de la clase de inventario 1: 1200+500+500+1000. Cálculo: 3200/4 = 800

De esta forma, los puntos para representar la clase de inventario 1 serían 1100, 1000 y 800.

Puede hacer esto agrupando los datos en función de un detalle por fecha seleccionado. Si establece el detalle por fecha en la tarjeta para que coincida con el período de subgrupo ("por día", por ejemplo) y, a continuación, elige "Promedio" como la opción de totalización para el campo de transacciones,  automáticamente se calculará el promedio de las transacciones en función del número de registros englobado en cada grupo. Si, en su lugar, decide cambiar el detalle por fecha a semanal, los cálculos continuarán funcionando porque el cálculo del promedio se realizará para el número de registros de cada semana en lugar de por cada día.

Si desea calcular el promedio en Beast Mode, ajuste el campo con la función AVG:

AVG(`Transactions`)

A continuación, el detalle por fecha seguirá aplicándose al cálculo de Beast Mode.

Búsqueda del porcentaje de 2 columnas

Puede calcular el porcentaje de 2 columnas al dividir una por la otra. Por ejemplo, supongamos que tiene una columna llamada "Ventas" y otra denominada "Cuota" y quiere obtener el porcentaje de la cuota conseguida. Solo tiene que escribir el siguiente cálculo de Beast Mode:

`Ventas`/`Cuota`

Cálculo de una serie en función de un subconjunto de valores Y

Supongamos que tiene un diagrama de líneas que mide el porcentaje de agentes instalados en una serie de estaciones de trabajo (portátiles y equipos de escritorio). Solo uno de los agentes está instalado únicamente en portátiles. ¿Qué sucede si desea calcular el porcentaje de agentes instalados solo en portátiles?

Puede hacer esto con un cálculo en Beast Mode que comparará todos los agentes instalados en ambos tipos de estaciones de trabajo frente a los agentes instalados solo en los portátiles:

(
count(case when `Device Type`='Laptop' then `OpenDNS` end)
/
count(case when `Device Type`='Laptop' then `System Name` end)
)*100

Tenga en cuenta que el cálculo se usa para obtener un coeficiente que posteriormente se multiplica por 100 para obtener un porcentaje. Puede aplicar cualquier cálculo de Beast Mode compatible de esta forma en función de las métricas específicas que necesite.

Cálculo del promedio de los puntos de datos de X

Existe una forma de utilizar los cálculos de Beast Mode para obtener el valor promedio de una cantidad establecida de los puntos de datos más recientes de un DataSet determinado. Supongamos que desea que en una tarjeta se muestre automáticamente una métrica promedio específica de los datos recientes.

Use el siguiente cálculo de Beast Mode para calcular el valor promedio de una métrica durante los últimos seis meses:

(CASE
when `Datefield` <= DATE_SUB(`Datefield`, interval 6 month) AND `Date` >= CURDATE()
then AVG('metric')
else 0
END)

Ventajas de los campos de formulario web

Supongamos que cada mes necesita actualizar muchas tarjetas para reflejar el mes cerrado más reciente o el mes actual en el filtro. Desea optimizar el filtro como un punto de referencia que se pueda actualizar una vez y desencadenar todas las tarjetas para que usen el mismo mes o año, para que cada tarjeta no se tenga que actualizar individualmente. Por ejemplo: Mes cerrado = sep o 9, Mes actual = oct o 10, Año cerrado = 2016. Puede hacer esto con las siguientes acciones:

  1. Cree un formulario web con las referencias de fechas, que pretende actualizar manualmente para especificar el número de mes actual y el año según proceda.

  2. Una el formulario web con los datos mediante un DataFlow.

  3. Cree un cálculo de Beast Mode para beneficiarse de los campos de formulario web.
    Por ejemplo, si tiene una columna llamada "Closed Month" que tiene un valor de 9, este cálculo de Beast Mode funcionaría:

    CASE 

    WHEN MONTH(`Date`) = `Closed Month` THEN "Closed Month"

    ELSE "Other"

    END

  4. Use este cálculo de Beast Mode en los filtros. Establezca el filtro en "Closed Month". A continuación, siempre que actualice el valor del formulario web, los nuevos datos se visualizarán en todas las tarjetas que usan dicho filtro.

Otra opción que no requerirá ninguna intervención manual cada mes sería usar un DataFlow para calcular MAX(`Date`) y agregar una columna que identifica todos los datos del mismo mes que MAX(`Date`). A continuación, filtre dicho campo en las tarjetas si solo desea que la tarjeta use el mes más reciente.