---
schema_version: "1"
id: 05e6e1739bff5fd14f2cbfd9e64c94147de3e73c2a50404bbb61bdddeb99316e
title: Funciones lógicas
collection: tableau
version: next
locale: es-es
portal_url: https://docs.salesforce.com/tableau/next/es-es/pro/desktop/functions_functions_logical.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/es-es/functions_functions_logical.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 79341bb3ebd15323d8d974b638d8335bd0ce6cb7f493a83a38f57905aa565ae0
description: Reference for Tableau logical functions such as IF, CASE, and AND.
---
[Saltar al contenido principal](#main-content)

# 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

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>&lt;expr1&gt; AND &lt;expr2&gt;</code></td></tr><tr><td>Definición</td><td>Realiza la conjunción lógica de dos expresiones. (Si ambos lados son True, la prueba lógica devuelve True).</td></tr><tr><td>Resultado</td><td>Booleano (True o False)</td></tr><tr><td>Ejemplo</td><td><pre>IF [Season] = "Spring" AND "[Season] = "Fall" <br>THEN "It's the apocalypse and footwear doesn't matter" <br>END</pre><p><i>"Si tanto (Temporada = Primavera) como (Temporada = Otoño) son true simultáneamente, entonces devuelve: Es el apocalipsis y el calzado no importa".</i></p></td></tr><tr><td>Notas</td><td><p>A menudo se utiliza con <a href="#IF" class="xref">IF</a> y <a href="#IIF" class="xref">IIF</a>. Consulte también <a href="#NOT" class="xref">NOT</a> y <a href="#OR" class="xref">O</a>.</p><p>Si ambas expresiones son <code>TRUE</code> (no son <code>FALSE</code> o <code>NULL</code>), el resultado será <code>TRUE</code>. Si cualquiera de las expresiones es <code>NULL</code>, entonces el resultado es <code>NULL</code>. En todos los demás casos, el resultado será <code>FALSE</code>.</p><p>Si crea un cálculo en el cual el resultado de una comparación de <code>AND</code> se muestra en una hoja de trabajo, Tableau muestra <code>TRUE</code> y <code>FALSE</code>. Si desea cambiar esto, use el área Formato en el cuadro de diálogo de formato.</p><p class="note"><b>Nota</b>:&nbsp;El operador <code>AND</code> usa <i>evaluación de circuito corto</i>. Esto significa que si la primera expresión se evalúa y es <code>FALSE</code>, entonces la segunda expresión no se evalúa en absoluto. Puede ser útil si la segunda expresión tiene como resultado un error cuando la primera expresión es <code>FALSE</code>, porque la segunda expresión, en este caso, nunca se evalúa.</p></td></tr></tbody></table>

### CASE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code><b>CASE</b> &lt;expression&gt; 
                        <br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
                        <br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
                        <br>...
                        <br>[ELSE &lt;default&gt;]<br>END</code></td></tr><tr><td>Resultado</td><td>Depende del tipo de datos de los valores <code>&lt;then&gt;</code>.</td></tr><tr><td>Definición</td><td><p>Evalúa la <code>expression</code> y la compara con las opciones especificadas (<code>&lt;value1&gt;</code>, <code>&lt;value2&gt;</code>, etc.). Cuando se encuentra un <code>value</code> que coincide con la expresión, CASE devuelve el valor de la <code>return</code> correspondiente. En caso de que no se encuentre ninguna coincidencia, se devolverá la expresión predeterminada. Si no hay ninguna devolución predeterminada y no hay valores que coincidan, se devolverá Null.</p></td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve"><code><b>CASE</b> [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</code></pre><p><i>"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".</i></p></td></tr><tr><td>Notas</td><td><p>Consulte también <a href="#IF" class="xref">IF</a> y <a href="#IIF" class="xref">IIF</a>.</p><p>Usado con <a href="#WHEN" class="xref">WHEN</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> y <a href="#END" class="xref">END</a>.</p><blockquote><p>[!TIP]</p><p><b>Consejo</b>: 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.</p></blockquote></td></tr></tbody></table>

### ELSE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>CASE &lt;expression&gt; 
							<br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
							<br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[<b>ELSE</b> &lt;default&gt;]<br>END</code></td></tr><tr><td>Definición</td><td>Una pieza opcional de una expresión <code>IF</code>&nbsp;o <code>CASE</code> utilizada para especificar un valor predeterminado para devolver si ninguna de las expresiones probadas es true.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br><b>ELSE</b>&nbsp;'Sneakers'&nbsp;<br>END</pre><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br><b>ELSE</b> 'Sneakers' <br>END</pre></td></tr><tr><td>Notas</td><td><p>Usado con <a href="#CASE" class="xref">CASE</a>, <a href="#WHEN" class="xref">WHEN</a>, <a href="#IF" class="xref">IF</a>, <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a> y <a href="#END" class="xref">END</a></p><p><code>ELSE</code> es opcional con <code>CASE</code> y <code>IF</code>. En un cálculo donde <code>ELSE</code> no se especifica, si ninguno de los <code>&lt;test&gt;</code>es true, el cálculo general devolverá un valor null.</p><p><code>ELSE</code> no requiere una condición (como <code>[Season] = "Winter"</code>) y puede considerarse como una forma de gestión de valores nulos.</p></td></tr></tbody></table>

### ELSEIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>[<b>ELSEIF</b> &lt;test2&gt; THEN &lt;then2&gt;]</code></td></tr><tr><td>Definición</td><td>Una pieza opcional de una expresión <code>IF</code>&nbsp;utilizada para especificar condiciones adicionales más allá del IF inicial.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IF [Season] = "Summer" THEN 'Sandals' <br><b>ELSEIF</b> [Season] = "Winter" THEN 'Boots' <br><b>ELSEIF</b> [Season] = "Spring" THEN 'Sneakers' <br><b>ELSEIF</b> [Season] = "Autumn" THEN 'Sneakers'<br>ELSE 'Bare feet' <br>END</pre></td></tr><tr><td>Notas</td><td><p>Se usa con <a href="#IF" class="xref">IF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> y <a href="#END" class="xref">END</a></p><p><code>ELSEIF</code> puede considerarse como cláusulas <code>IF</code> adicionales. <code>ELSEIF</code> es opcional y se puede repetir varias veces.</p><p>A diferencia de <code>ELSE</code>, <code>ELSEIF</code> requiere una condición (como <code>[Season] = "Winter"</code>).</p></td></tr></tbody></table>

### END

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Definición</td><td>Se utiliza para cerrar una expresión <code>IF</code>&nbsp;o <code>CASE</code>.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre><p><i>"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".</i></p><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br><b>END</b></pre><p><i><i>"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".</i></i></p></td></tr><tr><td>Notas</td><td><p>Usado con <a href="#CASE" class="xref">CASE</a>, <a href="#WHEN" class="xref">WHEN</a>, <a href="#IF" class="xref">IF</a>, <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a> y <a href="#ELSE" class="xref">ELSE</a>.</p></td></tr></tbody></table>

### IF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code><b>IF</b> &lt;test1&gt; THEN &lt;then1&gt; <br>[ELSEIF &lt;test2&gt; THEN &lt;then2&gt;...]<br>[ELSE &lt;default&gt;] <br>END</code></td></tr><tr><td>Resultado</td><td>Depende del tipo de datos de los valores <code>&lt;then&gt;</code>.</td></tr><tr><td>Definición</td><td><p>Prueba una serie de expresiones que devuelven el valor <code>&lt;then&gt;</code> para la primera <code>&lt;test&gt;</code> true.</p></td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre><p><i>"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".</i></p></td></tr><tr><td>Notas</td><td><p>Consulte también <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>.</p><p>Se usa con <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> y <a href="#END" class="xref">END</a></p></td></tr></tbody></table>

### IFNULL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>IFNULL(expr1, expr2)</code></td></tr><tr><td>Resultado</td><td>Depende del tipo de datos de los valores <code>&lt;expr&gt;</code>.</td></tr><tr><td>Definición</td><td><p>Devuelve <code>&lt;expr1&gt;</code> si no es null, de lo contrario, devuelve <code>&lt;expr2&gt;</code>.</p></td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IFNULL([Assigned Room], "TBD")</pre><p><i>"Si el campo Sala asignada no es null, devolverá su valor. Si el campo Sala asignada es null, devolverá TBD".</i></p></td></tr><tr><td>Notas</td><td><p>Comparar con <a href="#ISNULL" class="xref">ISNULL</a>. <code>IFNULL</code> siempre devuelve un valor. <code>ISNULL</code>&nbsp;devuelve un valor booleano (True o False).</p><p>Consulte también <a href="#ZN" class="xref">ZN</a>.</p></td></tr></tbody></table>

### IIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code><b>IIF</b>(&lt;test&gt;, &lt;then&gt;, &lt;else&gt;, [&lt;unknown&gt;])</code></td></tr><tr><td>Resultado</td><td>Depende del tipo de datos de los valores de la expresión.</td></tr><tr><td>Definición</td><td>Comprueba si se cumple una condición (<code>&lt;test&gt;</code>), y devuelve <code>&lt;then&gt;</code> si la prueba es true, <code>&lt;else&gt;</code>&nbsp;si la prueba es false, y un valor opcional para <code>&lt;unknown&gt;</code> si la prueba es null. Si no se especifica la incógnita opcional, <code>IIF</code> devolverá null.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', 'Other footwear')</pre><p><i>"Si Estación = Verano, devolverá Sandalias. Si no, devolverá Otro calzado"</i></p><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  'Other footwear')<br>)</pre><p><i>"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".</i></p><pre xml:space="preserve">IIF('Season' = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  <br>      IIF('Season' = 'Spring', 'Sneakers', 'Other footwear')<br>   )<br>)</pre><p><i>"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".</i></p></td></tr><tr><td>Notas</td><td><p>Consulte también <a href="#IF" class="xref">IF</a> e<a href="#CASE" class="xref">CASE</a>.</p><p><code>IIF</code> no tiene equivalente <code>ELSEIF</code> (como <code>IF</code>) o cláusulas <code>WHEN</code> repetidas (como <code>CASE</code>). En cambio, se pueden evaluar varias pruebas secuencialmente anidando expresiones <code>IIF</code> como el elemento <code>&lt;unknown&gt;</code>. Se devuelve el primer true (el más externo).</p><p>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:</p><p><code>IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange',  IIF('C' = 'D', 'Yellow', 'Green')))</code></p></td></tr></tbody></table>

### IN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>&lt;expr1&gt; IN &lt;expr2&gt;</code></td></tr><tr><td>Resultado</td><td>Booleano (True o False)</td></tr><tr><td>Definición</td><td>Devuelve <code>TRUE</code> si cualquier valor de <code>&lt;expr1&gt;</code> coincide con cualquier valor de <code>&lt;expr2&gt;</code>.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">SUM([Cost]) IN&nbsp;(1000, 15, 200)</pre><p><i>"¿El valor del campo Coste es 1000, 15 o 200?"</i></p><pre xml:space="preserve">[Field] IN&nbsp;[Set]</pre><p><i>"¿El valor del campo está presente en el conjunto?"</i></p></td></tr><tr><td>Notas</td><td><p>Los valores en <code>&lt;expr2&gt;</code> pueden ser un conjunto, una lista de valores literales o un campo combinado.</p><p>Consulte también <a href="#WHEN" class="xref">WHEN</a>.</p></td></tr></tbody></table>

### ISDATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>ISDATE(string)</code></td></tr><tr><td>Resultado</td><td>Booleano (True o False)</td></tr><tr><td>Definición</td><td>Indica True si una <code>&lt;string&gt;</code> es una fecha válida. La expresión de entrada debe ser un campo de cadena (texto).</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">ISDATE("2018-09-22")</pre><p><i>“¿La cadena 2018-09-22 tiene una fecha con formato correcto?”</i></p></td></tr><tr><td>Notas</td><td><p>Lo que se considera una fecha válida depende de la <a href="https://help.tableau.com/current/server/es-es/lang_intro.htm" target="_blank">configuración regional</a> del sistema que evalúa el cálculo. Por ejemplo:</p><p>En los EE.&nbsp;UU:</p><ul><li><code>ISDATE("2018-09-22") = TRUE</code></li><li><code>ISDATE("2018-22-09") = FALSE</code></li></ul><p>En el Reino Unido: </p><ul><li><code>ISDATE("2018-09-22") = FALSE</code></li><li><code>ISDATE("2018-22-09") = TRUE</code></li></ul><p></p></td></tr></tbody></table>

### ISNULL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>ISNULL(expression)</code></td></tr><tr><td>Resultado</td><td>Booleano (True o False)</td></tr><tr><td>Definición</td><td><p>Devuelve true si la <code>&lt;expression&gt;</code> es NULL (no contiene datos válidos).</p></td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">ISNULL([Assigned Room])</pre><p><i>"¿El campo Sala asignada es null?"</i></p></td></tr><tr><td>Notas</td><td><p>Compárelo con <a href="#IFNULL" class="xref">IFNULL</a>. <code>IFNULL</code> siempre devuelve un valor. <code>ISNULL</code> devuelve un booleano.</p><p>Consulte también <a href="#ZN" class="xref">ZN</a>.</p></td></tr></tbody></table>

### MAX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>MAX(expression)</code> o <code>MAX(expr1, expr2)</code></td></tr><tr><td>Resultado</td><td>El mismo tipo de datos que el argumento, o <code>NULL&nbsp;</code> si alguna parte del argumento es nula.</td></tr><tr><td>Definición</td><td><p>Indica el máximo de dos argumentos, los cuales deben ser del mismo tipo de datos.</p><p><code>MAX</code> se puede aplicar también a un solo campo como una agregación.</p></td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre></td></tr><tr><td>Notas</td><td><p><b>Para cadenas</b></p><p><code>MAX</code> suele ser el valor que aparece en último lugar en orden alfabético.</p><p class="note">Para las fuentes de datos de bases de datos, el valor de cadena <code>MAX</code> es el valor más alto en la secuencia de orden definido por la base de datos para esta columna.</p><p><b>Para fechas</b></p><p>Para las fechas, <code>MAX</code> es la fecha más reciente. Si <code>MAX</code> es una agregación, el resultado no tendrá una jerarquía de fechas. Si <code>MAX</code> es una comparación, el resultado conservará la jerarquía de fechas.</p><p><b>Como agregación</b></p><p><code>MAX(expression)</code> es una función agregada y devuelve un solo resultado agregado. Se muestra como <code>AGG(expression)</code> en la visualización.</p><p><b>Como comparación</b></p><p><code>MAX(expr1, expr2)</code> compara los dos valores y devuelve un valor de nivel de fila.</p><p>Consulte también <code><a href="#MIN" class="xref">MIN</a></code>.</p></td></tr></tbody></table>

### MIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>MIN(expression)</code> o <code>MIN(expr1, expr2)</code></td></tr><tr><td>Resultado</td><td>El mismo tipo de datos que el argumento, o <code>NULL&nbsp;</code> si alguna parte del argumento es nula.</td></tr><tr><td>Definición</td><td><p>Indica el mínimo de dos argumentos, los cuales deben ser del mismo tipo de datos.</p><p><code>MIN </code> se puede aplicar también a un solo campo como una agregación.</p></td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre></td></tr><tr><td>Notas</td><td><p><b>Para cadenas</b></p><p><code>MIN</code> suele ser el valor que aparece en primer lugar en orden alfabético.</p><p class="note">Para las fuentes de datos de bases de datos, el valor de cadena <code>MIN</code> es el valor más bajo en la secuencia de orden definido por la base de datos para esta columna.</p><p><b>Para fechas</b></p><p>Para las fechas, <code>MIN</code> es la fecha más anterior. Si <code>MIN</code> es una agregación, el resultado no tendrá una jerarquía de fechas. Si <code>MIN</code> es una comparación, el resultado conservará la jerarquía de fechas.</p><p><b>Como agregación</b></p><p><code>MIN(expression)</code> es una función agregada y devuelve un solo resultado agregado. Se muestra como <code>AGG(expression)</code> en la visualización.</p><p><b>Como comparación</b></p><p><code>MIN(expr1, expr2)</code> compara los dos valores y devuelve un valor de nivel de fila.</p><p>Consulte también <code><a href="#MAX" class="xref">MAX</a></code>.</p></td></tr></tbody></table>

### NOT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>NOT&nbsp;&lt;expression&gt;</code></td></tr><tr><td>Resultado</td><td>Booleano (True o False)</td></tr><tr><td>Definición</td><td>Realiza una negación lógica en una expresión.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IF <b>NOT</b> [Season] = "Summer" <br>THEN 'Don't wear sandals' <br>ELSE&nbsp;'Wear sandals'&nbsp;<br><b>END</b></pre><p><i>"Si la temporada no es igual al Verano, entonces devolverá: No uses sandalias. Si no, devolverá: Usa sandalias".</i></p></td></tr><tr><td>Notas</td><td><p>A menudo se utiliza con <a href="#IF" class="xref">IF</a> y <a href="#IIF" class="xref">IIF</a>. Consulte también <a href="#top" class="xref">AND</a> y <a href="#OR" class="xref">O</a>.</p></td></tr></tbody></table>

### O

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>&lt;expr1&gt; OR &lt;expr2&gt;</code></td></tr><tr><td>Resultado</td><td>Booleano (True o False)</td></tr><tr><td>Definición</td><td>Realiza una disyunción lógica en dos expresiones.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IF [Season] = "Spring"&nbsp;<b>OR</b>&nbsp;[Season] = "Fall" <br>THEN&nbsp;"Sneakers" <br>END</pre><p><i>"Si (Estación = Primavera)&nbsp;o (Estación = Otoño)&nbsp;es true, entonces devolverá Zapatillas".</i></p></td></tr><tr><td>Notas</td><td><p>A menudo se utiliza con <a href="#IF" class="xref">IF</a> y <a href="#IIF" class="xref">IIF</a>. Consulte también <a href="#top" class="xref">AND</a> y <a href="#NOT" class="xref">NOT</a>.</p><p>Si cualquiera de las expresiones es <code>TRUE</code>, entonces el resultado es <code>TRUE</code>. Si ambas expresiones son <code>FALSE</code>, entonces el resultado es <code>FALSE</code>. Si ambas expresiones son <code>NULL</code>, entonces el resultado es <code>NULL</code>.</p><p>Si crea un cálculo en el cual el resultado de una comparación de <code>OR</code> se muestra en una hoja de trabajo, Tableau muestra TRUE y FALSE. Si desea cambiar esto, use el área Formato en el cuadro de diálogo de formato.</p><p class="note"><b>Nota</b>:&nbsp;El operador <code>OR</code> usa <em>evaluación de circuito corto</em>. Esto significa que si la primera expresión se evalúa y es <code>TRUE</code>, entonces la segunda expresión no se evalúa en absoluto. Puede ser útil si la segunda expresión tiene como resultado un error cuando la primera expresión es <code>TRUE</code>, porque la segunda expresión, en este caso, nunca se evalúa.</p></td></tr></tbody></table>

### THEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>IF &lt;test1&gt; <b>THEN</b> &lt;then1&gt; 
							<br>[ELSEIF &lt;test2&gt; <b>THEN</b> &lt;then2&gt;...]
							<br>[ELSE &lt;default&gt;] 
						<br>END</code></td></tr><tr><td>Definición</td><td>Una parte requerida de una expresión <code>IF</code>, <code>ELSEIF</code> o <code>CASE</code>, utilizada para definir qué resultado devolver si un valor o prueba específica es true.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;<b>THEN</b>&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;<b>THEN</b>&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br>END</pre><p><i>"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".</i></p><pre>CASE [Season] <br>WHEN 'Summer' <b>THEN</b> 'Sandals' <br>WHEN 'Winter' <b>THEN</b> 'Boots' <br>ELSE 'Sneakers' <br>END</pre><p><i><i>"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".</i></i></p></td></tr><tr><td>Notas</td><td><p>Usado con <a href="#CASE" class="xref">CASE</a>, <a href="#WHEN" class="xref">WHEN</a>, <a href="#IF" class="xref">IF</a>, <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> y <a href="#END" class="xref">END</a></p></td></tr></tbody></table>

### WHEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>CASE &lt;expression&gt; 
							<br><b>WHEN</b> &lt;value1&gt; THEN &lt;then1&gt; 
							<br><b>WHEN</b> &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[ELSE &lt;default&gt;]<br>END</code></td></tr><tr><td>Definición</td><td>Una parte requerida de una expresión <code>CASE</code>. Encuentra el primer <code>&lt;value&gt;</code> que coincide con la <code>&lt;expression&gt;</code> y devuelve el <code>&lt;then&gt;</code> correspondiente.</td></tr><tr><td>Ejemplo</td><td><pre>CASE [Season] <br><b>WHEN</b> 'Summer' THEN 'Sandals' <br><b>WHEN</b> 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</pre><p><i>"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".</i></p></td></tr><tr><td>Notas</td><td><p>Usado con <a href="#CASE" class="xref">CASE</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> y <a href="#END" class="xref">END</a>.</p><p><code>CASE</code> también admite construcciones <code>WHEN IN</code>, tales como:</p><pre xml:space="preserve">CASE &lt;expression&gt; <br><b>WHEN IN</b> &lt;set1&gt; THEN &lt;then1&gt; <br><b>WHEN IN</b> &lt;combinedfield&gt; THEN &lt;then2&gt; <br>... <br>ELSE &lt;default&gt; <br>END</pre><p>Los valores que compara <code>WHEN IN</code> deben ser un conjunto, una lista de valores literales o un campo combinado. Consulte también <a href="#IN" class="xref">IN</a>.</p></td></tr></tbody></table>

### ZN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxis</td><td><code>ZN(expression)</code></td></tr><tr><td>Resultado</td><td>Depende del tipo de datos de la <code>&lt;expression&gt;</code>, o 0.</td></tr><tr><td>Definición</td><td>Devuelve &lt;expression&gt; si no es null, de lo contrario, devuelve cero.</td></tr><tr><td>Ejemplo</td><td><pre xml:space="preserve">ZN([Test Grade])</pre><p><i>"Si la calificación de la prueba no es null, devolverá su valor. Si la calificación de la prueba es null, devolverá 0".</i></p></td></tr><tr><td>Notas</td><td><p><code>ZN</code> es un caso especializado de <a href="#IFNULL" class="xref">IFNULL</a> donde la alternativa si la expresión es null es siempre 0 en lugar de especificarse en el cálculo.</p><p><code>ZN</code> es especialmente útil cuando se realizan cálculos adicionales y un valor null haría que todo el cálculo fuera null. Pero tenga cuidado al interpretar estos resultados, null no siempre es sinónimo de 0 y podría representar datos que faltan.</p><p>Consulte también <a href="#ISNULL" class="xref">ISNULL</a>.</p></td></tr></tbody></table>  

**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](https://help.tableau.com/v0.0/pro/desktop/es-es/functions_operators.htm#Operators).

Nota sobre CASE, IF y IIF

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:  

<table style="width: 100%;" class="table--plain"><colgroup><col style="width: 33%;"><col style="width: 33%;"><col></colgroup><tbody><tr><td>CASE</td><td>IF</td><td>IIF</td></tr><tr><td><pre>CASE [Region]<br>WHEN 'West' THEN 1<br>WHEN 'East' THEN 2<br>WHEN 'South' THEN 3<br>WHEN 'North' Then 4<br>ELSE 5<br>END</pre></td><td><pre>IF [Region] = 'West' THEN 1<br>ELSEIF [Region] = 'East' THEN 2<br>ELSEIF [Region] = 'South' THEN 3<br>ELSEIF [Region] = 'North' THEN 4<br>ELSE 5<br>END</pre></td><td><pre>IIF([Region] = 'West', 1,<br> IIF([Region] = 'East', 2,<br>  IIF([Region] = 'South', 3,<br>   IIF([Region] = 'North', 4,<br>   5, 0)<br>  )<br> )<br>)</pre></td></tr><tr><td><p>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.</p><p>Los valores nulos se gestionan de la misma manera para CASE que para IF.</p></td><td><p>La estructura IF&nbsp;THEN&nbsp;permite múltiples cláusulas ELSEIF, lo que hace que las evaluaciones múltiples sean mucho más fáciles que con IIF.</p><p><b>Gestión de valores nulos</b>:&nbsp;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.</p></td><td><p>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.</p><p><b>Gestión de valores nulos</b>:&nbsp;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.</p></td></tr></tbody></table>

**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](https://www.tableau.com/es-es/blog/using-parameter-change-fields-45866):

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.

1. En Tableau Desktop, conéctese a la fuente de datos guardada **Muestra - Supertienda**, que se incluye con Tableau.
2. Vaya a una hoja de trabajo.
3. Desde el panel **Datos**, arrastre Estado al estante Filas.
4. Desde el panel **Datos**, arrastre Categoría al estante Filas y colóquelo a la derecha de Estado.
5. Desde el panel **Datos**, arrastre Ventas al estante Columnas.
6. Seleccione Análisis \> Crear campo calculado.
7. 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**.

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.

9. 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.
    
    ![Función lógica aplicada a un gráfico de barras para resaltar las categorías de productos que están perdiendo dinero en cada estado.](/tableau/next/es-es/pro/desktop/es-es/Img/logicalfunctions1.png)

## Consulte también

[Visualizar indicadores de progreso clave](https://help.tableau.com/v0.0/pro/desktop/es-es/kpi.htm)

[Funciones en Tableau](https://help.tableau.com/v0.0/pro/desktop/es-es/functions.htm)

[Funciones de Tableau (por categorías)](https://help.tableau.com/v0.0/pro/desktop/es-es/functions_all_categories.htm)

[Funciones de Tableau (alfabéticamente)](https://help.tableau.com/v0.0/pro/desktop/es-es/functions_all_alphabetical.htm)