Funciones lógicas
En este artículo se presentan las funciones lógicas y sus usos en Tableau. También se muestra cómo crear un cálculo lógico mediante un ejemplo.
Por qué usar cálculos lógicos
Los cálculos lógicos le permiten determinar si una determinada condición es true o false (lógica booleana). Por ejemplo, es posible que desee categorizar valores según determinados límites.
Un cálculo lógico se podría parecer a lo siguiente:
IF [Profit] > 0
THEN 'Profitable'
ELSEIF [Profit] = 0 THEN 'Break even'
ELSE 'Loss'
END
Funciones lógicas y operadores disponibles en Tableau
AND
Sintaxis | <expr1> AND <expr2> |
Definición | Realiza la conjunción lógica de dos expresiones. (Si ambos lados son True, la prueba lógica devuelve True). |
Resultado | Booleano (True o False) |
Ejemplo | IF [Season] = "Spring" AND "[Season] = "Fall" "Si tanto (Temporada = Primavera) como (Temporada = Otoño) son true simultáneamente, entonces devuelve: Es el apocalipsis y el calzado no importa". |
Notas | A menudo se utiliza con IF y IIF. Consulte también NOT y O. Si ambas expresiones son Si crea un cálculo en el cual el resultado de una comparación de Nota: El operador |
CASE
Sintaxis | CASE <expression>
|
Resultado | Depende del tipo de datos de los valores <then> . |
Definición | Evalúa la |
Ejemplo |
"Mire el campo Estación. Si el valor es Verano, devolverá Sandalias. Si el valor es Invierno, devolverá Botas. Si ninguna de las opciones del cálculo coincide con lo que hay en el campo Estación, devolverá Zapatillas". |
Notas | Usado con WHEN, THEN, ELSE y END. Consejo: Muchas veces puede usar un grupo para obtener los mismos resultados que una función CASE complicada, o usar CASE para reemplazar la funcionalidad de agrupación nativa, como en el ejemplo anterior. Es posible que desee probar cuál es más eficaz para su escenario. |
ELSE
Sintaxis | CASE <expression>
|
Definición | Una pieza opcional de una expresión IF o CASE utilizada para especificar un valor predeterminado para devolver si ninguna de las expresiones probadas es true. |
Ejemplo | IF [Season] = "Summer" THEN 'Sandals' CASE [Season] |
Notas | Usado con CASE, WHEN, IF, ELSEIF, THEN y END
|
ELSEIF
Sintaxis | [ELSEIF <test2> THEN <then2>] |
Definición | Una pieza opcional de una expresión IF utilizada para especificar condiciones adicionales más allá del IF inicial. |
Ejemplo | IF [Season] = "Summer" THEN 'Sandals' |
Notas | Se usa con IF, THEN, ELSE y END
A diferencia de |
END
Definición | Se utiliza para cerrar una expresión IF o CASE . |
Ejemplo | IF [Season] = "Summer" THEN 'Sandals' "Si Estación = Verano, devolverá Sandalias. Si no, mire la siguiente expresión. Si Estación = Invierno, devolverá Botas. Si ninguna de las expresiones es true, devolverá Zapatillas". CASE [Season] "Mire el campo Estación. Si el valor es Verano, devolverá Sandalias. Si el valor es Invierno, devolverá Botas. Si ninguna de las opciones del cálculo coincide con lo que hay en el campo Estación, devolverá Zapatillas". |
Notas |
IF
Sintaxis | IF <test1> THEN <then1> |
Resultado | Depende del tipo de datos de los valores <then> . |
Definición | Prueba una serie de expresiones que devuelven el valor |
Ejemplo | IF [Season] = "Summer" THEN 'Sandals' "Si Estación = Verano, devolverá Sandalias. Si no, mire la siguiente expresión. Si Estación = Invierno, devolverá Botas. Si ninguna de las expresiones es true, devolverá Zapatillas". |
Notas |
IFNULL
Sintaxis | IFNULL(expr1, expr2) |
Resultado | Depende del tipo de datos de los valores <expr> . |
Definición | Devuelve |
Ejemplo | IFNULL([Assigned Room], "TBD") "Si el campo Sala asignada no es null, devolverá su valor. Si el campo Sala asignada es null, devolverá TBD". |
Notas | Comparar con ISNULL. Consulte también ZN. |
IIF
Sintaxis | IIF(<test>, <then>, <else>, [<unknown>]) |
Resultado | Depende del tipo de datos de los valores de la expresión. |
Definición | Comprueba si se cumple una condición (<test> ), y devuelve <then> si la prueba es true, <else> si la prueba es false, y un valor opcional para <unknown> si la prueba es null. Si no se especifica la incógnita opcional, IIF devolverá null. |
Ejemplo | IIF([Season] = 'Summer', 'Sandals', 'Other footwear') "Si Estación = Verano, devolverá Sandalias. Si no, devolverá Otro calzado" IIF([Season] = 'Summer', 'Sandals', "Si Estación = Verano, devolverá Sandalias. Si no, mire la siguiente expresión. Si Estación = Invierno, devolverá Botas. Si ninguna de las dos cosas es true, devolverá Zapatillas". IIF('Season' = 'Summer', 'Sandals', "Si Estación = Verano, devolverá Sandalias. Si no, mire la siguiente expresión. Si Estación = Invierno, devolverá Botas. Si ninguna de las expresiones es true, devolverá Zapatillas". |
Notas |
Es decir, en el siguiente cálculo, el resultado será Rojo, no Naranja, porque la expresión deja de evaluarse tan pronto como A = A se evalúa como true:
|
IN
Sintaxis | <expr1> IN <expr2> |
Resultado | Booleano (True o False) |
Definición | Devuelve TRUE si cualquier valor de <expr1> coincide con cualquier valor de <expr2> . |
Ejemplo | SUM([Cost]) IN (1000, 15, 200) "¿El valor del campo Coste es 1000, 15 o 200?" [Field] IN [Set] "¿El valor del campo está presente en el conjunto?" |
Notas | Los valores en Consulte también WHEN. |
ISDATE
Sintaxis | ISDATE(string) |
Resultado | Booleano (True o False) |
Definición | Indica True si una <string> es una fecha válida. La expresión de entrada debe ser un campo de cadena (texto). |
Ejemplo | ISDATE("2018-09-22") “¿La cadena 2018-09-22 tiene una fecha con formato correcto?” |
Notas | Lo que se considera una fecha válida depende de la configuración regional(El enlace se abre en una ventana nueva) del sistema que evalúa el cálculo. Por ejemplo: En los EE. UU:
En el Reino Unido:
|
ISNULL
Sintaxis | ISNULL(expression) |
Resultado | Booleano (True o False) |
Definición | Devuelve true si la |
Ejemplo | ISNULL([Assigned Room]) "¿El campo Sala asignada es null?" |
Notas | Compárelo con IFNULL. Consulte también ZN. |
MAX
Sintaxis | MAX(expression) o MAX(expr1, expr2) |
Resultado | El mismo tipo de datos que el argumento, o NULL si alguna parte del argumento es nula. |
Definición | Indica el máximo de dos argumentos, los cuales deben ser del mismo tipo de datos.
|
Ejemplo | MAX(4,7) = 7 |
Notas | Para cadenas
Para las fuentes de datos de bases de datos, el valor de cadena Para fechas Para las fechas, Como agregación
Como comparación
Consulte también |
MIN
Sintaxis | MIN(expression) o MIN(expr1, expr2) |
Resultado | El mismo tipo de datos que el argumento, o NULL si alguna parte del argumento es nula. |
Definición | Indica el mínimo de dos argumentos, los cuales deben ser del mismo tipo de datos.
|
Ejemplo | MIN(4,7) = 4 |
Notas | Para cadenas
Para las fuentes de datos de bases de datos, el valor de cadena Para fechas Para las fechas, Como agregación
Como comparación
Consulte también |
NOT
Sintaxis | NOT <expression> |
Resultado | Booleano (True o False) |
Definición | Realiza una negación lógica en una expresión. |
Ejemplo | IF NOT [Season] = "Summer" "Si la temporada no es igual al Verano, entonces devolverá: No uses sandalias. Si no, devolverá: Usa sandalias". |
Notas |
O
Sintaxis | <expr1> OR <expr2> |
Resultado | Booleano (True o False) |
Definición | Realiza una disyunción lógica en dos expresiones. |
Ejemplo | IF [Season] = "Spring" OR [Season] = "Fall" "Si (Estación = Primavera) o (Estación = Otoño) es true, entonces devolverá Zapatillas". |
Notas | A menudo se utiliza con IF y IIF. Consulte también AND y NOT. Si cualquiera de las expresiones es Si crea un cálculo en el cual el resultado de una comparación de Nota: El operador |
THEN
Sintaxis | IF <test1> THEN <then1>
|
Definición | Una parte requerida de una expresión IF , ELSEIF o CASE , utilizada para definir qué resultado devolver si un valor o prueba específica es true. |
Ejemplo | IF [Season] = "Summer" THEN 'Sandals' "Si Estación = Verano, devolverá Sandalias. Si no, mire la siguiente expresión. Si Estación = Invierno, devolverá Botas. Si ninguna de las expresiones es true, devolverá Zapatillas". CASE [Season] "Mire el campo Estación. Si el valor es Verano, devolverá Sandalias. Si el valor es Invierno, devolverá Botas. Si ninguna de las opciones del cálculo coincide con lo que hay en el campo Estación, devolverá Zapatillas". |
Notas |
WHEN
Sintaxis | CASE <expression>
|
Definición | Una parte requerida de una expresión CASE . Encuentra el primer <value> que coincide con la <expression> y devuelve el <then> correspondiente. |
Ejemplo | CASE [Season] "Mire el campo Estación. Si el valor es Verano, devolverá Sandalias. Si el valor es Invierno, devolverá Botas. Si ninguna de las opciones del cálculo coincide con lo que hay en el campo Estación, devolverá Zapatillas". |
Notas | Usado con CASE, THEN, ELSE y END.
CASE <expression> Los valores que compara |
ZN
Sintaxis | ZN(expression) |
Resultado | Depende del tipo de datos de la <expression> , o 0. |
Definición | Devuelve <expression> si no es null, de lo contrario, devuelve cero. |
Ejemplo | ZN([Test Grade]) "Si la calificación de la prueba no es null, devolverá su valor. Si la calificación de la prueba es null, devolverá 0". |
Notas |
Consulte también ISNULL. |
Nota: Algunos de estos son en realidad operadores lógicos y aparecen en negro, no en azul. Para obtener más información, consulte Sintaxis del operador.
CASE es, a menudo, más fácil de usar que IF o IIF. En muchos casos, IF, IIF y CASE se pueden utilizar indistintamente. Una instrucción CASE se puede volver a escribir siempre como una instrucción IF, aunque la función CASE será, por lo general, más concisa y puede ser más fácil de entender. Sin embargo, no todas las instrucciones IF se pueden escribir como instrucciones CASE, ya que cada ELSEIF podría hacer referencia a un campo diferente.
Consejo: Comparemos un ejemplo usando la misma lógica en estas tres funciones:
CASE | IF | IIF |
CASE [Region] | IF [Region] = 'West' THEN 1 | IIF([Region] = 'West', 1, |
La estructura CASE es muy simple y fácil de escribir y entender. Sin embargo, la expresión (aquí, [Region]) no puede ser una operación lógica, a diferencia de IF o IIF. Los valores nulos se gestionan de la misma manera para CASE que para IF. | La estructura IF THEN permite múltiples cláusulas ELSEIF, lo que hace que las evaluaciones múltiples sean mucho más fáciles que con IIF. Gestión de valores nulos: cualquier resultado desconocido (nulo) se gestiona mediante la misma cláusula ELSE que los resultados falsos. Aquí, a cualquier región distinta de las cuatro especificadas (incluido el valor nulo) se le asignará un valor de 5. | La estructura IIF gestiona los resultados desconocidos de manera diferente a los resultados falsos y tiene una sintaxis diferente a la de IF. La compensación por la gestión de valores nulos específica es la anidación, como se indicó anteriormente, que puede resultar complicado de escribir y comprender. Gestión de valores nulos: a cualquier región sin valores nulos distinta de las cuatro especificadas se le asignará un valor de 5, pero a un valor nulo se le asignará un valor de 0. |
Nota: Muchas veces puede usar un grupo para obtener los mismos resultados como una función CASE complicada. Pruebe para ver si una opción tiene mejor rendimiento que la otra.
Ejemplos
Las funciones CASE pueden ser útiles para escenarios como la readaptación:
CASE LEFT(DATENAME('weekday',[Order Date]),3)
WHEN 'Sun' THEN 0
WHEN 'Mon' THEN 1
WHEN 'Tue' THEN 2
WHEN 'Wed' THEN 3
WHEN 'Thu' THEN 4
WHEN 'Fri' THEN 5
WHEN 'Sat' THEN 6
END
o brindar al usuario final la capacidad de seleccionar qué medida ver en un gráfico cuando se usa con un parámetro(El enlace se abre en una ventana nueva):
CASE [Choose a Measure]
WHEN "Sales" THEN SUM([Sales])
WHEN "Profit" THEN AVG([Profit])
WHEN "Quantity" THEN COUNT([Quantity])
WHEN "Shipping Cost" THEN MEDIAN([Shipping Cost])
END
Crear un cálculo lógico
Siga los pasos que se indican a continuación para aprender a crear un cálculo lógico.
- En Tableau Desktop, conéctese a la fuente de datos guardada Muestra - Supertienda, que se incluye con Tableau.
- Vaya a una hoja de trabajo.
- Desde el panel Datos, arrastre Estado al estante Filas.
- Desde el panel Datos, arrastre Categoría al estante Filas y colóquelo a la derecha de Estado.
- Desde el panel Datos, arrastre Ventas al estante Columnas.
- Seleccione Análisis > Crear campo calculado.
- En el editor de cálculo que se abre, haga lo siguiente:
- Asigne el nombre KPI al campo calculado.
- Escriba la fórmula siguiente:
SUM([Profit]) > 0
Este cálculo comprueba rápidamente si un miembro es mayor que cero. Si es así, indica true; en caso contrario, indica false.
- Cuando haya terminado, haga clic en Aceptar.
- En el panel Datos, arrastre KPI hasta Color en la tarjeta Marcas.
Ahora puede ver qué categorías están perdiendo dinero en cada estado.
El nuevo campo calculado aparece en Medidas del panel Datos. Igual que con el resto de los campos, puede usarlo en una o más visualizaciones.
Consulte también
Visualizar indicadores de progreso clave