xiloba Postado Junho 27, 2009 Denunciar Share Postado Junho 27, 2009 preciso criar uma funçao que extraia a média entre as duas maiores notas.prova1, prova2, recuperação.ou seja: tenho 3 possibilidades:rec>p1>p2, neste caso a média será entre rec e p1rec>p2>p1, neste caso a média será entre rec e p2p1>p2>rec, neste caso a média será entre p1 e p2Repare que p2>p1>rec, teríamos a média entre p1 e p2, o que já apareceu antesp2>rec>p1, teríamos a média entre p2 e rec, o que já apareceu antesp1>rec>p2, teríamos a média entre p1 e rec, o que já apareceu antes.Eu montei uma tabela, mas ela só funciona quando recuperação é maior que prova 1 e maior que prova 2.aluno-prova1-prova2 - recuperaçao - comparação entre p1 e p2- comp recup x p1 - comp recup x p2- comp h2 e I2 - média f2:j2O que está errado? alguém pode me ajudar a criar uma tabela que extraia a média entre as duas maiores notas. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alexandre Neves Postado Junho 27, 2009 Denunciar Share Postado Junho 27, 2009 (editado) Bom dia, xilobaCopie estas funções e utilize a Media2MaioresFunction Media2Maiores(Optional Valor1 = 0, Optional Valor2 = 0, Optional Valor3 = 0) As Single 'Função criada por Alexandre Neves 'em 2009-06-27 'para xiloba 'do fórum scripbrasil If IsNull(Valor1) = True Then Valor1 = 0 If IsNull(Valor2) = True Then Valor2 = 0 If IsNull(Valor3) = True Then Valor3 = 0 Select Case Maximo(Valor1, Valor2, Valor3) Case Valor1 If Valor2 > Valor3 Then 'caso de valor1>valor2>valor3 Media2Maiores = (Valor1 + Valor2) / 2 Else 'caso de valor1>valor3>valor2 Media2Maiores = (Valor1 + Valor3) / 2 End If Case Valor2 If Valor1 > Valor3 Then 'caso de valor2>valor1>valor3 Media2Maiores = (Valor2 + Valor1) / 2 Else 'caso de valor2>valor3>valor1 Media2Maiores = (Valor2 + Valor3) / 2 End If Case Valor3 If Valor1 > Valor2 Then 'caso de valor3>valor1>valor2 Media2Maiores = (Valor3 + Valor1) / 2 Else 'caso de valor3>valor2>valor1 Media2Maiores = (Valor3 + Valor2) / 2 End If End Select End Function Function Maximo(Optional Valor1 = 0, Optional Valor2 = 0, Optional Valor3 = 0) As Single 'Função criada por Alexandre Neves 'em 2009-06-27 'para xiloba 'do fórum scripbrasil If IsNull(Valor1) = True Then Valor1 = 0 If IsNull(Valor2) = True Then Valor2 = 0 If IsNull(Valor3) = True Then Valor3 = 0 If Val(Valor3) = 0 Then If Val(Valor1) > Val(Valor2) Then Maximo = Valor1 Else Maximo = Valor2 End If Else Maximo = Maximo(Maximo(Valor1, Valor2), Valor3) End If End FunctionBom trabalho Editado Junho 27, 2009 por Jonathan Queiroz Adcionar tag's (Jonathan) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Paulo H Grando Postado Setembro 26, 2009 Denunciar Share Postado Setembro 26, 2009 Há um jeito mais fácil. Você pode usar uma fórmula para fazer essa média ao invés de construir uma função no VBA. Faz assim:MÉDIA(MAIOR($B$1:$D$1;1);MAIOR($B$1:$D$1;2)) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
xiloba
preciso criar uma funçao que extraia a média entre as duas maiores notas.
prova1, prova2, recuperação.
ou seja: tenho 3 possibilidades:
rec>p1>p2, neste caso a média será entre rec e p1
rec>p2>p1, neste caso a média será entre rec e p2
p1>p2>rec, neste caso a média será entre p1 e p2
Repare que
p2>p1>rec, teríamos a média entre p1 e p2, o que já apareceu antes
p2>rec>p1, teríamos a média entre p2 e rec, o que já apareceu antes
p1>rec>p2, teríamos a média entre p1 e rec, o que já apareceu antes.
Eu montei uma tabela, mas ela só funciona quando recuperação é maior que prova 1 e maior que prova 2.
aluno-prova1-prova2 - recuperaçao - comparação entre p1 e p2- comp recup x p1 - comp recup x p2- comp h2 e I2 - média f2:j2
O que está errado? alguém pode me ajudar a criar uma tabela que extraia a média entre as duas maiores notas.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.