次の方法で共有


NAMEOF

適用対象: 計算列計算テーブルメジャービジュアル計算

テーブル、列、メジャー、またはカレンダーの名前をテキスト文字列として返します。 省略可能なパラメーターは、返される名前のコンポーネントと、結果をエスケープする方法を制御します。

構文

NAMEOF ( <object> [, <component> [, <escaped>]] )

パラメーター

任期 Definition
object 取得する名前を持つテーブル、列、メジャー、または予定表。
component (省略可能)返す修飾名のどの部分を指定する列挙体。 省略した場合、既定値は FULL「コンポーネントの値」を参照してください。
escaped (省略可能)返される名前のエスケープ方法を指定する列挙体。 省略した場合、既定値は ESCAPED「エスケープされた値」を参照してください。

コンポーネントの値

component パラメーターは、次の値を受け入れます。

価値 説明
TABLE テーブル名を返します。 オブジェクトがテーブル (カレンダーなど) に関連付けられていない場合にエラーを返します。
COLUMN 列名を返します。 オブジェクトが列でない場合はエラーを返します。
MEASURE メジャー名を返します。 オブジェクトがメジャーでない場合はエラーを返します。
CALENDAR カレンダー名を返します。 オブジェクトがカレンダーでない場合はエラーを返します。
FULL (既定値)オブジェクトの完全修飾名を返します。
SELF オブジェクト自体の名前を返します。列またはメジャーの列またはメジャー名、またはテーブルとカレンダーのテーブル/カレンダー名を返します。
PARENT 列とメジャーの親テーブル名を返します。 テーブルと予定表のエラーを返します。

エスケープされた値

escaped パラメーターは、次の値を受け入れます。

価値 説明
ESCAPED (既定値)完全な DAX エスケープを含む名前を返します。テーブル名は単一引用符で囲まれ、列名とメジャー名は角かっこで囲まれています。
UNESCAPED 区切り記号またはエスケープ文字を含まない生の名前を返します。 親コンポーネントと子コンポーネントの両方を含む完全修飾名のエラーを返します。
MINIMALLYESCAPED 名前が必要な場合にのみエスケープが適用された名前を返します。 単純な文字、数字、およびアンダースコアのみを含む名前は、区切り記号なしで返されます。 スペースまたは特殊文字を含む名前は、エスケープと共に返されます。

戻り値

コンポーネントとエスケープされたパラメーターに基づいて書式設定された、要求された名前を持つテキスト文字列。

注釈

  • object引数のみを使用して呼び出されると、NAMEOF は以前のバージョンと同じように動作し、完全修飾されたエスケープされた名前を返します。 componentは既定でFULLに設定され、escapedは既定でESCAPEDされるため、戻り値の形式は次のようになります。
    • テーブルの場合: 'TableName'
    • 列の場合: 'TableName'[ColumnName]
    • メジャーの場合: 'TableName'[MeasureName]
    • カレンダーの場合: 'CalendarName'
    • バリエーション列の場合: 'TableName'[ColumnName].[VariationName]
  • 変数と動的式は、NAMEOF の引数としてサポートされていません。
  • この関数は、計算列または行レベル セキュリティ (RLS) 規則で使用する場合、DirectQuery モードでは使用できません。

入力の種類別のコンポーネントの動作

次の表は、既定のESCAPED モードを使用した、さまざまな入力の種類の各component値の結果を示しています。 "Error" は、組み合わせによってエラーが返されることを示します。

入力タイプ TABLE COLUMN MEASURE CALENDAR FULL SELF PARENT
列- Sales[Sales Amount] 'Sales' [Sales Amount] エラー エラー 'Sales'[Sales Amount] [Sales Amount] 'Sales'
テーブル- Sales 'Sales' エラー エラー エラー 'Sales' 'Sales' エラー
測定- Sales[m1] 'Sales' エラー [m1] エラー 'Sales'[m1] [m1] 'Sales'
カレンダー- myCalendar エラー エラー エラー 'myCalendar' 'myCalendar' 'myCalendar' エラー

エスケープされた動作

escaped パラメーターは、component ステップによって生成される名前の書式設定方法を制御します。 次の表は、完全にエスケープされた名前を参照として使用し、各 escaped 値の出力を示しています。

完全にエスケープされた名前 ESCAPED UNESCAPED MINIMALLYESCAPED
'Sales' 'Sales' Sales Sales
'Sales'[Sales Amount] 'Sales'[Sales Amount] エラー Sales[Sales Amount]
'Sales'[m1] 'Sales'[m1] エラー Sales[m1]
[Amount] [Amount] Amount Amount
'Sales Region' 'Sales Region' Sales Region 'Sales Region'
'Sales Region'[Column] 'Sales Region'[Column] エラー 'Sales Region'[Column]
[Order Quantity] [Order Quantity] Order Quantity [Order Quantity]

UNESCAPED は、結果が区切り記号なしであいまいになるため、完全修飾名 (テーブルと列/メジャー コンポーネントの両方を含む名前) のエラーを返します。

特殊文字のエスケープルール

次のエスケープ規則は、 DAX 名前区切り記号内で適用されます。

  • テーブル名 (単一引用符で区切られた): テーブル名のリテラル一重引用符 (') は、2 つの単一引用符 ('') としてエスケープされます。
  • 列名とメジャー名 (角かっこ区切り): 列またはメジャー名のリテラル右角かっこ (]) は、 ]]としてエスケープされます。 左角かっこ ([) はエスケープを必要としません。
完全にエスケープされた名前 ESCAPED UNESCAPED MINIMALLYESCAPED
'Ta''''ble' (名前に ' があるテーブル) 'Ta''''ble' Ta''ble Ta''ble
[colu[]]mn] (名前に ] を含む列) [colu[]]mn] colu[]mn [colu[]]mn]

例 1

次の DAX クエリは、列の完全修飾名を返します。

EVALUATE
{ NAMEOF ( 'Sales'[ORDER QUANTITY] ) }

戻り値:

[値]
'Sales'[Order Quantity]

例 2

次の DAX クエリは、メジャーの完全修飾名を返します。

DEFINE
    MEASURE Sales[Projected Sales] =
        SUM ( 'Sales'[Sales Amount] ) * 1.06

EVALUATE
{ NAMEOF ( [Projected Sales] ) }

戻り値:

[値]
'Sales'[Projected Sales]

例 3

次の DAX クエリでは、 component パラメーターを使用して、列参照からテーブル名のみを抽出します。

EVALUATE
{ NAMEOF ( 'Sales'[Sales Amount], TABLE ) }

戻り値:

[値]
'Sales'

例 4

次の DAX クエリは、エスケープされていないテーブル名を返します。

EVALUATE
{ NAMEOF ( 'Sales', FULL, UNESCAPED ) }

戻り値:

[値]
Sales

例 5

次の DAX クエリでは、 component パラメーターと escaped パラメーターを使用して、列の最小エスケープされた親テーブル名を返します。

EVALUATE
{ NAMEOF ( 'Sales'[Sales Amount], PARENT, MINIMALLYESCAPED ) }

戻り値:

[値]
Sales