Página 1 de 1

Fórmula matricial dentro de uma Function

Enviado: 11 Nov 2021 às 14:04
por sauloslm
Prezados,

Estou aprendendo o uso de fórmulas matriciais e VBA. Mas ainda tenho muitas dúvidas nos dois. Mas parece que estou aprendendo e desaprendendo o tempo todo.

Estou com um problema de muito tempo que não consigo resolver, então vim pedir ajuda.

Tenho o seguinte problema:

Duas listas. Uma contém os "Registros Pai (intervalo de células)" e a outra contém os "Registros Filhos (célula)”.

Os registros Pai contêm os números imediatamente superiores aos registros filhos.

Fiz uma fórmula matricial para fazer essa busca, e deu certo: {=MÁXIMO(SE($A$2:$A$5<B2;$A$2:$A$5))}

Mas preciso ela dentro de um procedimento FUNCTION.

Aí fiz isso (não funciona):

Public Function RegistroPai(RegPai, RegFilho)
ActiveCell.FormulaArray = "=MAX(IF(" & RegPai & " < " & RegFilho & ", " & RegPai & ")"
End Function

Podem me ajudar a encontrar a solução?

Obrigado

Re: Fórmula matricial dentro de uma Function

Enviado: 12 Nov 2021 às 08:03
por osvaldomp
Olá, @sauloslm .

Experimente:
Código: Selecionar todos
Function RegistroPai(RegPai As Range, RegFilho As Range)
 RegistroPai = Evaluate("MAX(IF(" & RegPai.Address & "<" & RegFilho & "," & RegPai.Address & "))")
End Function
#
Em C2 e arraste para baixo ~~~> =RegistroPai(A$2:A$5;B2)

Re: Fórmula matricial dentro de uma Function

Enviado: 12 Nov 2021 às 08:27
por sauloslm
Osvaldo, muito obrigado!

Você sempre mostra uma solução simples que faz as coisas funcionarem.

Me ajudou muito. :D