Tutorial de DAX

Combiner.CombineTextByLengths

La función Combiner.CombineTextByLengths devuelve una función que combina el número de caracteres indicados de cada texto en un único texto.

Sintaxis

Combiner.CombineTextByLengths(
    lengths as list,
    optional template as nullable text
) as function

Parámetros
  • lengths: lista de longitudes a extraer de cada texto
  • template: (opcional) parámetro no documentado
Información adicional

Para cada texto al que se aplique esta función se extraerá una longitud del parámetro lenghts, siendo ésta el número de caracteres a devolver del comienzo del texto en cuestión. Así, si la función Combiner.CombineTextByLengths se aplica a los textos "perro" y "gato" y la lista de longitudes incluye los valores 3 y 2, el resultado final estará formado por el texto "perga" (los tres primeros caracteres del texto "perro" y los dos primeros caracteres del texto "gato").

Si la lista de longitudes incluye menos valores que textos, los textos que no tengan una longitud asociada se ignoran.

Si la lista de longitudes incluye más valores que textos, los textos inexistentes a los que se asociarían dichas longitudes quedan representados en el resultado de la función por un espacio en blanco (véase ejemplo más adelante).

Ejemplos

En este primer ejemplo se va a aplicar la función a los textos "Marte", "Júpiter" y "Saturno", estando la lista de longitudes formada por los valores 2, 3 y 1, por lo que los textos a concatenar son, por lo tanto, "Ma", "Júp" y "S" respectivamente.

let
    textos = {"Marte", "Júpiter", "Saturno"}
in
    Combiner.CombineTextByLengths(
    {2, 3, 1}
)(textos)

MaJúpS
Función M Combiner.CombineTextByLengths

Si el número de textos es mayor que el número de longitudes, los textos sin una longitud asociada se ignoran:

    textos = {"Marte", "Júpiter", "Saturno", "Urano", "Plutón"}
in
    Combiner.CombineTextByLengths(
    {2, 3, 1}
)(textos)

MaJúpS

Función M Combiner.CombineTextByLengths

Si, por el contrario, hay más longitudes que textos, los textos a los que se asociarían estas longitudes quedan representados por un espacio en blanco:

let
    textos = {"Marte", "Júpiter", "Saturno"}
in
    Combiner.CombineTextByLengths(
    {2, 3, 1, 2, 5}
)(textos)

"MaJúpS  "

Función M Combiner.CombineTextByLengths

Podemos confirmar que estas longitudes sin un texto asociado quedan representadas por un espacio en blanco (y no se ignoran, simplemente) si medimos la longitud del texto devuelto por la función Combiner.CombineTextByLengths:

let
    textos = {"Marte", "Júpiter", "Saturno"}
in
    Text.Length(
        Combiner.CombineTextByLengths(
        {2, 3, 1, 2, 5}
        )(textos)
    )

8

Función M Combiner.CombineTextByLengths

Comprobamos que la cadena de texto devuelta tiene 8 caracteres: 6 extraídos de los textos "Marte", "Júpiter" y "Saturno" (2, 3 y 1 caracteres, respectivamente) y otros dos espacios en blanco correspondientes a las longitudes 2 y 5 que no tienen un texto asociado.

Categoría
Funciones de combinador
Enviado por admin el Mié, 12/08/2020 - 11:00