Função Matricial
Enviado: 21 Mar 2016 às 16:04
Galera, como vai, tudo bem?
Tenho uma planilha com vários ângulos em grau minuto e segundo, e, em uma parte dela, preciso do somatório destes ângulos!
Para convertê-lo em Decimais estou usando o seguinte código:
Utilizando uma função matricial para somar os valores absolutos de um intervalo de células, por exemplo:
Eu consigo fazer estes cálculos usando uma coluna auxiliar, porém, eu gostaria de fazê-lo sem esta coluna!
Será que alguém poderia me ajudar?
Muito obrigado!
Tenho uma planilha com vários ângulos em grau minuto e segundo, e, em uma parte dela, preciso do somatório destes ângulos!
Para convertê-lo em Decimais estou usando o seguinte código:
Código: Selecionar todos
Convertendo cada um individualmente funciona normal, mas, eu gostaria da somatória total destes valores e por isso estou tentando usar função matricial:Function Convert_Decimal(Degree_Deg) As Variant
'Declaração das variáveis.
Dim degrees As Double
Dim minutes As Double
Dim seconds As Double
Dim reg As Object
'Inicia o módulo de expressões regulares.
Set reg = CreateObject("vbscript.regexp")
'Indico o teste que a expressão regular deverá fazer.
reg.Pattern = "[0-9]+° [0-9]+' [0-9\.,]+" & Chr(34)
If reg.test(Degree_Deg) = False Then
Convert_Decimal = "Format Error"
Exit Function
End If
'Substituo vírgula por ponto.
Degree_Deg = Replace(Degree_Deg, ",", ".")
'Obtenho o valor dos graus.
degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))
'Obtenho o valor dos minutos
minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, _
InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, _
"°") - 2)) / 60
'Obtenho o valor dos segundos
seconds = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + _
2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) _
/ 3600
Convert_Decimal = degrees + minutes + seconds
End Function
Código: Selecionar todos
Que, ao meu entender, ele deveria converter cada célula individualmente em decimal e depois fazer o somatório, no entanto, fico recebendo o erro #Valor...{=SOMA(Convert_Decimal(C3:C12))}
Utilizando uma função matricial para somar os valores absolutos de um intervalo de células, por exemplo:
Código: Selecionar todos
Funciona normalmente...{=SOMA(ABS(C3:C12))}
Eu consigo fazer estes cálculos usando uma coluna auxiliar, porém, eu gostaria de fazê-lo sem esta coluna!
Será que alguém poderia me ajudar?
Muito obrigado!