Funciones de cadena

En este artículo se presentan las funciones de cadena y sus usos en Tableau. También se muestra cómo crear un cálculo de cadena mediante un ejemplo.

Por qué usar funciones de cadena

Las funciones de cadena le permiten manipular datos de cadena (p. ej., datos formados por texto). Tableau usa la biblioteca actual de componentes internacionales para Unicode (ICU) al comparar cadenas. La forma en que se ordenan y comparan las cadenas se basa tanto en el idioma como en la configuración regional, y es posible que las visualizaciones cambien a medida que la ICU se actualiza continuamente para brindar una mejor compatibilidad con el idioma.

Por ejemplo, podría tener un campo que contenga el nombre y apellido de todos sus clientes. Un miembro podría ser: Jane Johnson. Puede recuperar los apellidos de todos los clientes en un campo nuevo mediante una función de cadena.

El cálculo se podría parecer a lo siguiente:

SPLIT([Customer Name], ' ', 2)

Por tanto, SPLIT('Jane Johnson' , ' ', 2) = 'Johnson'.

Funciones de cadena disponibles en Tableau

ASCII

SintaxisASCII(string)
ResultadoNúmero
DefiniciónDevuelve el código ASCII del primer carácter de una <string>.
Ejemplo
ASCII('A') = 65
NotasEste es el inverso de la función CHAR.

CHAR

SintaxisCHAR(number)
ResultadoCadena
DefiniciónDevuelve el carácter codificado por el <number> de código ASCII.
Ejemplo
CHAR(65) = 'A'
NotasEste es el inverso de la función ASCII.

CONTAINS

SintaxisCONTAINS(string, substring)
ResultadoBooleano
DefiniciónIndica true si la cadena dada contiene la subcadena especificada.
Ejemplo
CONTAINS("Calculation", "alcu") = true
NotasConsulte también la función lógica(El enlace se abre en una ventana nueva) IN así como RegEx compatible en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).

ENDSWITH

SintaxisENDSWITH(string, substring)
ResultadoBooleano
DefiniciónIndica true si la cadena dada finaliza con la subcadena especificada. Se ignoran los espacios posteriores en blanco.
Ejemplo
ENDSWITH("Tableau", "leau") = true
NotasConsulte también la RegEx compatibles en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).

FIND

SintaxisFIND(string, substring, [start])
ResultadoNúmero
Definición

Indica la posición de índice de la subcadena en la cadena, o 0 si no se encuentra la subcadena. El primer carácter de la cadena es la posición 1.

Si se agrega el argumento numérico opcional start, la función ignora cualquier instancia de subcadena que aparece antes de la posición de inicio.

Ejemplo
FIND("Calculation", "alcu") = 2
FIND("Calculation", "Computer") = 0
FIND("Calculation", "a", 3) = 7
FIND("Calculation", "a", 2) = 2
FIND("Calculation", "a", 8) = 0
NotasConsulte también la RegEx compatibles en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).

FINDNTH

SintaxisFINDNTH(string, substring, occurrence)
ResultadoNúmero
DefiniciónIndica la posición de la aparición número n de la subcadena dentro de la cadena especificada, donde n se define mediante el argumento de aparición.
Ejemplo
FINDNTH("Calculation", "a", 2) = 7
Notas

FINDNTH no está disponible en todas las fuentes de datos.

Consulte también la RegEx compatibles en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).

LEFT

Sintaxis LEFT(string, number)
ResultadoCadena
DefiniciónDevuelve el <number> de caracteres que se encuentra en el extremo izquierdo de la cadena.
Ejemplo
LEFT("Matador", 4) = "Mata"
NotasConsulte también MID y RIGHT.

LEN

SintaxisLEN(string)
ResultadoNúmero
DefiniciónIndica la longitud de la cadena.
Ejemplo
LEN("Matador") = 7
NotasNo confundir con la función espacial(El enlace se abre en una ventana nueva) LENGTH.

LOWER

SintaxisLOWER(string)
ResultadoCadena
DefiniciónDevuelve la <string> proporcionada con todos los caracteres en minúscula.
Ejemplo
LOWER("ProductVersion") = "productversion"
NotasConsulte también UPPER y PROPER.

LTRIM

Sintaxis LTRIM(string)
ResultadoCadena
DefiniciónDevuelve la <string> proporcionada con todos los espacios iniciales eliminados.
Ejemplo
LTRIM(" Matador ") = "Matador "
NotasConsulte también RTRIM.

MAX

SintaxisMAX(expression) o MAX(expr1, expr2)
ResultadoEl 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.

MAX se puede aplicar también a un solo campo como una agregación.

Ejemplo
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
Notas

Para cadenas

MAX suele ser el valor que aparece en último lugar en orden alfabético.

Para las fuentes de datos de bases de datos, el valor de cadena MAX es el valor más alto en la secuencia de orden definido por la base de datos para esta columna.

Para fechas

Para las fechas, MAX es la fecha más reciente. Si MAX es una agregación, el resultado no tendrá una jerarquía de fechas. Si MAX es una comparación, el resultado conservará la jerarquía de fechas.

Como agregación

MAX(expression) es una función agregada y devuelve un solo resultado agregado. Se muestra como AGG(expression) en la visualización.

Como comparación

MAX(expr1, expr2) compara los dos valores y devuelve un valor de nivel de fila.

Consulte también MIN.

MID

Sintaxis(MID(string, start, [length])
ResultadoCadena
Definición

Devuelve una cadena que empieza en la posición start especificada. El primer carácter de la cadena es la posición 1.

Si se agrega el argumento numérico opcional length, la cadena indicada incluye solo esa cantidad de caracteres.

Ejemplo
MID("Calculation", 2) = "alculation"
MID("Calculation", 2, 5) ="alcul"
NotasConsulte también la RegEx compatibles en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).

MIN

SintaxisMIN(expression) o MIN(expr1, expr2)
ResultadoEl 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.

MIN se puede aplicar también a un solo campo como una agregación.

Ejemplo
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
Notas

Para cadenas

MIN suele ser el valor que aparece en primer lugar en orden alfabético.

Para las fuentes de datos de bases de datos, el valor de cadena MIN es el valor más bajo en la secuencia de orden definido por la base de datos para esta columna.

Para fechas

Para las fechas, MIN es la fecha más anterior. Si MIN es una agregación, el resultado no tendrá una jerarquía de fechas. Si MIN es una comparación, el resultado conservará la jerarquía de fechas.

Como agregación

MIN(expression) es una función agregada y devuelve un solo resultado agregado. Se muestra como AGG(expression) en la visualización.

Como comparación

MIN(expr1, expr2) compara los dos valores y devuelve un valor de nivel de fila.

Consulte también MAX.

PROPER

SintaxisPROPER(string)
ResultadoCadena
Definición

Devuelve la <string> proporcionada con la primera letra de cada palabra en mayúscula y las letras restantes en minúsculas.

Ejemplo
PROPER("PRODUCT name") = "Product Name"
PROPER("darcy-mae") = "Darcy-Mae"
Notas

Los espacios y los caracteres no alfanuméricos, como la puntuación, se tratan como separadores.

Consulte también LOWER y UPPER.

Limitaciones de la base de datosPROPER solo está disponible para algunos archivos planos y en extracciones. Si necesita usar PROPER en una fuente de datos que de otro modo no lo admite, considere usar una extracción.

REPLACE

SintaxisREPLACE(string, substring, replacement
ResultadoCadena
DefiniciónBusca <string> para <substring> y lo reemplaza con <replacement>. Si no se encuentra <substring>, se elimina el cambio a la cadena.
Ejemplo
REPLACE("Version 3.8", "3.8", "4x") = "Version 4x"
NotasConsulte también REGEXP_REPLACE en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).
SintaxisRIGHT(string, number)
ResultadoCadena
DefiniciónDevuelve el <number> de caracteres que se encuentra en el extremo derecho de la cadena.
Ejemplo
RIGHT("Calculation", 4) = "tion"
NotasConsulte también LEFT y MID.

RTRIM

SintaxisRTRIM(string)
ResultadoCadena
DefiniciónDevuelve la <string> proporcionada con todos los espacios posteriores eliminados.
Ejemplo
RTRIM(" Calculation ") = " Calculation"
NotasConsulte también LTRIM y TRIM.

SPACE

SintaxisSPACE(number)
ResultadoCadena (específicamente, solo espacios)
DefiniciónDevuelve una cadena compuesta por el número especificado de espacios repetidos.
Ejemplo
SPACE(2) = "  "

SPLIT

SintaxisSPLIT(string, delimiter, token number)
ResultadoCadena
DefiniciónIndica una subcadena a partir de una cadena (usa un carácter delimitador para dividir la cadena en una secuencia de tokens).
Ejemplo
SPLIT ("a-b-c-d", "-", 2) = "b"
SPLIT ("a|b|c|d", "|", -2) = "c"
Notas

La cadena se interpreta como una secuencia alterna de delimitadores y tokens. Para la cadena abc-defgh-i-jkl, donde el carácter delimitador es “-”, los tokens son (1) abc, (2) defgh, (3) i y (4) jlk.

SPLIT devuelve el token que se corresponde con el número de token. Cuando el número de token es positivo, los tokens se cuentan empezando desde el extremo izquierdo de la cadena; cuando el número de token es negativo, los tokens se cuentan empezando desde la derecha.

Consulte también REGEX compatible en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).

Limitaciones de la base de datos

Los comandos de división y división personalizada están disponibles para los siguientes tipos de fuentes de datos: extracciones de datos de Tableau, Microsoft Excel, archivos de texto, archivos PDF, Salesforce, OData, Microsoft Azure Market Place, Google Analytics, Vertica, Oracle, MySQL, PostgreSQL, Teradata, Amazon Redshift, Aster Data, Google Big Query, Cloudera Hadoop Hive, Hortonworks Hive y Microsoft SQL Server.

Algunas fuentes de datos imponen límites en la división de cadenas. Consulte las limitaciones de la función SPLIT más adelante en este tema.

STARTSWITH

SintaxisSTARTSWITH(string, substring)
ResultadoBooleano
DefiniciónIndica true si la string comienza por la substring. Se ignoran los espacios iniciales en blanco.
Ejemplo
STARTSWITH("Matador, "Ma") = TRUE
NotasConsulte también CONTAINS así como RegEx compatible en la documentación de funciones adicionales(El enlace se abre en una ventana nueva).

TRIM

SintaxisTRIM(string)
ResultadoCadena
DefiniciónDevuelve la <string> proporcionada con los espacios iniciales y posteriores eliminados.
Ejemplo
TRIM(" Calculation ") = "Calculation"
NotasConsulte también LTRIM y RTRIM.

UPPER

SintaxisUPPER(string)
ResultadoCadena
DefiniciónDevuelve la <string> proporcionada con todos los caracteres en mayúscula.
Ejemplo
UPPER("Calculation") = "CALCULATION"
NotasConsulte también PROPER y LOWER.

Crear un cálculo de cadena

Siga los pasos que se indican a continuación para aprender a crear un cálculo de cadena.

  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, en Dimensiones, arrastre ID de orden al estante Filas.

    Tenga en cuenta que cada ID de pedido contiene valores para el país (CA y US, por ejemplo), el año (2011) y el número de pedido (100006). En este ejemplo, creará un cálculo para recuperar solo el número de pedido del campo.

  4. Seleccione Análisis > Crear campo calculado.

  5. En el editor de cálculo que se abre, haga lo siguiente:

    • Asigne el nombre Order ID Numbers (números de ID de pedido) al campo calculado.

    • Escriba la fórmula siguiente:

      RIGHT([Order ID], 6)

      Esta fórmula toma los dígitos especificados (6) de la derecha de la cadena y los coloca en el campo nuevo.

      Por lo tanto, RIGHT('CA-2011-100006' , 6) = '100006'.

    • Cuando haya terminado, haga clic en Aceptar.

      El nuevo campo calculado aparece en Dimensiones del panel Datos. Igual que con el resto de los campos, puede usarlo en una o más visualizaciones.

  6. Desde el panel Datos, arrastre Números de ID de orden al estante Filas. Colóquelo a la derecha de ID de pedido.

    Observe cómo los campos difieren ahora.

Limitaciones de SPLIT por fuente de datos

Algunas bases de datos imponen límites en la división de cadenas. En la tabla siguiente se muestran las fuentes de datos que admiten números de token negativos (división desde la derecha) y si hay un límite en la cantidad de divisiones permitidas por fuente de datos.

Una función SPLIT que especifique un número de token negativo y que sería correcta en otras fuentes de datos, indicará el error con estas fuentes de datos: “La fuente de datos no es compatible con la división desde la derecha”.

Fuente de datosRestricciones de izquierda/derechaNúmero máximo de divisionesLimitaciones de la versión
Extracción de datos de TableauAmbosInfinito 
Microsoft ExcelAmbosInfinito 
Archivo de textoAmbosInfinito 
SalesforceAmbosInfinito 
ODataAmbosInfinito 
Google AnalyticsAmbosInfinito 
Servidor de datos de TableauAmbosInfinitoAdmitida en la versión 9.0.
VerticaSolo izquierda10 
OracleSolo izquierda10 
MySQLAmbos10 
PostgreSQLSolo izquierda en versiones anteriores a la 9.0; ambas direcciones a partir de la versión 9.010 
TeradataSolo izquierda10Versión 14 y posteriores
Amazon RedshiftSolo izquierda10 
Aster DatabaseSolo izquierda10 
Google BigQuerySolo izquierda10 
Hortonworks Hadoop HiveSolo izquierda10 
Cloudera HadoopSolo izquierda10Impala se admite a partir de la versión 2.3.0.
Microsoft SQL ServerAmbos102008 y posteriores

Consulte también

Funciones en Tableau

Funciones de Tableau (alfabéticamente)

Funciones de Tableau (por categorías)

Dar formato a los cálculos en Tableau

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!