Obtendo #NUM! para ninhos externos da divisão de instrução IF

0

Eu tenho alguns números de vendas para os quais tenho valores em libras, unidades e dólares. No PowerPivot, estou criando um pivô com colunas Períodos (Semana Atual, MTD, QTD, YTD) e subcolunas de "Medida" (Dólares, Libras, Unidades). O cálculo que estou usando obtém a diferença percentual entre o valor deste ano para o período e a medida fornecidos e o valor do ano anterior para o mesmo período e medida, por exemplo, ([MTD este ano] - [MTD no ano passado]) / [MTD Ano passado].

Para fazer isso, eu adicionei no PowerPivot ao lado da minha tabela de dados, uma tabela de período de uma coluna e uma tabela de medidas de uma coluna sem relacionamentos criados para dados. Eu os uso para meus valores de coluna e uso instruções IF aninhadas para determinar o que fazer para quais Períodos e Medidas.

As medidas que uso para obter os valores deste ano e do ano passado estão funcionando bem. Mas quando eu faço a divisão, estou recebendo # NUM! erros somente para os ninhos externos da instrução IF. Eu brinquei com isso e simplifiquei a fórmula para suas partes essenciais (isto é, uma simplificação da minha fórmula):

=
(
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
)
)

Espero que isso retorne "1" para todos os valores. Em vez disso, ele retorna # NUM! para todos os valores da Semana atual e MTD e "1" para o resto. Se eu reorganizar os argumentos aninhados, #NUM! é sempre retornado para os argumentos externos .

Alguma ideia do que está acontecendo aqui?

    
por Frameworker247 13.03.2014 / 17:22

1 resposta

0

Eu descobri uma solução, embora não esteja claro porque isso funciona enquanto a outra estrutura não funciona. Aqui está como eu configurei:

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

Meu objetivo é evitar a divisão de duas instruções IF aninhadas entre si.

    
por 14.03.2014 / 17:37