COMBINEVALUES
Şunlar için geçerlidir:Hesaplanan sütun
Hesaplanan 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]
ileTable2[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ırdaTable1[Column1] = "| "
veTable2 [Column2] = " "
varsa, Tablo2'deki bir satırdaTable2[Column1] = " "
veTable2[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 |