Ошибка запроса Power BI: столбец либо не существует, либо не связан с какой-либо таблицей, доступной в текущем контексте - PullRequest
0 голосов
/ 31 августа 2018

У меня есть таблица с транзакциями клиентов. Мне нужно создать новый столбец, где для каждой строки:

  1. Если это первое появление «идентификатора клиента», оно будет иметь «Onboarding»
  2. Если это последнее появление «идентификатора клиента», оно будет иметь «Offboarding»
  3. Остальное будет "Существующим"

Итак, вот код DAX, который я опробовал:

Customer Churn =
IF (
    Book[Date]
        = LOOKUPVALUE ( Book[Date].[Date], Book[customer id], FIRSTDATE ( Book[Date] ) ),
    "Onboarding",
    IF (
        Book[Date]
            = LOOKUPVALUE ( Book[Date].[Date], Book[customer id], LASTDATE ( Book[Date] ) ),
        "Offboarding",
        "Existing"
    )
)

Но я получаю следующую ошибку:

The column 'Book[customer id]' either doesn't exist or doesn't have a relationship to any table available in the current context.

Не могу думать об использовании RELATED (), поскольку я ссылаюсь на ту же таблицу.

Где проблема? Есть ли обходной путь, если это невозможно кодировать таким образом?

Спасибо!

1 Ответ

0 голосов
/ 05 сентября 2018

С некоторой помощью я получил решение. Обратитесь к dax / lookupvalue-function-dax , вы найдете ошибки в исходном скрипте. Search_columnName и search_value представляют собой пару.

LOOKUPVALUE( <result_columnName>, <search_columnName>, <search_value>[, <search_columnName>, <search_value>]…)  

Таким образом, формула не может вернуть правильный результат.

LOOKUPVALUE ( Book[Date].[Date], Book[customer id], FIRSTDATE ( Book[Date] ) )

Решение:

Customer Churn =
   VAR startDate =
      CALCULATE ( FIRSTDATE ( Book[Date] ), ALLEXCEPT ( Book, Book[Customer Id] ) )
   VAR endDate =
      CALCULATE ( LASTDATE ( Book[Date] ), ALLEXCEPT ( Book, Book[Customer Id] ) )
RETURN
IF (
    Book[Date]
        = LOOKUPVALUE (
            Book[Date],
            Book[customer id], [Customer Id],
            Book[Date], startDate
        ),
    "Onboarding",
    IF (
        Book[Date]
            = LOOKUPVALUE (
                Book[Date],
                Book[customer id], [Customer Id],
                Book[Date], endDate
            ),
        "Offboarding",
        "Existing"
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...