Compartir vía


COMBINEVALUES

Se aplica a:columna Calculadatabla calculadaMedidacálculo visual

Combina dos o más cadenas de texto en una cadena de texto. El propósito principal de esta función es admitir relaciones de varias columnas en los modelos de DirectQuery. Consulte comentarios para obtener más información.

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 combinará en una sola cadena de texto.

Valor devuelto

Cadena concatenada.

Observaciones

  • La función COMBINEVALUES asume, pero no valida, que cuando los valores de entrada son diferentes, las cadenas de salida también son diferentes. En función de esta suposición, cuando se usa COMBINEVALUES para crear columnas calculadas con el fin de crear una relación que combina varias columnas de dos tablas 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])
    

    A continuación, cree una relación entre Table1[CalcColumn] y Table2[CalcColumn]. A diferencia de otras funciones y operadores de DAX, que se traducen literalmente a los operadores y funciones 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 un rendimiento de consulta mucho mejor que uno que implique funciones y operadores SQL complejos.

  • La función COMBINEVALUES se basa en los usuarios para elegir el delimitador adecuado para asegurarse de que las combinaciones únicas de valores de entrada producen cadenas de salida distintas, pero no valida que la suposición 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 serán las mismas "|| ", que parecen indicar que las dos filas son una coincidencia en la operación de combinación. Las dos filas no se combinan si ambas tablas proceden del mismo origen de DirectQuery, aunque se combinan si se importan ambas tablas.

Ejemplo

La siguiente consulta DAX:

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

Devuelve la siguiente tabla de columna única:

[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