Как преобразовать оператор ifnull в таблице в powerbi dax? - PullRequest
0 голосов
/ 07 июня 2019

Я работаю над преобразованием приборной панели из таблицы в power bi.Stuck с вычисленным измерением в таблице, которое необходимо преобразовать в powerbi с помощью dax!

Заменив оператор IFNULL в таблице. Я пробовал параметр ISBLANK в dax с оператором IF, который должен проверить, возвращает ли поле нулевое значение или нет. Мои знания по дакс ограничены, я полагаю, эта проблема действительно проста, но я застрял с этим в течение многих часов.

код таблицы, который необходимо преобразовать в powerbi:

if LEFT([Supplier Code],1) = "E" then "Employees Claims" else 
IF 
IFNULL(IFNULL([ASL Supplier (SWPS)],IFNULL([Supplier Name],IFNULL([Vendor],[Supplier Code]))),'Not Define')= 'N/A'
THEN IFNULL([Vendor],[Supplier Name]) ELSE
IFNULL(IFNULL([ASL Supplier (SWPS)],IFNULL([Supplier Name],IFNULL([Vendor],[Supplier Code]))),'Not Define') 
END
END

Power bi код, который я пробовал:

Supplier (swps) = IF(LEFT([Supplier Code],1) = "E", "Employee Claims",
IF(
IF(ISBLANK(V_FIPnLDashboard_Tne[ASL Supplier (SWPS)]),ISBLANK(V_FIPnLDashboard_Tne[Supplier Name]),ISBLANK(V_FIPnLDashboard_Tne[Supplier Code])),"Not Define") = "N/A")

Мой код неполон, так как я не могу понять полный код кода в таблице.

Таблица:

if LEFT([Supplier Code],1) = "E" then "Employees Claims" else 
IF 
IFNULL(IFNULL([ASL Supplier (SWPS)],IFNULL([Supplier Name],IFNULL([Vendor],[Supplier Code]))),'Not Define')= 'N/A'
THEN IFNULL([Vendor],[Supplier Name]) ELSE
IFNULL(IFNULL([ASL Supplier (SWPS)],IFNULL([Supplier Name],IFNULL([Vendor],[Supplier Code]))),'Not Define') 
END
END

Ожидаемый результат - это размерность / столбец, значения которого соответствуют заданному условию в степени bi.

Ответы [ 3 ]

0 голосов
/ 10 июня 2019
IF IFNULL([ASL Supplier(SWPS)],IFNULL([Supplier(SWPS)],IFNULL([Vendor],IFNULL([Supplier Code],'Not Define')))) = 'N/A'
THEN [Supplier(SWPS)] 
ELSE IFNULL([ASL Supplier (SWPS)],IFNULL([Supplier(SWPS)],IFNULL([Vendor],IFNULL([Supplier Code],'Not Define'))))
END
0 голосов
/ 10 июня 2019
supplier = var supplierswps = 
 `IF (
                              ISBLANK (V_FIPnLDashboard_Tne[ASL Supplier(SWPS)]),
        IF (
             ISBLANK (V_FIPnLDashboard_Tne [Supplier (SWPS)]),
            IF (
                ISBLANK ( V_FIPnLDashboard_Tne[Vendor] ),
                IF (
                    ISBLANK (V_FIPnLDashboard_Tne [Supplier Code]),"Not Define")))= "N/A",V_FIPnLDashboard_Tne[Supplier (swps)])
var supplierswpsfalse = IF(supplierswps = "Not define", TRUE(), FALSE())
        return
            if( 
               ISBLANK(V_FIPnLDashboard_Tne[ASL Supplier (SWPS)] ),
                IF (
                    ISBLANK (V_FIPnLDashboard_Tne[Supplier (SWPS)]),
                     IF(
                        ISBLANK ( V_FIPnLDashboard_Tne[Vendor] ),
                            IF (
                                ISBLANK (V_FIPnLDashboard_Tne[Supplier Code] )
                            ,"Not Define",
                            V_FIPnLDashboard_Tne[Supplier Code]
                                ),
`

                       V_FIPnLDashboard_Tne[Vendor]  

                     ),V_FIPnLDashboard_Tne[Supplier (SWPS)]
                ),V_FIPnLDashboard_TnE[ASL Supplier (SWPS)]
            )
0 голосов
/ 07 июня 2019

В вашем примере я считаю наиболее полезным разбить исходную логику кода Таблицы:

  • Если Код поставщика начинается с "E", то "Заявки сотрудников"
  • Else,
    • Проверка по порядку, если поставщик ASL (SWPS), название поставщика, поставщик, код поставщика = "N / A", то
      • Если Vendor не равен NULL, то Vendor
      • Иначе, Название поставщика
    • Иное, проверка по порядку,
      • , если поставщик ASL (SWPS), Название поставщика, Поставщик, Код поставщика имеетзначение, используйте его
      • Иначе, используйте «Не определите»

Учитывая это, формула DAX будет:

Supplier (swps) =
VAR vendorOrSupplier =
    IF (
        ISBLANK ( V_FIPnLDashboard_Tne[Vendor] ),
        V_FIPnLDashboard_Tne[Supplier Name],
        V_FIPnLDashboard_Tne[Vendor]
    )
VAR firstValidField =
    IF (
        ISBLANK ( V_FIPnLDashboard_Tne[ASL Supplier (SWPS)] ),
        IF (
            ISBLANK ( V_FIPnLDashboard_Tne[Supplier Name] ),
            IF (
                ISBLANK ( V_FIPnLDashboard_Tne[Vendor] ),
                IF (
                    ISBLANK ( V_FIPnLDashboard_Tne[Supplier Code] ),
                    "Not Defined",
                    V_FIPnLDashboard_Tne[Supplier Code]
                ),
                V_FIPnLDashboard_Tne[Vendor]
            ),
            V_FIPnLDashboard_Tne[Supplier Name]
        ),
        V_FIPnLDashboard_Tne[ASL Supplier (SWPS)]
    )
VAR allBlank =
    IF ( firstValidField = "Not Defined", TRUE (), FALSE () )
RETURN
    IF (
        LEFT ( V_FIPnLDashboard_Tne[Supplier Code], 1 ) = "E",
        "Employee Claims",
        IF (
            V_FIPnLDashboard_Tne[ASL Supplier (SWPS)] = "N/A",
            vendorOrSupplier,
            IF (
                ISBLANK ( V_FIPnLDashboard_Tne[ASL Supplier (SWPS)] ),
                IF (
                    V_FIPnLDashboard_Tne[Supplier Name] = "N/A",
                    vendorOrSupplier,
                    IF (
                        ISBLANK ( V_FIPnLDashboard_Tne[Supplier Name] ),
                        IF (
                            V_FIPnLDashboard_Tne[Vendor] = "N/A",
                            vendorOrSupplier,
                            IF (
                                ISBLANK ( V_FIPnLDashboard_Tne[Vendor] ),
                                IF ( [Supplier Code] = "N/A", vendorOrSupplier, firstValidField ),
                                firstValidField
                            )
                        ),
                        firstValidField
                    )
                ),
                firstValidField
            )
        )
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...