Aracılığıyla paylaş


COMBINEVALUES

Şunlar için geçerlidir:Hesaplanan sütunHesaplanan tabloÖlçüGörsel hesaplama

İki veya daha fazla metin dizesini tek bir metin dizesinde birleştirir. Bu işlevin birincil amacı, DirectQuery modellerinde çok sütunlu ilişkileri desteklemektir. Ayrıntılar için bkz. açıklamalar.

Sözdizimi

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

Parametre

Terim Tanım
delimiter Birleştirme sırasında kullanılacak ayırıcı. Sabit bir değer olmalıdır.
expression Değeri tek bir metin dizesine birleştirilecek bir DAX ifadesi.

Dönüş değeri

Birleştirilmiş dize.

Açıklamalar

  • COMBINEVALUES işlevi, giriş değerleri farklı olduğunda çıkış dizelerinin de farklı olduğunu varsayar ancak doğrulamaz. Bu varsayıma bağlı olarak, iki DirectQuery tablosundan birden çok sütunu birleştiren bir ilişki oluşturmak için hesaplanan sütunlar oluşturmak için COMBINEVALUES kullanıldığında, sorgu zamanında iyileştirilmiş bir birleştirme koşulu oluşturulur. Örneğin, kullanıcılar Tablo1(Sütun1, Sütun2) ile Tablo2(Sütun1, Sütun2) arasında bir ilişki oluşturmak isterse, her tabloda biri olmak üzere iki hesaplanmış sütun oluşturabilir:

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

    ve

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

    Ardından Table1[CalcColumn] ile Table2[CalcColumn]arasında bir ilişki oluşturun. Karşılık gelen SQL işleçlerine ve işlevlerine tam anlamıyla çevrilen diğer DAX işlevlerin ve işleçlerin aksine, yukarıdaki ilişki aşağıdaki gibi bir SQL birleştirme koşulu oluşturur:

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

    ve

    (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
    
  • Birleştirme koşulu, karmaşık SQL işleçleri ve işlevleri içeren sorgu performansından çok daha iyi bir performans sunabilir.

  • COMBINEVALUES işlevi, benzersiz giriş değerleri bileşimlerinin ayrı çıkış dizeleri ürettiğinden emin olmak için kullanıcıların uygun sınırlayıcıyı seçmesine dayanır, ancak varsayımın doğru olduğunu doğrulamaz. Örneğin, kullanıcılar sınırlayıcı olarak "| " seçerse, ancak Tablo1'deki bir satırda Table1[Column1] = "| " ve Table2 [Column2] = " "varsa, Tablo2'deki bir satırda Table2[Column1] = " " ve Table2[Column2] = "| "varsa, iki birleştirilmiş çıktı aynı "|| "olur ve bu da iki satırın birleştirme işleminde bir eşleşme olduğunu gösterir. İki tablo da aynı DirectQuery kaynağından geliyorsa, her iki tablo da içeri aktarılırsa birlikte birleştirilse de, iki satır birbirine katılmaz.

Örnek

Aşağıdaki DAX sorgusu:

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

Aşağıdaki tek sütunlu tabloyu döndürür:

[Ay]
Ocak 2020
Şubat 2020
Mart 2020
Nisan 2020
Mayıs 2020
Haziran 2020
Temmuz 2020
Ağustos 2020
Eylül 2020, Cumartesi
Ekim 2020, Cumartesi
Kasım 2020
Aralık 2020, Cumartesi
Ocak 2021
Ocak 2021
Şubat 2021, Şubat
Mart 2021
Nisan 2021, Nisan
Mayıs 2021
Haziran 2021
Temmuz 2021, Temmuz
Ağustos 2021, Ağustos
Eylül 2021, Cumartesi
Ekim 2021, Cumartesi
Kasım 2021, Kasım
Aralık 2021, Cumartesi