Hitta skärningspunkten mellan två kurvor är ett sätt att hitta lösningen på ett system av ekvationer . Excel kan rita ett system av ekvationer på en graf . Skärningspunkten mellan de två kurvorna är lösningen till systemet av ekvationer . Även om det inte finns en inbyggd funktion för att beräkna skärningspunkten mellan två kurvor i Excel , kan du använda Visual Basic for Applications ( VBA ) för att hitta en lösning . Instruktioner
1
Klicka på " Utvecklare " fliken och klicka sedan på " Visual Basic " för att öppna Visual Basic Editor .
2
Klicka på " Infoga " och sedan klicka på " module " för att öppna ett tomt modulfönstret
3
Kopiera och klistra in följande kod i modulen fönstret : . " Finn den punkt där två segment intersect.Public Sub FindLineIntersection ( _ByVal X11 som singel , 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 ) Dim dx1 Som SingleDim DY1 Som SingleDim DX2 Som SingleDim Dy2 Som SingleDim t1 Som SingleDim t2 Som SingleDim nämnare As Single
" Hämta segmentens parameters.dx1 = x12 - x11dy1 = Y12 - y11dx2 = x22 - x21dy2 = Y22 - Y21
" Lös för t1 och t2.On Error Resume Nextdenominator = ( DY1 * DX2 - dx1 * Dy2 ) t1 = ( ( X11 - X21 ) * Dy2 + ( Y21 - Y11 ) * dx2 ) /_denominatorIf Err.Number < > 0 Then ' linjerna är 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 ) /_ - nämnare
" Hitta punkten för intersection.inter_x = X11 + dx1 * t1inter_y = Y11 + DY1 * t1
" Hitta de närmaste punkterna på segments.If t1 < 0 Thent1 = 0ElseIf t1 > 1 Thent1 = 1End oOm 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
Press " F5 " för att köra rutinen .