Ottenere #NUM! per i nidi esterni della divisione di istruzioni IF


0

Ho alcuni dati di vendita per i quali ho valori in sterline, unità e dollari. Da PowerPivot, sto creando un pivot con colonne Periods (Current Week, MTD, QTD, YTD) e sotto-colonne di "Measure" (Dollari, Sterline, Unità). Il calcolo che sto utilizzando ottiene la differenza percentuale tra il valore di quest'anno per il periodo e la misura indicati e il valore dello scorso anno per lo stesso periodo e misura, ad esempio, [[MTD This Year] - [MTD Last Year]) / [MTD L'anno scorso].

Per fare ciò, ho aggiunto in PowerPivot accanto alla mia tabella Dati, una tabella Period a una colonna e una tabella Measure a una colonna senza relazioni create con Data. Io li uso per i miei valori di colonna e uso istruzioni IF annidate per determinare cosa fare per quali periodi e misure.

Le misure che uso per ottenere i valori di quest'anno e dell'anno scorso stanno andando bene. Ma quando faccio la divisione, sto ricevendo #NUM! errori solo per i nidi esterni dell'istruzione IF. Ho giocato con questo e semplificato la formula per le sue parti essenziali (cioè, questa è una semplificazione della mia formula):

=
(
IF(
    COUNTROWS(VALUES(Periods[Period]))=1,
    IF(
        VALUES(Periods[Period])="Current Week",
        1,
        IF(
            VALUES(Periods[Period])="MTD",
            2,
            IF(
                VALUES(Periods[Period])="QTD",
                3,
                IF(
                    VALUES(Periods[Period])="YTD",
                    4
                )
            )
        )
    ),
    0

)
) 
/
(
IF(
    COUNTROWS(VALUES(Periods[Period]))=1,
    IF(
        VALUES(Periods[Period])="Current Week",
        1,
        IF(
            VALUES(Periods[Period])="MTD",
            2,
            IF(
                VALUES(Periods[Period])="QTD",
                3,
                IF(
                    VALUES(Periods[Period])="YTD",
                    4
                )
            )
        )
    ),
    0
)
)

Mi aspetto che questo restituisca "1" per tutti i valori. Invece, restituisce #NUM! per tutti i valori di Settimana corrente e MTD e "1" per il resto. Se riorganizzo gli argomenti nidificati, #NUM! viene sempre restituito per il esterno argomenti.

Qualche idea su cosa sta succedendo qui?

Risposte:


0

Ho trovato una soluzione, anche se non sono chiaro sul perché funzioni mentre l'altra struttura no. Ecco come l'ho impostato:

=
IF(
    COUNTROWS(VALUES(Periods[Period]))=1,
    IF(
        VALUES(Periods[Period])="YTD",
        DIVIDE(1,1),
        IF(
            VALUES(Periods[Period])="QTD",
            DIVIDE(2,2),
            IF(
                VALUES(Periods[Period])="MTD",
                DIVIDE(3,3),
                IF(
                    VALUES(Periods[Period])="Current Week",
                    DIVIDE(4,4)
                )
            )
        )
    ),
    0
)

Il mio takeaway è di evitare di dividere due dichiarazioni IF annidate l'una contro l'altra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.