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 模式中使用此函式。

依輸入類型的元件行為

下表顯示了不同輸入類型下,使用預設component模式的每個ESCAPED值的結果。 「錯誤」表示組合回傳錯誤。

輸入類型 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 :

  • 表格名稱(單引號區隔): 在資料表名稱中,字面上的單引號(')會被轉為兩個單引號('')。
  • 欄名與度量名稱(括號內標示): 欄位或度量名稱中的字面閉括號(])可轉為 ]]。 開括號([)不需要脫離。
完全逃逸的名字 ESCAPED UNESCAPED MINIMALLYESCAPED
'Ta''''ble' (表中含 ' in 名稱) 'Ta''''ble' Ta''ble Ta''ble
[colu[]]mn] (欄位名稱為 ] in) [colu[]]mn] colu[]mn [colu[]]mn]

本文中的範例可以搭配範例 Adventure Works DW 2020 Power BI Desktop 模型使用。 若要取得模型,請參閱 DAX 範例模型。

範例 1

以下 DAX 查詢會回傳欄位的完全限定名稱:

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

退貨

[值]
「銷售」[訂單數量]

範例 2

以下 DAX 查詢會回傳測度的完整限定名稱:

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

EVALUATE
{ NAMEOF ( [Projected Sales] ) }

退貨

[值]
「銷售」[預計銷售]

範例 3

以下 DAX 查詢使用參數 component ,僅從欄位參考中擷取資料表名稱:

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

退貨

[值]
「銷售」

範例 4

以下 DAX 查詢會回傳一個未脫義的資料表名稱:

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

退貨

[值]
Sales

範例 5

以下 DAX 查詢使用 and componentescaped 參數來回傳欄位最小逃逸的父表名稱:

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

退貨

[值]
Sales