Partilhar via


VALORES COMBINADOS

Aplica-se a: Coluna calculada Tabela calculada Medida Cálculo visual

Junta duas ou mais cadeias de texto em uma cadeia de texto. O objetivo principal dessa função é oferecer suporte a relações de várias colunas em modelos DirectQuery. Consulte Observações para obter detalhes.

Sintaxe

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

Parâmetros

Termo Definição
delimitador Um separador para usar durante a concatenação. Deve ser um valor constante.
expressão Uma expressão DAX cujo valor será unido em uma única cadeia de caracteres de texto.

Valor devolvido

Uma cadeia de caracteres concatenada.

Observações

  • A função COMBINEVALUES assume, mas não valida, que quando os valores de entrada são diferentes, as cadeias de caracteres de saída também são diferentes. Com base nessa suposição, quando COMBINEVALUES é usado para criar colunas calculadas para criar uma relação que une várias colunas de duas tabelas DirectQuery, uma condição de junção otimizada é gerada no momento da consulta. Por exemplo, se os usuários quiserem criar uma relação entre Tabela1(Coluna1, Coluna2) e Tabela2(Coluna1, Coluna2), eles poderão criar duas colunas calculadas, uma em cada tabela, como:

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

    e

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

    E, em seguida, criar uma relação entre Table1[CalcColumn] e Table2[CalcColumn]. Ao contrário de outras funções e operadores DAX, que são traduzidos literalmente para os operadores e funções SQL correspondentes, a relação acima gera um predicado de junção SQL como:

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

    e

    (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
    
  • O predicado de junção pode potencialmente oferecer um desempenho de consulta muito melhor do que um que envolve operadores e funções SQL complexos.

  • A função COMBINEVALUES depende que os usuários escolham o delimitador apropriado para garantir que combinações exclusivas de valores de entrada produzam cadeias de caracteres de saída distintas, mas não valida que a suposição seja verdadeira. Por exemplo, se os usuários escolherem "| " como delimitador, mas uma linha na Tabela 1 tiver Table1[Column1] = "| " e Table2 [Column2] = " ", enquanto uma linha na Tabela 2 tiver Table2[Column1] = " " e Table2[Column2] = "| ", as duas saídas concatenadas serão as mesmas "|| ", o que parece indicar que as duas linhas são uma correspondência na operação de junção. As duas linhas não serão unidas se ambas as tabelas forem da mesma fonte do DirectQuery, embora sejam unidas se ambas as tabelas forem importadas.

Exemplo

A seguinte consulta DAX:

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

Devolve a seguinte tabela de coluna única:

[Mês]
Janeiro, 2020
Fevereiro, 2020
Março de 2020
Abril, 2020
Maio de 2020
Junho de 2020
Julho de 2020
Agosto de 2020
Setembro de 2020
Outubro de 2020
Novembro de 2020
Dezembro, 2020
Janeiro, 2021
Janeiro, 2021
Fevereiro, 2021
Março, 2021
Abril, 2021
Maio, 2021
Junho, 2021
Julho, 2021
Agosto, 2021
Setembro de 2021
Outubro, 2021
Novembro, 2021
Dezembro, 2021