CONCATENATE 関数 (DAX)
2 つのテキスト文字列を 1 つのテキスト文字列に結合します。
構文
CONCATENATE(<text1>, <text2>)
パラメーター
項目 |
定義 |
---|---|
text1、text2 |
1 つのテキスト文字列に結合するテキスト文字列。文字列にはテキストまたは数値を含めることができます。 列参照を使用することもできます。 |
戻り値
連結された文字列。
説明
CONCATENATE 関数は 2 つのテキスト文字列を 1 つのテキスト文字列に結合します。結合対象のアイテムには、テキスト、数値、テキストで表現されたブール値、またはこれらのアイテムの組み合わせを指定できます。列に適切な値が格納されている場合は、列参照を使用することもできます。
DAX の CONCATENATE 関数は、引数を 2 つしか受け取ることができません。複数の式を連結する必要がある場合は、一連の計算を作成できます。連結演算子 (&) を使用すると、簡潔な式ですべてを連結できます。
列参照を使用しないでテキスト文字列を直接使用するには、個々の文字列を二重引用符で囲む必要があります。
例: リテラルの連結
説明
次の例は、引数として指定された 2 つの文字列値を連結して新しい文字列値を作成する数式です。
コード
=CONCATENATE("Hello ", "World")
例: 列内の文字列の連結
説明
次の例は、電話帳に記載されている形式で顧客のフル ネームを返す数式です。入れ子になった関数が 2 つ目の引数として使用されていることに注意してください。これは、引数として使用する値が 3 つ以上ある場合に、複数の文字列を連結する方法の 1 つです。
コード
=CONCATENATE(Customer[LastName], CONCATENATE(", ", Customer[FirstName]))
例: 列内の文字列の条件連結
説明
次の例は、名、ミドル ネームの頭文字、および姓の組み合わせとして、顧客のフル ネームを格納する新しい計算列を Customer テーブルに作成する数式です。ミドル ネームがない場合は、名のすぐ後に姓を連結します。ミドル ネームがある場合は、ミドル ネームの最初の文字だけを使用し、この頭文字の後にピリオドを付けます。
コード
=CONCATENATE( [FirstName]&" ", CONCATENATE( IF( LEN([MiddleName])>1, LEFT([MiddleName],1)&" ", ""), [LastName]))
コメント
この数式では、入れ子になった CONCATENATE 関数および IF 関数をアンパサンド (&) 演算子と共に使用し、条件に応じて 3 つの文字列値を連結し、区切りにスペースを付加しています。
例: 異なるデータ型の列の結合
次の例では、異なるデータ型を持つ列の値を連結する方法を示します。連結しようとしている値が数値であれば、値は暗黙的にテキストに変換されます。両方の値が数値であれば、両方の値はテキストにキャストされ、文字列の場合と同様に連結されます。
製品の説明 |
Product abbreviation (複合キーの列 1) |
Product number (複合キーの列 2) |
新しく生成されたキー列 |
---|---|---|---|
マウンテン バイク |
MTN |
40 |
MTN40 |
Mountain bike |
MTN |
42 |
MTN42 |
コード
=CONCATENATE('Products'[Product abbreviation],'Products'[Product number])
コメント
DAX の CONCATENATE 関数は引数を 2 つしか受け取りませんが、Excel の CONCATENATE 関数は最大 255 個の引数を受け取ります。もっと多くの引数を追加する必要がある場合は、アンパサンド (&) 演算子を使用できます。たとえば、次の数式では MTN-40 および MTN-42 という結果が生成されます。
=[Product abbreviation] & "-" & [Product number]