Notifications
Clear all

Outra opção para esta fórmula

11 Posts
4 Usuários
0 Reactions
2,385 Visualizações
(@miguel-70)
Posts: 207
Estimable Member
Topic starter
 

Ola bom dia a todos,
preciso de ajuda com esta formula que funciona perfeitamente, a complexidade da formula 'INDIRETO' é para não ser alterada ao excluir as linhas da aba LANÇAMENTOS OCORRENCIAS.

=SE(SOMARPRODUTO(--(MÊS(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$A$1:$A$10000"))=8);--(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$K$1:$K$10000")=$A5))=0;"";SOMARPRODUTO(--(MÊS(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$A$1:$A$10000"))=8);--(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$K$1:$K$10000")=$A5)))

A planilha é para o ano todo e ao mudar de ano então o usuário exclui todas as linha da aba "lançamentos_ocorrências" para criar uma nova, e com esta 'função INDIRETO' não altera ate a linha 10.000 que deve ser contado. Ate aqui tudo certo, mas....
Acontece que pesou muito a planilha para fazer esta leitura com a função indireto da formula.
Alguém conhece outra função que pesa menos na leitura que também não sera alterada ao excluir as linhas da aba "LANÇAMENTOS OCORRÊNCIAS"?
Qualquer ajuda fico grato.
Segue anexo.

 
Postado : 12/11/2017 6:22 am
deciog
(@deciog)
Posts: 0
Trusted Member
 

, Bom Dia.

Confere se é desta forma que desejas

Se foi útil, clique na mãozinha que fica do lado da ferramenta Citar, é uma forma de agradecimento

Se você Visitante Também gostou e foi útil pode clique na mãozinha que fica do lado da ferramenta Citar, é uma forma de agradecimento

Decio

Marque o tópico como Resolvido se foi solucionado seu problema.
Brasil, São Paulo - SP
Décio Gassi

 
Postado : 12/11/2017 7:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
deciog, acho que não é isto que ele quer não!! ... Ele quer é eliminar a fórmula com INDIRETO, já que deixou a plan muito pesada!! ... Mas que a nova formula sem indireto não mude a matriz ao excluir linhas!! ... Mas vamos aguardar ele falar!!
.
--------------------------
.
Miguel, sem indireto acho muiiiiito difícil uma fórmula que faça o que você quer - não alterar a matriz ao excluir linha!! ... A matriz com indireto não muda porque ela está entre aspas!!
.
Uma solução boa é transformar essa fórmula em uma função VBA ... aguarde os caras bons nisso aparecerem aqui !!!
.
Uma outra solução é Tabela Dinâmica!!!!!!!!!!!!!!!!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/11/2017 8:11 am
deciog
(@deciog)
Posts: 0
Trusted Member
 

JSCOPA

OPS!!

Realmente o que fiz não muda nada e não ajuda, obrigado pelo alerta.

Abraços

Decio

Marque o tópico como Resolvido se foi solucionado seu problema.
Brasil, São Paulo - SP
Décio Gassi

 
Postado : 12/11/2017 9:34 am
(@miguel-70)
Posts: 207
Estimable Member
Topic starter
 

Obrigado JSCOPA isso mesmo, vou ESTUDA TABELA DINAMICA, se não conseguir posto aqui.
A planilha que fiz esta sendo usada por vários usuário por cinco ano e todo ano eu tenho que criar uma nova, a deste ano já esta com; 2,11 MB (2.222.467 bytes) ainda não terminou o ano.
Tenho que resolver o problema da formula para não pesar AO SALVAR (função; Private Sub Worksheet_Change(ByVal Target As Range) )

Muitíssimo obrigado Deciog, JSCOPA.

 
Postado : 12/11/2017 10:21 am
(@jpedro)
Posts: 111
Estimable Member
 

Miguel,

Tenta usar apenas uma SOMARPRODUTO:

=SOMARPRODUTO(--(MÊS(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$A$1:$A$10000"))=8);--(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$K$1:$K$10000")=$A5))

Dentro da SOMARPRODUTO já tem as condições, assim, a função SE é desnecessária.

Veja se o desempenho fica melhor (no meu PC reduziu o tempo de processamento pela metade). Se não, fala q a gente tenta algo em VBA.

Abs!

 
Postado : 12/11/2017 1:35 pm
(@miguel-70)
Posts: 207
Estimable Member
Topic starter
 

parece que assim vai resolver,
Agora tem uma opção de uma formatação na célula (condicional) igual a zero ficar vazia (em branco)?
Se não houver vai ficar assim mesmo tenho certeza que o processamento das formulas vai ficar mais rápida. Mas se estiver uma opção de deixar as células em branco estética melhor.

 
Postado : 12/11/2017 3:06 pm
(@jpedro)
Posts: 111
Estimable Member
 

Sim, vc pode alterar a formatação para que o zero apareça como vazio. Porém, como é apenas formatação, o resultado da fórmula continuará 0.

Dá uma olhada no anexo.

Abs!

 
Postado : 12/11/2017 3:36 pm
(@miguel-70)
Posts: 207
Estimable Member
Topic starter
 

To saindo para o trabalho, mas logo vou trocar todas as formulas da planilha e posto o resultado.
Por agora obrigado JPedro.

 
Postado : 12/11/2017 3:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Miguel70

Para deixar as células que tem valor zero em branco não precisa usar formatação, basta fazer o seguinte:
Guia Arquivo --> Opções --> Avançado --> role a barra da lateral direita até encontrar --> Opções de Exibição desta Planilha --> desmarque a opção --> Mostrar Zero nas células cujo valor é zero --> OK , tá pronto, não influenciar nas outras planilhas da pasta apenas nesta.

Se foi útil, clique na mãozinha.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/11/2017 6:32 am
(@miguel-70)
Posts: 207
Estimable Member
Topic starter
 

Ola JPedro bom dia,
Fiz o teste usando a formula abaixo e demoro muito 14 segundos cronometrado para salvar, uso uma planilha somente com as formula trazendo a contagem de vários lançamentos das outras abas,

=SOMARPRODUTO(--(MÊS(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$A$1:$A$10000"))=8);--(INDIRETO("LANÇAMENTOS_OCORRÊNCIAS!$K$1:$K$10000")=$A5))

Acredito que esta função na formula INDIRETO leva mais tempo pra processar.

Com estra outra formula que estou usando leva 2 segundos, me atende..., mas ao excluir uma linha da planilha LANÇAMENTOS_OCORRÊNCIAS ai altera na formula da contagem que é ate 10.000. Eu não quero que altere esta contagem ao excluir as linhas.

=SE(SOMARPRODUTO(--(MÊS(LANÇAMENTOS_OCORRÊNCIAS!$A$1:$A$10000)=8);--(LANÇAMENTOS_OCORRÊNCIAS!$K$1:$K$10000=$A5))=0;"";SOMARPRODUTO(--(MÊS(LANÇAMENTOS_OCORRÊNCIAS!$A$1:$A$10000)=8);--(LANÇAMENTOS_OCORRÊNCIAS!$K$1:$K$10000=$A5)))

Fico agradecido pela disposição de me ajudar, vou estudar outro meio de resolver a minha dúvida.
Obrigado a todos.

 
Postado : 13/11/2017 6:51 am