Microsoft Excel:如何找到两条线的交点?

Microsoft Excel:如何找到两条线的交点?

我想找到两条线的交点。

我对第一行有两点:
A(x1,y1) B(x2,y2)
对第二行有另外两点:
C(x3,y3) D(x4,y4)

是否有一个 Excel 公式可以用来查找两条线的交点(连接第一条线与第二条线的点)?

我试图找到一个数学公式,但它有点大,所以我想避免这种方法。

答案1

我记得你这个问题是几十年前在代数课上遇到的。它叫做“求解两个变量的方程”。

您需要将直线转换为“y = mx + b”格式的公式,其中 m 是直线的斜率,m 是 y 截距。此方面在以下位置解决数学网,以下信息复制自:

每条直线都可以用一个方程表示:y = mx + b。如果将直线上每个点的坐标代入 x 和 y 的方程中,就可以解出该方程。

这条线的斜率 m(即陡度或倾斜度)可以按以下方式计算:m = y 值变化/x 值变化

任何直线的方程称为线性方程,可以写成:y = mx + b,其中 m 是直线的斜率,b 是 y 轴截距。

该直线的 y 截距是该直线与 y 轴相交点处的 y 值。

当你将这些行转换为这种格式时,mathplanet.com有以下步骤:

使用代换法求解方程组

y=2x+4

y=3x+2

我们用第二个方程的表达式代替上面方程中的 y:

2x+4 = 3x+2

4-2 = 3x-2x

2 = x

为了确定 y 值,我们可以将 x 值插入任意方程中。我们选择第一个方程:

y=2x+4

我们代入 x=2 得到

y=2⋅2+4=8

我认为除了数学公式或公式组合之外,你找不到任何其他东西。我不确定“有点大”在这种情况下是什么意思,但解决这个问题不能避免使用数学。

如果线条平行,则可能会出现除以零的错误。如果线条太短而无法相交,则会得到“延长”的交点,就好像线条无限长一样。

“数学很有趣!”

答案2

好的,最后一篇帖子。

如果您只使用基本算术运算来计算,我会同情您。Excel 确实有两个函数可以大大缩短您的公式,但……仍然不是“A1+V3”……并且让您的公式在一年后看起来更容易理解。更容易理解!

他们是:

1)斜率()
2)截距()

我不会详细讲解数学,只是介绍我将使用的公式。为此,我假设您将第一行的两个点放在 A1 和 A2 中作为 X(A1:A2),将 B1 和 B2 作为 Y(B1:B2),然后使用 A4:A5 和 B4:B5 对第二行执行类似操作。我将它们交点的 X 值的公式放在 D1 中,将它们交点的 Y 值的公式放在 E1 中。

X 值(D1)的公式为:

=IF(SLOPE(B1:B2,A1:A2)=SLOPE(B4:B5,A4:A5),    IF(INTERCEPT(B1:B2,A1:A2)=INTERCEPT(B4:B5,A4:A5),"Same line","Parallel lines"),    (INTERCEPT(B1:B2,A1:A2)-INTERCEPT(B4:B5,A4:A5))/(SLOPE(B4:B5,A4:A5)-SLOPE(B1:B2,A1:A2)))

(我用一些空格将它稍微分开了一点(这样很好,但你也可以删除它们)。第一部分检查斜率是否相同。如果相同,则这些线要么是同一条线,要么是平行线。第二部分对此进行测试并告诉你。如果斜率不相同,第三部分将计算它们交点的 X 值。)

Y 值(E1)的公式为:

=IF(T(D1)="",    ((INTERCEPT(B1:B2,A1:A2)-INTERCEPT(B4:B5,A4:A5))/(SLOPE(B4:B5,A4:A5)-SLOPE(B1:B2,A1:A2)))*SLOPE(B1:B2,A1:A2)+INTERCEPT(B1:B2,A1:A2),    D1)

(空格也是一样。)这个使用 T() 来查看 D1 中是否没有文本。如果 D1 中没有文本,第二部分将计算它们的交点的 Y 值。如果 D1 中确实有文本,最后一小段只是重复与 D1 相同的文本。您可以用任何您想要的不同内容替换它(末尾的最后一个小 D1)。如果 D1 显示“同一条线”或“平行线”,也许您更希望它是空白的,所以您可以将 D1 替换为“”。

我没有安排任何四舍五入或其他显示问题。

(如果您愿意使用命名范围,您可以进一步缩短公式。但是一年后要理解它就需要挖掘出它们并检查它们的公式,这也可能很令人讨厌,所以有时六个一个,六个另一个。我自己,我喜欢命名范围。)

答案3

我必须这么做。我使用的是工作表中的单元格号码。

用你的点数据填充这些单元格:

B12 = X1

C12 = Y1

B13 = X2

C13 = Y2

B14 = X3

C14 = Y3

B15 = X4

C15 = Y4

D12=SLOPE(C12:C13,B12:B13)

E12=INTERCEPT(C12:C13,B12:B13)

D14=SLOPE(C14:C15,B14:B15)

E14=INTERCEPT(C14:C15,B14:B15)

B18=(E14-E12)/(D12-D14) [Intersection X ]

C18=D12*B18+E12 [Intersection Y]

相关内容