Excel DAX: trabajo con texto y fechas

DAX se puede utilizar en escenarios que impliquen trabajar junto con texto, extraer y componer valores de fecha y hora o crear valores basados ​​en una condición. Puede hacer lo siguiente con DAX:

  • Cree una columna de clave en una tabla por concatenación.
  • Redacte una fecha basada en partes de fecha extraídas de una fecha de texto.
  • Defina un formato de fecha personalizado.
  • Cambie los tipos de datos mediante una fórmula.
    • Convierte números reales en enteros.
    • Convierta números reales, enteros o fechas en cadenas.
    • Convierte cadenas en números reales o fechas.

Crear una columna clave por concatenación

El modelo de datos en PowerPivot permite solo una única columna de clave. No admite claves compuestas que puede encontrar en las fuentes de datos externas. Por lo tanto, si existen claves compuestas en una tabla en la fuente de datos, debe combinarlas en una sola columna de clave para la tabla en el modelo de datos.

Puede utilizar la función CONCATENAR de DAX para combinar dos columnas en una sola columna en una tabla en el modelo de datos. La función DAX CONCATENAR une dos cadenas de texto en una cadena de texto. Los elementos unidos pueden ser texto, números o valores booleanos representados como texto o una combinación de esos elementos. También puede utilizar una referencia de columna si la columna contiene los valores adecuados.

= CONCATENATE ([Column1], [Column2])

La función DAX CONCATENATE acepta solo dos argumentos. Si alguno de los argumentos no es del tipo de datos de texto, se convertirá a texto. La función DAX CONCATENATE devuelve la cadena concatenada.

Fecha basada en la fecha Partes extraídas de una fecha de texto

El modelo de datos en Power Pivot admite un tipo de datos datetime para los valores de fecha y hora. Las funciones de DAX que funcionan con valores de fecha y / o hora requieren el tipo de datos de fecha y hora para los argumentos.

Si su fuente de datos contiene fechas de un formato diferente, primero debe extraer las partes de la fecha utilizando una fórmula DAX y combinar esas partes para constituir un tipo de datos de fecha y hora DAX válido.

Puede utilizar las siguientes funciones de DAX para extraer y componer fechas:

DATE - Devuelve la fecha especificada en formato de fecha y hora.

DATEVALUE - Convierte una fecha en forma de texto en una fecha en formato de fecha y hora.

TIMEVALUE - Convierte una hora en formato de texto a una hora en formato de fecha y hora.

Definición de un formato de fecha personalizado

Suponga que las fechas en su fuente de datos no están representadas por un formato estándar. Puede definir un formato de fecha personalizado para asegurarse de que los valores se manejen correctamente. La función DAX FORMAT le permite convertir un valor en texto de acuerdo con el formato especificado.

FORMAT (<value>, <format_string>)

La función FORMAT devuelve una cadena que contiene un valor con el formato definido por format_string.

Puede utilizar formatos de fecha y hora predefinidos o puede crear formatos de fecha y hora definidos por el usuario para el argumento format_string de la función FORMAT.

A continuación se muestran los nombres de formato de fecha y hora predefinidos. Si utiliza cadenas distintas de estas cadenas predefinidas, se interpretarán como un formato de fecha y hora personalizado.

S. No. Format_String y descripción
1

"General Date"

Muestra una fecha y / o una hora. Por ejemplo, 2/10/2015 10:10:32 AM

2

"Long Date" or "Medium Date"

Muestra una fecha según el formato de fecha larga. Por ejemplo, miércoles 07 de marzo de 2016

3

"Short Date"

Muestra una fecha con formato de fecha corta. Por ejemplo, 2/03/2016

4

"Long Time"

Muestra una hora con formato de hora larga.

Normalmente incluye horas, minutos y segundos.

Por ejemplo, 10:10:32 a. M.

5

"Medium Time"

Muestra una hora en formato de 12 horas.

Por ejemplo, 09:30 p.m.

6

"Short Time"

Muestra una hora en formato de 24 horas.

Por ejemplo, 14:15

Alternativamente, puede utilizar los caracteres de la siguiente tabla para crear formatos de fecha / hora definidos por el usuario.

S. No. Descripción del personaje
1

:

Separador de tiempo.

Separador de tiempo. Separa las horas, los minutos y los segundos cuando se formatean los valores de hora.

2

/

Separador de fecha.

Separa el día, el mes y el año en que se formatean los valores de fecha.

3

%

Se utiliza para indicar que el siguiente carácter debe leerse como formato de una sola letra sin tener en cuenta las letras finales. También se usa para indicar que un formato de una sola letra se lee como un formato definido por el usuario.

A continuación se muestran los detalles de los distintos personajes.

  • %d - Muestra el día como un número sin un cero inicial (por ejemplo, 5).

  • %dd - Muestra el día como un número con un cero inicial (por ejemplo, 05).

  • %ddd - Muestra el día como una abreviatura (por ejemplo, sol).

  • %dddd - Muestra el día como un nombre completo (por ejemplo, domingo).

  • %M - Muestra el mes como un número sin un cero inicial (por ejemplo, enero se representa como 1).

  • %MM - Muestra el mes como un número con un cero inicial (por ejemplo, enero se representa como 01).

  • %MMM - Muestra el mes como una abreviatura (por ejemplo, enero se representa como enero).

  • %MMMM - Muestra el mes como un nombre de mes completo (por ejemplo, enero).

  • %gg - Muestra la cadena de período / era (por ejemplo, AD).

  • %h- Muestra la hora como un número sin ceros a la izquierda utilizando el reloj de 12 horas (por ejemplo, 1:15:15 PM). Utilizar%h si este es el único carácter en su formato numérico definido por el usuario.

  • %hh - Muestra la hora como un número con ceros a la izquierda utilizando el reloj de 12 horas (por ejemplo, 01:15:15 PM).

  • %H- Muestra la hora como un número sin ceros iniciales utilizando el reloj de 24 horas (por ejemplo, 13:15:15, 1:15:15). Utilice% H si este es el único carácter en su formato numérico definido por el usuario.

  • %HH - Muestra la hora como un número con ceros a la izquierda utilizando el reloj de 24 horas (por ejemplo, 13:15:15, 1:15:15).

  • %m- Muestra el minuto como un número sin ceros a la izquierda (por ejemplo, 2: 1: 15). Utilice% m si este es el único carácter en su formato numérico definido por el usuario.

  • %mm - Muestra el minuto como un número con ceros a la izquierda (por ejemplo, 2:01:15).

  • %s- Muestra el segundo como un número sin ceros a la izquierda (por ejemplo, 2: 15: 5). Utilice% s si este es el único carácter en su formato numérico definido por el usuario.

  • %ss - Muestra el segundo como un número con ceros a la izquierda (por ejemplo, 2:15:05).

  • %f- Muestra fracciones de segundos. Por ejemploff muestra centésimas de segundo, mientras que ffffmuestra diez milésimas de segundos. Puedes usar hasta sietefsímbolos en su formato definido por el usuario. Utilizar%f si este es el único carácter en su formato numérico definido por el usuario.

  • %t- Utiliza el reloj de 12 horas y muestra una A mayúscula para cualquier hora antes del mediodía; muestra una P mayúscula para cualquier hora entre el mediodía y las 11:59 p.m. Utilice% t si este es el único carácter en su formato numérico definido por el usuario.

  • %tt- Para los lugares que usan un reloj de 12 horas, muestra AM en mayúscula con cualquier hora antes del mediodía; muestra una PM en mayúscula con cualquier hora entre el mediodía y las 11:59 p.m. Para las configuraciones regionales que usan un reloj de 24 horas, no muestra nada.

  • %y- Muestra el número de año (0-9) sin ceros a la izquierda. Utilizar%y si este es el único carácter en su formato numérico definido por el usuario.

  • %yy - Muestra el año en formato numérico de dos dígitos con un cero inicial, si corresponde.

  • %yyy - Muestra el año en formato numérico de cuatro dígitos.

  • %yyyy - Muestra el año en formato numérico de cuatro dígitos.

  • %z- Muestra el desplazamiento de la zona horaria sin un cero a la izquierda (por ejemplo, -8). Utilizar%z si este es el único carácter en su formato numérico definido por el usuario.

  • %zz- Muestra el. Desplazamiento de zona horaria con un cero a la izquierda (por ejemplo, -08)

  • %zzz - Muestra la diferencia de zona horaria completa (por ejemplo, -08: 00).

Como puede observar, las cadenas de formato distinguen entre mayúsculas y minúsculas. Se puede obtener un formato diferente usando un caso diferente.

Cambio de tipos de datos de salidas de fórmulas DAX

En las fórmulas de DAX, el tipo de datos de la salida está determinado por las columnas de origen y no puede especificar explícitamente el tipo de datos del resultado. Esto se debe a que Power Pivot determina el tipo de datos óptimo. Sin embargo, puede usar las conversiones de tipo de datos implícitas realizadas por Power Pivot para manipular el tipo de datos de salida. De lo contrario, puede utilizar determinadas funciones de DAX para convertir el tipo de datos de salida.

Using the Implicit Data Type Conversions

  • Para convertir una fecha o una cadena numérica en un número, multiplique por 1.0. Por ejemplo, = (HOY () + 5) * 1.0. Esta fórmula calcula la fecha actual más 5 días y convierte el resultado en un valor entero.

    • Para convertir un valor de fecha, número o moneda en una cadena, concatene el valor con una cadena vacía. Por ejemplo, = Hoy () & ""

Using the DAX Functions for Data Type Conversions

Puede utilizar las funciones de DAX para lo siguiente:

  • Conversión de números reales en enteros.
  • Conversión de números reales, enteros o fechas en cadenas.
  • Conversión de cadenas en números reales o fechas.

Aprenderá esto en las siguientes secciones.

Convertir números reales en enteros

Puede utilizar las siguientes funciones de DAX para convertir números reales en enteros:

ROUND (<number>, <num_digits>) - Redondea un número al número especificado de dígitos y devuelve un número decimal.

CEILING (<number>, <significance>) - Redondea un número hacia arriba, al entero más cercano o al múltiplo significativo más cercano y devuelve un número decimal.

FLOOR (<number>, <significance>) - Redondea un número hacia abajo, hacia cero, al múltiplo significativo más cercano y devuelve un número decimal.

Conversión de números reales, enteros o fechas en cadenas

Puede utilizar las siguientes funciones de DAX para convertir números reales, enteros o fechas en cadenas:

FIXED (<number>, [<decimals>], [<no_comma>])- Redondea un número y devuelve el resultado como texto. El número de dígitos a la derecha del punto decimal es 2 o el número especificado de decimales. El resultado es con comas u opcionalmente sin comas.

FORMAT (<value>, <format_string>) - Convierte un valor en texto según el formato especificado.

Ya aprendió sobre el uso de la función Formato para convertir fechas en cadenas.

Conversión de cadenas en números reales o fechas

Puede utilizar las siguientes funciones de DAX para convertir cadenas en números o fechas reales:

VALUE (<text>) - Convierte una cadena de texto que representa un número en un número.

DATEVALUE (date_text) - Convierte una fecha en forma de texto en una fecha en formato de fecha y hora.

TIMEVALUE (time_text) - Convierte una hora en formato de texto a una hora en formato de fecha y hora.