Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
  • Avatar do usuário
#48702
Boa noite, pessoal

Preciso de ajuda com duas fórmulas

A primeira delas, em "G6", deve contar os valores únicos da coluna "Item". Até consegui... porém a fórmula apresentou erro caso a coluna apresente espaços vazios e isso pode acontecer. A fórmula deve ainda excluir da contagem células cujo valor seja representado por um "-"

Na segunda fórmula, agora em "E6", preciso que a fórmula some valores repetidos uma única vez, que atendam as condições das colunas [Item] e {Nome / Razão Social].
Exemplo:
Reparem que o [Item] "Decoração" cujo [Nome / Razão Social] correspondente é Wesley apareceu 3 x repetindo 3x o valor de R$ 3.000,00. Preciso que esse valor seja somado uma única vez.

As fórmulas devem considerar o intervalo da tabela.

Segue planilha para verificação.

Mais uma vez boa noite e obrigado a quem puder ajudar.
Você não está autorizado a ver ou baixar esse anexo.
#48703
Olá Sandro,

Segue a planilha com solução para a primeira questão. Fiz uma function em um módulo, logo, deve copiar o módulo para sua planilha oridiginal (estou assumindo que esta planilha é apenas um modelo).

Quanto à segunda questão, dê mais detalhes:
- As condições serão sempre essas duas, ou podem variar de colunas, ou de quantidade de colunas?
- Se houver o mesmo Item, o mesmo Nome, mas valores diferentes, deve somar ou não? Se deve-se somar 1 só deles, qual seria? O primeiro ou o segundo?

Jimmy San Juan
Você não está autorizado a ver ou baixar esse anexo.
#48708
Amigo,

Veja se o que fiz lhe ajuda, caso queira agradecer, clique na mãozinha.

Abs
Você não está autorizado a ver ou baixar esse anexo.
#48712
Bom dia, Jimmy
Segue a planilha com solução para a primeira questão. Fiz uma function em um módulo, logo, deve copiar o módulo para sua planilha oridiginal (estou assumindo que esta planilha é apenas um modelo).
Sempre trazendo novidades rsrs. Entendi direitinho a Function e atendeu perfeitamente a necessidade.
Mas o código traz algumas novidades para mim. Na verdade quase todo o código rsrs.
Agora vai ter o trabalho de explicar algumas linhas da Function rsrs.
Quanto à segunda questão, dê mais detalhes:
- As condições serão sempre essas duas, ou podem variar de colunas, ou de quantidade de colunas?
Serão sempre as mesmas duas colunas... A quantidade de colunas (condições) não varia.
Esclarecendo quer dizer que um prestador de serviço pode ser responsável por mais de um item. Mas quando o mesmo item tiver o mesmo prestador de serviço o valor correspondente deve ser somado uma única vez.
- Se houver o mesmo Item, o mesmo Nome, mas valores diferentes, deve somar ou não? Se deve-se somar 1 só deles, qual seria? O primeiro ou o segundo?
Os valores diferentes não acontecerão. A repetição de mesmo Item e mesmo Nome significa que é uma situação de parcelamento... portanto o valor contratado deve ser somado uma única vez.

Muito obrigado pela atenção e tenha uma ótima semana, Jimmy.
#48715
Bom dia, Felipe

Obrigado pela intenção de ajudar.

As fórmulas estão quase lá... mas após testes acho que precisam de um ajuste.

1) Para a fórmula em "G6" reparei que ela está contando células com "" (vazio) e "-"... essas duas situações devem ser excluídas da soma
2) Para a fórmula em "E6" a fórmula parece considerar apenas valores não repetidos na coluna [Vlr encontrado] para a soma.
Fiz o seguintes testes:
a) Considerando a linha 13 da planilha ao substituir o [Item] "Decoração" por outra coisa como "Cabine fotográfica", por exemplo. Ele deveria somar o valor de R$ 20.000,00 daquela linha ao total. Pois ainda que sela o mesmo prestador de serviço trata-se de um [Item] diferente.
Da mesma forma mantendo o [Item] "Decoração" e substituindo o nome "Wesley" por "Maria" ele não soma o valor de R$ 20.000,00 ao total e deveria pois se trata de outro prestador de serviço.
b) Considerando a linha 16 da planilha ao substituir o valor de R$ 3.000,00 por R$ 20.000,00 ele não soma o valor (e deveria somar pq mesmo sendo o mesmo nome do prestador de serviço, o item é diferente dos anteriores). A soma deveria agora ficar R$ 66.247,50.
c) Ainda considerando a linha 16, ao substituir o [Item] "Iluminação" por "Decoração" ele não deveria somar o valor de R$ 3.000,00 daquela linha, pois significa que é o mesmo serviço realizado pelo mesmo prestador e provavelmente o valor digitado está errado (deveria ser R$ 20.000).
Nesse caso em que [Item] e [Nome] são os mesmos ele deve somar o valor somente uma vez... no caso o que aparecer primeiro na tabela (através de uma conferência da soma do valor total eu consigo identificar o valor que foi lançado errado.
Enfim, quando mesmo [Item] e [Nome] somar somente o primeiro valor encontrado na tabela.

Se precisar esclarecer mais alguma dúvida estou à disposição e mais uma vez obrigado pela intenção de ajudar. Tenha uma excelente semana.
#48721
Olá Sandro,

Claro que explico; é a parte mais importante. Sei que você já tem bastante conhecimento em VBA, mas sempre temos o que aprender.

A function cria um objeto Dicionário, que é uma coleção de informações, onde cada informação é formada por uma chave, que é única (nenhum outro item do dicionário terá chave igual), e por um conteúdo. No nosso caso, só uso a chave, sem conteúdo, me aproveitando da característica de ser única. Isso é conveniente porque queremos contar apenas 1 vez os valores repetidos da coluna Item.

No dicionário, você pode consultar (recuperar) um item pela sua chave, assim: Valor = Dic.Item("abc").
A característica interessante do Dicionário é que se você consultar uma chave que não existe, ela é automaticamente incluída no dicionário, enquanto que se ela existir, a instrução apenas vai atribuir à variável Valor o conteúdo daquela chave.

No nosso caso, novamente, não nos interessa o conteúdo, só me interessa montar uma coleção de valores sem repetição, então eu consulto todos os itens que constam na coluna Itens. Para os que já exitem, retorna um valor que eu não uso, então na prática é como não fazer nada. Para os que não existem, eles são incluídos no dicionário. Os valores iguais a vazio ou iguais a "-" a function simplesmente pula, porque você não quer que sejam contados.

No final da macro é só usar a propriedade .Count para saber quantos itens o dicionário tem.

A propriedade comparemode, quando é 1, determina que maiúsculas e minúsculas são a mesma coisa, e se for 0 faz diferenciação entre elas.

Mais pra de tarde vejo a outra parte do problema.

Jimmy San Juan
#48828
Bom dia, senhores.

A parte de somar os valores uma única vez resolvi criando uma coluna com o valor das parcelas e criando uma condição para somar quando houver o critério "pago".

Tenham um bom dia e uma excelente semana.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord