Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Ola,
tem alguma forma de somar, em determinada condição (linha) o valor contidos na celuluas imediatamente superiores a esta ?? Tentei utilizar a função above, mas não obtive sucesso
Seria algo assim
identificador | descricao | vl_financeiro |
---|---|---|
1 | xxx | 100 |
2 | yyyy | 200 |
3 | total | 300 |
4 | saldo anterior | 100 |
5 | saldo final | 400 |
Onde na linha 5 teria que totalizar a linha 4+3.
Tentei fazer desta forma: if(identificador= 5 , rangesum(above(sum(vl_financeiro_realizado ),1,2)),
(sum(vl_financeiro_realizado ))
Olá Marcos,
Alguém aqui da comunidade já me deu uma dica que é a seguinte. Eu utilizei assim e funcionou.
Você cria na sua tabela tres campos: anterior, atual, acumulado. E depois podes até deixar ocultos estes campos.
Utilizar somente para sua fórmula. Veja exemplo anexo.
E depois você soma sempre o valor do campo atual + o acumulado que serão os valores anteriores.
Abs,
Juliana.
Oi Juliana,
Valeu pelo retorno. Fazendo mais uns teste descobri que o problema ocorre quando mostro mais de uma dimensão (identificado e descricao), quando contraio deixando apenas uma (identificador), funciona, conforme a imagem abaixo. A pergunta (que não quer calar) é porque disto acontecer.
Marcos, e se tentares utilizar em fez do identificador = 5,
colocar Rowno() = 5 ?
Olá Marcos,
Sobre a sua pergunta, eu acredito que sei a resposta... Na sua fórmula você tem "identificador= 5 ", esta condição retorna verdadeiro quando você está no nível da dimensão identificador. Quando você faz o drill down para descricao, esta condição não mais retorna verdadeiro porque você precisa de uma agregação para comparar com o valor discreto "5". Experimente substituir a condição "identificador=5" para "Only(identificador) = 5", desta forma você terá somente o valor possível 5 uma vez e não várias vezes. Me perdoe se a explicação ficou meio confusa.
Abraços,
Cesar.
Ola Cesar e Juliana,
Primeiro tentei a opçao sugerida pela Juliana, sem sucesso, e agora tentei a do Cesar, mas o problema presiste . Estou anexando o qvw caso alguem queira fazer alguma tentativa. Trabalho com a versao 10 e ate baixei a versão 11 para verificar se poderia ter alguma correção (se é que isto se configure em problema e não em inabilidade - rsrs ) mas tambem não rolou.
Bom Dia Marcos,
Para entender o que esta acontecendo, insira uma nova expressão e coloque a função ROWNO() como retorno e desabilite a expressão "vl_financeiro".
Você verá que para cada linha sempre será retornado o valor "1".
Isso ocorre porque existem 2 dimensões no seu gráfico, se a segunda dimensão retornasse mais de uma linha existiria sim um registro anterior para ser acumulado.
Parece que a função ABOVE (funções inter-registros) se baseia na quantidade de registros da ultima dimensão do seu gráfico, ou seja, nunca vai existir a linha anterior para você acumular se estiver inserindo a segunda dimensão.
No caso que vc mencinou acima, utilizando a tabela dinamica quando vc expande para a segunda dimensão é quando esse fato ocorre.
Abraços
Ola Eduardo,
fiz conforme indicou e realmente, sem o dril down, o rowno fica sequencial, com o dril, fica tudo como citou, conforme a imagem abaixo;
Mas e agora ? Qual seria a solução ? Ja escutei usuario umas "gracinhas", tipo -use o excel que resolverá o problema-. Teria alguma outra funcão para tratar esta situação ??
Dependendo da situação, poderia concatenar as duas dimensões (Identificador e Descrição). Dessa forma haveria somente uma dimensão e a função above funcionaria como se precisa.
Infelizmente tenho que deixar com o drill, pois a aplicação é uma mostragem de um fluxo de caixa, e o usuario necessita abrir em até 5 dimensões.
Mas muito estranho, a principio parece ser uma operação usual e imagino que deveria ter alguma função que atendesse a isto.
Bueno, vou deixar a questão em aberto pois talvez algum outro expert possa indicar algum caminho
Por enquanto, agradeço aos retornos que me enviaram.