Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Power Query M usa tipos para clasificar valores para tener un conjunto de datos más estructurado. En este artículo se describen los tipos de M más usados y cómo convertir un tipo a otro.
Tipos usados habitualmente
Los tipos de datos hacen referencia a cualquier tipo que se use para aclarar la estructura de datos específicos. Los tipos de datos más usados son tipos primitivos. Estos tipos incluyen:
-
type any, que clasifica cualquier valor. -
type null, que clasifica el valor NULL. -
type logical, que clasifica los valores true y false. -
type number, que clasifica valores numéricos. -
type time, que clasifica valores de hora. -
type date, que clasifica valores de fecha. -
type datetime, que clasifica valores de fecha y hora. -
type datetimezone, que clasifica valores de fecha, hora y zona horaria. -
type duration, que clasifica valores de duración. -
type text, que clasifica valores de texto. -
type binary, que clasifica valores binarios. -
type type, que clasifica valores de tipo. -
type list, que clasifica valores de lista. -
type record, que clasifica valores de registro. -
type table, que clasifica valores de tabla. -
type function, que clasifica valores de función. -
type anynonnull, que clasifica todos los valores menos NULL. -
type none, que no clasifica valores.
Para obtener más información sobre estos tipos, vaya a Tipos.
Además de estos tipos de datos comunes, también hay un conjunto de tipos de datos con el formato *.Type. Los tipos de datos más usados de este formato son:
-
Byte.Type, que clasifica un valor numérico de 8 bits. -
Int8.Type, que clasifica un valor numérico de 8 bits. -
Int16.Type, que clasifica un valor numérico de 16 bits. -
Int32.Type, que clasifica un valor numérico de 32 bits. -
Int64.Type, que clasifica un valor numérico de 64 bits. -
Single.Type, que clasifica un valor de número flotante de 9 dígitos. -
Double.Type, que clasifica un valor de número flotante de 17 dígitos. -
Decimal.Type, que clasifica un valor de número flotante de 15 dígitos. -
Currency.Type, que clasifica un valor de número de 19 dígitos con cuatro dígitos a la derecha del separador ".". -
Percentage.Type, que clasifica un valor de número de 15 dígitos con una máscara para dar formato al valor como porcentaje. -
Guid.Type, que clasifica un valor de texto GUID.
Los tipos primitivos también se pueden escribir en el *.Type formato . Por lo tanto, puede escribir number como Number.Type, record como Record.Type, etc.
Cuando use cualquiera de estos tipos, tenga en cuenta que, al igual que todo el código M, estos tipos distinguen mayúsculas de minúsculas.
La tabla siguiente contiene más información sobre cada uno de estos tipos.
| Tipo de dato | Descripción |
|---|---|
any |
El any tipo de datos es el estado proporcionado cuando un valor no tiene una definición de tipo de datos explícita. El any tipo es el tipo de datos que clasifica todos los valores. |
binary |
El binary tipo de datos se puede usar para representar cualquier otro dato con un formato binario. |
type |
Valor que clasifica otros valores. Para obtener más información, vaya a Tipos. |
null |
Representa la ausencia de un valor o un valor de estado indeterminado o desconocido. |
anynonnull |
Representa cualquier tipo que no sea null. |
date |
Representa solo una fecha (sin parte de hora). |
time |
Representa just time (sin parte de fecha). |
datetime |
Representa un valor de fecha y hora. La parte de hora de una fecha se almacena como una fracción en múltiplos completos de 1/300 segundos (3,33 ms). Se admiten fechas entre los años 1900 y 9999. |
datetimezone |
Representa una fecha y hora UTC con un desplazamiento de zona horaria. |
duration |
Representa un período de tiempo. Este tipo se puede agregar o restar de un datetime campo con resultados correctos. Para obtener más información, vaya a Duración. |
text |
Cadena de datos de caracteres Unicode. Puede ser cadenas, números o fechas representadas en un formato de texto. La longitud máxima de cadena es de 268 435 456 caracteres Unicode (donde cada carácter Unicode es de dos bytes) o 536 870 912 bytes. |
logical |
Valor booleano de true o false. |
list |
Valor que genera una secuencia de valores cuando se enumera. Para obtener más información, vaya a Tipos de lista y Valores de lista. |
record |
Secuencia ordenada de campos. Cada campo contiene un nombre de campo y un valor de campo. Para obtener más información, vaya a Tipos de registro y Valores de registro. |
table |
Secuencia ordenada de filas divididas en columnas. Para obtener más información, vaya a Tipos de tabla y Valores de tabla. |
function |
Valor que asigna un conjunto de argumentos a un único valor. Para obtener más información, vaya a Funciones y tipos de función. |
number |
Representa cualquier número usado para las operaciones numéricas y aritméticas. Para obtener más información, vaya a Número. |
Decimal.Type |
Representa un número de punto flotante de 64 bits (ocho bytes). Es el tipo de número más común y corresponde a los números como se suele pensar en ellos. Aunque está diseñado para controlar números con valores fraccionarios, también controla números enteros.
Decimal.Type Puede controlar valores negativos de –1,79E +308 a –2,23E –308, 0 y valores positivos de 2,23E –308 a 1,79E + 308. Por ejemplo, los números como 34, 34.01 y 34.000367063 son números decimales válidos. La precisión más grande que se puede representar en un Decimal.Type es de 15 dígitos. El separador decimal puede producirse en cualquier parte del número.
Decimal.Type corresponde a cómo Excel almacena sus números. Tenga en cuenta que un número de punto flotante binario no puede representar todos los números dentro de su intervalo admitido con una precisión de 100%. Por lo tanto, pueden producirse pequeñas diferencias de precisión al representar determinados números decimales. |
Currency.Type |
Este tipo de datos tiene una ubicación fija para el separador decimal. El separador decimal siempre tiene cuatro dígitos a su derecha y permite 19 dígitos de importancia. El valor más grande que puede representar es 922.337.203.685.477.5807 (positivo o negativo). A diferencia Decimal.Typede , siempre Currency.Type es preciso y, por tanto, resulta útil en los casos en los que la imprecisión de la notación de punto flotante podría introducir errores. |
Percentage.Type |
Fundamentalmente igual que un Decimal.Type, pero tiene una máscara para dar formato a los valores como un valor de porcentaje. |
Int8.Type |
Representa un valor entero con signo de 8 bits (un byte). Dado que es un entero, no tiene dígitos a la derecha del separador decimal. Permite 3 dígitos; un número entero positivo o negativo entre –128 y 127. Al igual que con Currency.Type, Int8.Type puede ser útil en los casos en los que necesita controlar el redondeo. |
Int16.Type |
Representa un valor entero con signo de 16 bits (dos bytes). Dado que es un entero, no tiene dígitos a la derecha del separador decimal. Permite 6 dígitos; un número entero positivo o negativo entre –32.768 (–2^15) y 32.767 (2^15-1). Al igual que con Currency.Type, Int16.Type puede ser útil en los casos en los que necesita controlar el redondeo. |
Int32.Type |
Representa un valor entero con signo de 32 bits (cuatro bytes). Dado que es un entero, no tiene dígitos a la derecha del separador decimal. Permite 10 dígitos; un número entero positivo o negativo entre –2,147,483,648 (–2^31) y 2,147,483,647 (2^31–1). Al igual que con Currency.Type, Int32.Type puede ser útil en los casos en los que necesita controlar el redondeo. |
Int64.Type |
Representa un valor entero con signo de 64 bits (ocho bytes). Dado que es un entero, no tiene dígitos a la derecha del separador decimal. Permite 19 dígitos; un número entero positivo o negativo entre –9,223,372,036,854,775,808 (–2^63) y 9,223,372,036,854,775,807 (2^63–1). Puede representar la mayor precisión posible de los distintos tipos de datos numéricos. Al igual que con Currency.Type, Int64.Type puede ser útil en los casos en los que necesita controlar el redondeo. |
Byte.Type |
Representa un valor entero de 8 bits (un byte) sin signo. Dado que es un entero sin signo, no tiene dígitos a la derecha de la posición decimal y solo puede contener valores positivos. Permite 3 dígitos; un número positivo entre 0 y 255. |
Single.Type |
Representa un número de punto flotante de precisión sencilla. Tiene un intervalo aproximado de –3,99 X 1038 a 3,99 X 1038 y admite aproximadamente 9 dígitos de precisión. También puede representar infinito positivo y negativo, y NaN (no un número). |
Double.Type |
Representa un número de punto flotante de precisión doble. Tiene un intervalo aproximado de –1,7976931348623158 X 10307 a 1,7976931348623158 X 10307 y admite aproximadamente 17 dígitos de precisión. También puede representar infinito positivo y negativo, y NaN (no un número). |
Guid.Type |
Representa un valor de texto de 128 bits que consta de 32 valores hexadecimales mediante el factor de forma de <8 valores> hexadecimales-4< valores> hexadecimales-4><< valores> hexadecimales-12< valores> hexadecimales, que componen el valor GUID. |
none |
Tipo de datos que clasifica ningún valor. |
Los únicos otros valores usados *.Type habitualmente son enumeraciones. Para obtener más información, vaya a Enumeraciones.
Conversión de tipos
El lenguaje de fórmulas M de Power Query tiene fórmulas para convertir entre tipos. Este es un resumen de las fórmulas de conversión en M.
Número
| Conversión de tipos | Descripción |
|---|---|
| Number.FromText(texto como texto) como número | Devuelve un valor numérico de un valor de texto. |
| Number.ToText(número como número) como texto | Devuelve un valor de texto de un valor numérico. |
| Number.From(valor como cualquiera) como número | Devuelve un valor numérico de un valor. |
| Byte.From(valor como cualquiera) como número | Devuelve un valor de número entero de 8 bits del valor especificado. |
| Int8.From(valor como cualquiera) como número | Devuelve un valor de número entero de 8 bits del valor especificado. |
| Int16.From(valor como cualquiera) como número | Devuelve un valor de número entero de 16 bits del valor especificado. |
| Int32.From(valor como cualquiera) como número | Devuelve un valor de número entero de 32 bits del valor especificado. |
| Int64.From(valor como cualquiera) como número | Devuelve un valor de número entero de 64 bits del valor especificado. |
| Single.From(valor como cualquiera) como número | Devuelve un valor numérico único del valor especificado. |
| Double.From(valor como cualquiera) como número | Devuelve un valor de número doble del valor especificado. |
| Decimal.From(valor como cualquiera) como número | Devuelve un valor de número decimal del valor especificado. |
| Currency.From(valor como cualquiera) como número | Devuelve un valor numérico monetario del valor especificado. |
| Percentage.From(valor como cualquiera) como número | Devuelve un valor de número de porcentaje del valor especificado. |
Texto
| Conversión de tipos | Descripción |
|---|---|
| Text.From(valor como cualquiera) como texto | Devuelve la representación textual de un valor binario, lógico, de número, de duración, de fecha, de hora, de fecha y hora o de fecha, hora y zona horaria. |
| Guid.From(valor como texto) como texto | Devuelve la representación GUID del texto especificado. |
Lógicos
| Conversión de tipos | Descripción |
|---|---|
| Logical.FromText(texto como texto) como lógico | Devuelve un valor lógico de true o false de un valor de texto. |
| Logical.ToText(lógico como lógico) como texto | Devuelve un valor de texto de un valor lógico. |
| Logical.From(valor como cualquiera) como lógico | Devuelve un valor lógico de un valor. |
Date, Time, DateTime y DateTimeZone
| Conversión de tipos | Descripción |
|---|---|
| FromText(texto como texto) como un valor Date, Time, DateTime o DateTimeZone | Devuelve un valor Date, Time, DateTime o DateTimeZone de un conjunto de formatos de fecha y un valor de referencia cultural. |
| . ToText(date, time, dateTime o dateTimeZone como date, time, datetime o datetimezone) como texto | Devuelve un valor de texto de un valor date, time, datetime o datetimezone. |
| .From(valor como cualquiera) | Devuelve un valor date, time, datetime o datetimezone de un valor. |
| .ToRecord(date, time, dateTime o dateTimeZone como date, time, datetime o datetimezone) | Devuelve un registro que contiene partes de un valor date, time, datetime o datetimezone. |