NAMEOF

применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления

Возвращает имя таблицы, столбца, меры или календаря в виде текстовой строки. Необязательные параметры определяют, какой компонент возвращается имя и как будет экранирован результат.

Синтаксис

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

Параметры

Срок Definition
object Таблица, столбец, мера или календарь, имя которого требуется получить.
component (Необязательно) Перечисление, указывающее, какая часть возвращаемого имени. Если опущен, по умолчанию используется значение FULL. См. значения компонентов.
escaped (Необязательно) Перечисление, указывающее, как экранируется возвращаемое имя. Если опущен, по умолчанию используется значение ESCAPED. См. экранированные значения.

Значения компонентов

Параметр component принимает следующие значения:

Ценность Описание
TABLE Возвращает имя таблицы. Возвращает ошибку, если объект не связан с таблицей (например, календарем).
COLUMN Возвращает имя столбца. Возвращает ошибку, если объект не является столбцом.
MEASURE Возвращает имя меры. Возвращает ошибку, если объект не является мерой.
CALENDAR Возвращает имя календаря. Возвращает ошибку, если объект не является календарем.
FULL (по умолчанию) Возвращает полное имя объекта.
SELF Возвращает имя самого объекта: столбец или имя меры для столбцов и мер или имя таблицы или календаря для таблиц и календарей.
PARENT Возвращает имя родительской таблицы для столбцов и мер. Возвращает ошибку для таблиц и календарей.

Экранированные значения

Параметр escaped принимает следующие значения:

Ценность Описание
ESCAPED (по умолчанию) Возвращает имя с полным DAX экранированием: имена таблиц, упакованные в одинарные кавычки, столбцы и имена мер, упакованные в квадратные скобки.
UNESCAPED Возвращает необработанное имя без разделителей или escape-символов. Возвращает ошибку для полных имен, содержащих как родительский, так и дочерний компонент.
MINIMALLYESCAPED Возвращает имя с экранированием, примененным только в том случае, если оно требуется. Имена, содержащие только простые буквы, цифры и подчеркивания, возвращаются без разделителей. Имена, содержащие пробелы или специальные символы, возвращаются с экранированием.

Возвращаемое значение

Текстовая строка с запрошенным именем, отформатированная на основе компонента и экранированных параметров.

Замечания

  • При вызове только object с аргументом NAMEOF ведет себя так же, как и в предыдущих версиях, возвращая полное, escape-имя. Так как component значения по умолчанию и FULL значения по умолчанию escapedESCAPEDиспользуются, возвращаемые форматы:
    • Для таблиц: 'TableName'.
    • Для столбцов: 'TableName'[ColumnName].
    • Для мер: 'TableName'[MeasureName].
    • Для календарей: 'CalendarName'.
    • Для столбцов вариантов: 'TableName'[ColumnName].[VariationName].
  • Переменные и динамические выражения не поддерживаются в качестве аргументов в NAMEOF.
  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Поведение компонента по типу входных данных

В следующей таблице показан результат каждого component значения для разных типов входных данных с помощью режима по умолчанию ESCAPED . "Ошибка" указывает, что сочетание возвращает ошибку.

Тип Ввода TABLE COLUMN MEASURE CALENDAR FULL SELF PARENT
Столбца- Sales[Sales Amount] 'Sales' [Sales Amount] Error Error 'Sales'[Sales Amount] [Sales Amount] 'Sales'
Таблице- Sales 'Sales' Error Error Error 'Sales' 'Sales' Error
Измерения- Sales[m1] 'Sales' Error [m1] Error 'Sales'[m1] [m1] 'Sales'
Календарь- myCalendar Error Error Error 'myCalendar' 'myCalendar' 'myCalendar' Error

Поведение с экранированием

Параметр escaped определяет форматирование имени, созданного на шаге component . В следующей таблице используется полное escape-имя в качестве ссылки и отображаются выходные данные для каждого escaped значения.

Полное escape-имя ESCAPED UNESCAPED MINIMALLYESCAPED
'Sales' 'Sales' Sales Sales
'Sales'[Sales Amount] 'Sales'[Sales Amount] Error Sales[Sales Amount]
'Sales'[m1] 'Sales'[m1] Error Sales[m1]
[Amount] [Amount] Amount Amount
'Sales Region' 'Sales Region' Sales Region 'Sales Region'
'Sales Region'[Column] 'Sales Region'[Column] Error 'Sales Region'[Column]
[Order Quantity] [Order Quantity] Order Quantity [Order Quantity]

Замечание

UNESCAPED возвращает ошибку для полных имен (имена, включающие как таблицу, так и компонент таблицы или измерения), так как результат является неоднозначным без разделителей.

Специальные правила экранирования символов

Следующие правила экранирования применяются в DAX разделителях имен:

  • Имена таблиц (разделители с одним кавычками): Литеральный одинарный кавычки (') в имени таблицы экранируется как две одинарные кавычки ('').
  • Имена столбцов и мер (разделенные скобками): Литеральная закрывающая скобка (]) в столбце или имени меры экранируется как ]]. Открывающая скобка ([) не требует экранирования.
Полное escape-имя ESCAPED UNESCAPED MINIMALLYESCAPED
'Ta''''ble' (таблица с ' именем) 'Ta''''ble' Ta''ble Ta''ble
[colu[]]mn] (столбец с ] именем) [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] ) }

Возвращает:

[значение]
'Sales'[Projected Sales]

Пример 3

DAX Следующий запрос использует component параметр для извлечения только имени таблицы из ссылки на столбец:

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

Возвращает:

[значение]
"Продажи"

Пример 4

DAX Следующий запрос возвращает неопакованное имя таблицы:

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

Возвращает:

[значение]
Sales

Пример 5

DAX Следующий запрос использует component и escaped параметры для возврата минимально экранированного имени родительской таблицы столбца:

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

Возвращает:

[значение]
Sales