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]
yTable2[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 tieneTable1[Column1] = "| "
yTable2 [Column2] = " "
, mientras que una fila de Table2 tieneTable2[Column1] = " "
yTable2[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 |