Encontrar a intersecção de duas curvas é uma maneira de encontrar a solução para um sistema de equações . Excel pode desenhar um sistema de equações em um gráfico. A interseção das duas curvas é a solução para o sistema de equações . Enquanto não há uma função interna para calcular a intersecção de duas curvas em Excel, você pode usar o Visual Basic for Applications (VBA) para encontrar a solução . Instruções
1
Clique na guia "Desenvolvedor" e clique em " Visual Basic " para abrir o Editor do Visual Basic.
2
Clique em "Inserir " e depois clique em " módulo " para abrir uma janela de módulo em branco
3
Copie e cole o seguinte código na janela do módulo : . 'Encontrar o ponto onde dois segmentos intersect.Public Sub FindLineIntersection ( _ByVal x11 As Single , ByVal y11 As Single , _ByVal x12 As Single , ByVal Y12 As Single , _ByVal x21 As Single , ByVal y21 As Single , _ByVal x22 As Single , ByVal Y22 As Single , _ByRef inter_x As Single , ByRef inter_y As Single , _ByRef inter_x1 as Single , ByRef inter_y1 as Single , _ByRef inter_x2 as Single , ByRef inter_y2 as Single ) dx1 Dim SingleDim DY1 Como SingleDim dx2 Como SingleDim dy2 Como SingleDim t1 Como SingleDim t2 Como SingleDim denominador as Single
'Get a segmentos " parameters.dx1 = x12 - x11dy1 = Y12 - y11dx2 = x22 - x21dy2 = Y22 - Y21
' Resolva para t1 e t2.On Error Resume Nextdenominator = ( DY1 * dx2 - dx1 * dy2 ) t1 = ( ( x11 - x21 ) * dy2 + ( Y21 - Y11 ) * dx2 ) /_denominatorIf Err.Number <> 0 Then ' As linhas são parallel.inter_x = 1E +38 : inter_y = 1E +38 inter_x1 = 1E +38 : inter_y1 = 1E +38 inter_x2 = 1E +38 : inter_y2 = 1E +38 Exit SubEnd IFON Error GoTo 0t2 = (( x21 - x11 ) * DY1 + ( Y11 - Y21 ) * dx1 ) /_- denominador
'Encontrar do ponto de intersection.inter_x = x11 + dx1 * t1inter_y = y11 + DY1 * t1
' Encontre os pontos mais próximos na segments.If t1 <0 = Thent1 0ElseIf t1 > 1 Thent1 = 1End IFIF t2 <0 = Thent2 0ElseIf t2 > 1 Thent2 = 1End Ifinter_x1 = x11 + dx1 * t1inter_y1 = y11 + DY1 * t1inter_x2 = x21 + dx2 * t2inter_y2 = y21 + dy2 * t2End Sub
4
Imprensa "F5" para executar a rotina.