Página 1 de 1
SUMIFS
Enviado: 29 Jul 2019 às 22:43
por Martins
Boa Noite
Estou com problema de sintaxe na minha função SUMIFS. Alguém consegue me ajudar a identificar o erro por favor?
Código: Selecionar todosPlan1.Range("D1").Value = WorksheetFunction.SumIfs(PLAN1.RANGE("D3:D8"), (plan1.range("C3:C8"),(plan1.range("D1"), (plan1.range("E3:E8"),(PLAN1.RANGE("D"))))))
Re: SUMIFS
Enviado: 30 Jul 2019 às 00:46
por Jimmy
Martins,
Se precisa especificar a planilha, tente assim:
Código: Selecionar todosSet Plan1 = Sheets("Planilha1")
Plan1.Range("F5").Value = WorksheetFunction.SumIfs(Plan1.Range("D3:D8"), Plan1.Range("C3:C8"), Plan1.Range("D1"), Plan1.Range("E3:E8"), "D")
ou se não precisa, assim:
Código: Selecionar todosRange("F5").Value = WorksheetFunction.SumIfs(Range("D3:D8"), Range("C3:C8"), Range("D1"), Range("E3:E8"), "D")
Você está jogando o resultado disso na célula D1, porém, a D1 está sendo usada como critério do SomaSe.
Seria melhor jogar esse resultado em uma célula diferente, como:
Jimmy San Juan
Re: SUMIFS
Enviado: 30 Jul 2019 às 12:13
por Martins
Oi Jimmy.
Excelente explicação.
Quando fui aplicar na prática tive alguns problemas tal como:
Como cada linha tem um critério apliquei uma macro com esta fórmula e depois apliquei um autofill, mas não consegui fazer que o excel entenda que cada linha tem um critério.
Depois apliquei uma outra macro para fazer a contagem por linha, mas também não consegui.
Resumindo, consegues me ajuda por favor? Como sou novo em vba ainda peco em coisas fáceis.
Re: SUMIFS
Enviado: 01 Ago 2019 às 12:53
por Martins
Oi Senhores.
Será que alguém consegue me ajudar?
Tenho duas macros a macro "somases1" esta calcula corretamente, mas o cálculo acontece na célula "D7" da plan2. Preciso que percorra as linhas abaixo, por exemplo D8 em diante.
A única coisa que muda é o critério1 que será "B7, B8, B9...... da plan2.
Tentei aplicar um autofill, mas não adiantou, então fiz uma outra macro a "somases2" para percorrer as linhas, mas não funcionou.
Re: SUMIFS
Enviado: 01 Ago 2019 às 13:35
por osvaldomp
Veja se ajuda.
Código: Selecionar todosSub Teste()
With Range("D7:D" & Cells(Rows.Count, 2).End(xlUp).Row)
.Formula = "=SUMIFS(Plan1!D$2:D$9,Plan1!B$2:B$9,B7,Plan1!E$2:E$9,""D"")"
.Value = .Value
End With
End Sub
Re: SUMIFS
Enviado: 01 Ago 2019 às 17:23
por Jimmy
Olá Martins,
Em termos de instruções, a macro não tem problemas, mas para saber porque não está dando o resultado esperado, você teria que dizer qual é o resultado esperado. O problema parece simples de resolver, mas preciso saber o que esperas da macro.
Algumas observações:
Você está usado o WorksheetFunction para realizar o SomaSe. Esse comando faz a soma, pega o valor e disponibiliza para a macro jogar numa célula (ou numa variável, ou exibir na tela, etc). A célula recebe o resultado da soma, e não a fórmula que gerou a soma.
Execute os comando abaixo, e compare os resultados em termos de conteúdo da célula:
Range("A1").Value = "=Sum(1,2,3)"
Range("B1").Value = WorksheetFunction.Sum(1, 2, 3)
Me diga se quer colocar na célula o resultado da soma, ou a fórmula SOMASE que fará a soma.
Macro SOMASES1
O critério usado para fazer a soma é fixo: o valor da faixa Plan1"B2:B9" tem que ser igual a Plan2"B7", e o da faixa Plan1"E2:E9" deve ser igual a "D". O resultado é o valor 1000, que vem da Plan1”D2”, e é colocado na Plan1“D7”.
Ao copiar para baixo, como é um valor e não uma fórmula, o valor é repetido.
Macro SOMASES2
O critério usado é o mesmo, o resultado é o também o mesmo (1000(, que vem da Plan1”D2”, e é colocado na Plan1“D7” concatenado com “i”. Para i = 2, o resultado é colocado na célula D72. Quando i = 5, na D75 e assim por diante.
Descreva o que pretende que a macro faça, e ajustamos.
Jimmy San Juan
Re: SUMIFS
Enviado: 02 Ago 2019 às 07:29
por Martins
Osvaldo atendeu perfeitamente. Muito obrigado.
Jimmy desculpe se não consegui ser claro. Agradeço seu retorno.