Power BI-Abfragefehler: Die Spalte ist entweder nicht vorhanden oder hat keine Beziehung zu einer im aktuellen Kontext verfügbaren Tabelle


Saud Meethal

Ich habe einen Tisch mit Kundentransaktionen. Ich muss eine neue Spalte erstellen, in der für jede Zeile:

  1. Wenn eine Kunden-ID zum ersten Mal angezeigt wird, wird "Onboarding" angezeigt.
  2. Wenn es das letzte Auftreten einer "Kunden-ID" ist, wird "Offboarding" angezeigt.
  3. Der Rest wird "vorhanden" sein

Es folgt also der DAX-Code, den ich ausprobiert habe:

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"
    )
)

Aber ich bekomme folgenden Fehler:

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

Ich kann mir nicht vorstellen, RELATED () zu verwenden, da ich auf dieselbe Tabelle verweise.

Wo ist das Problem? Gibt es eine Problemumgehung, wenn es nicht möglich ist, sie auf diese Weise zu codieren?

Vielen Dank!

Saud Meethal

Mit etwas Hilfe habe ich die Lösung gefunden. Unter dax / lookupvalue-function-dax finden Sie die Fehler im ursprünglichen Skript. Der search_columnName und der search_value sind ein Paar.

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

Die Formel kann also nicht das richtige Ergebnis liefern.

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

Lösung:

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"
    )
)

Verwandte Artikel