Trovare il punto di intersezione di due curve è un modo per trovare la soluzione di un sistema di equazioni . In Excel è possibile tracciare un sistema di equazioni in un unico grafico . L'intersezione delle due curve è la soluzione del sistema di equazioni . Anche se non vi è una funzione built-in per calcolare l'intersezione di due curve in Excel , è possibile utilizzare Visual Basic, Applications Edition (VBA) per trovare la soluzione . Istruzioni
1
Fare clic sulla scheda "Sviluppatore " e quindi fare clic su " Visual Basic " per aprire l'editor di Visual Basic.
2
Fare clic su " Inserisci" e poi fare clic su " modulo " per aprire una finestra vuota del modulo
3
Copia e incolla il seguente codice nella finestra del modulo : . ' Trovare il punto in cui due segmenti intersect.Public Sub FindLineIntersection ( _ByVal x11 As Single , ByVal y11 As Single , x12 _ByVal As Single , y12 ByVal As Single , _ByVal x21 As Single , ByVal Y21 As Single , _ByVal x22 As Single , y22 ByVal 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 Come SingleDim dy1 Come SingleDim dx2 Come SingleDim dy2 Come SingleDim t1 t2 Come SingleDim Come SingleDim denominatore As Single
'Ottieni il segmenti ' parameters.dx1 = x12 - x11dy1 = y12 - y11dx2 = x22 - x21dy2 = Y22 - Y21
' risolvere per t1 e Error Resume t2.On Nextdenominator = ( dy1 * dx2 - dx1 * dy2 ) t1 = ( ( x11 - x21 ) * dy2 + ( y21 - y11 ) * dx2 ) /_denominatorIf Err.Number < > 0 Then ' Le linee sono 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 ) /_ - denominatore
' Trova il punto di intersection.inter_x = x11 + dx1 * t1inter_y = y11 + dy1 * t1
' trovare i punti più vicini sulla 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
Press "F5" per eseguire la routine .