Compartir a través de


COMBINEVALUES

Se aplica a: Columna calculada Tabla calculada Medida Cálculo visual

combina dos o más cadenas de texto en una sola. El propósito principal de esta función es admitir relaciones de varias columnas en los modelos DirectQuery. Consulte Comentarios para obtener más detalles.

Sintaxis

COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)

Parámetros

Término Definición
delimiter Separador que se va a usar durante la concatenación. Debe ser un valor constante.
expression Expresión DAX cuyo valor se va a combinar en una sola cadena de texto.

Valor devuelto

Cadena concatenada.

Notas

  • La función COMBINEVALUES da por hecho, aunque no valida, que si los valores de entrada son diferentes, las cadenas de salida también son diferentes. En función de esta premisa, cuando se usa COMBINEVALUES para crear columnas calculadas con el fin de generar una relación que combina varias columnas de dos tablas de DirectQuery, se genera una condición de combinación optimizada en el momento de la consulta. Por ejemplo, si los usuarios quieren crear una relación entre Table1(Column1, Column2) y Table2(Column1, Column2), pueden crear dos columnas calculadas, una en cada tabla, como:

    Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
    

    y

    Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
    

    Y luego crear una relación entre Table1[CalcColumn] y Table2[CalcColumn]. A diferencia de otras funciones y operadores de DAX, que se traducen literalmente en los operadores y funciones de SQL correspondientes, la relación anterior genera un predicado de combinación de SQL como:

    (Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
    

    y

    (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
    
  • El predicado de combinación puede ofrecer potencialmente un rendimiento de consulta mucho mejor que uno que implique operadores y funciones de SQL complejos.

  • La función COMBINEVALUES se basa en los usuarios para elegir el delimitador adecuado con el fin de asegurarse de que combinaciones únicas de valores de entrada produzcan cadenas de salida distintas, pero no valida que la premisa sea verdadera. Por ejemplo, si los usuarios eligen "| " como delimitador, pero una fila de Table1 tiene Table1[Column1] = "| " y Table2 [Column2] = " ", mientras que una fila de Table2 tiene Table2[Column1] = " " y Table2[Column2] = "| ", las dos salidas concatenadas generan "|| ", lo que parece indicar que las dos filas son una coincidencia de la operación de combinación. Las dos filas no se combinan si ambas tablas proceden del mismo origen de DirectQuery, aunque sí lo hacen si ambas tablas se importan.

Ejemplo

La consulta DAX siguiente:

EVALUATE
DISTINCT (
    SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)

Devuelve la tabla siguiente de una sola columna:

[Mes]
Enero de 2020
Febrero de 2020
Marzo de 2020
Abril de 2020
Mayo de 2020
Junio de 2020
Julio de 2020
Agosto de 2020
Septiembre de 2020
Octubre de 2020
Noviembre de 2020
Diciembre de 2020
Enero de 2021
Enero de 2021
Febrero de 2021
Marzo de 2021
Abril de 2021
Mayo de 2021
Junio de 2021
Julio de 2021
Agosto de 2021
Septiembre de 2021
Octubre de 2021
Noviembre de 2021
diciembre de 2021