Embora não seja possível dizer especificamente como solicitar ao Excel para fazer isso, posso dizer como isso é feito em geral.
A primeira coisa que você precisa é de dois pontos de cada uma das linhas, então você terá quatro pontos no total. Com os valores xey para cada um desses pontos, você terá 8 valores no total. Se chamarmos dois pontos no primeiro ponto de linha 1 e no ponto 2, e os dois pontos no segundo ponto de linha 3 e ponto 4, terminamos com x1, y1, x2, y2, x3, y3, x4, y4. Agora você pode encontrar o ponto em que essas duas linhas poderiam se cruzar. Vamos chamar a coordenada x do ponto de interseção px e a coordenada y do ponto de interseção py. O seguinte irá fornecer-lhes:
px = ((x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4)) / ((x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4));
py = ((x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4)) / ((x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4));
Agora você só precisa testar para ver se esse ponto de interseção realmente cai em ambas as linhas em questão. Se as linhas forem infinitas, você encontrou sua resposta. Caso contrário, algo como o seguinte funcionará:
//check x
if (x3 < x4) {
if (px > x3 && px < x4) {
xInRange1 = true;
}
} else {
if (px > x4 && px < x3) {
xInRange1 = true;
}
}
//check y
if (y3 < y4) {
if (py > y3 && py < y4) {
yInRange1 = true;
}
} else {
if (py > y4 && py < y3) {
yInRange1 = true;
}
}
//same for other line
//check x
if (x1 < x2) {
if (px > x1 && px < x2) {
xInRange2 = true;
}
} else {
if (px > x2 && px < x1) {
xInRange2 = true;
}
}
//check y
if (y1 < y2) {
if (py > y1 && py < y2) {
yInRange2 = true;
}
} else {
if (py > y2 && py < y1) {
yInRange2 = true;
}
}
Finalmente, se todos os quatro valores InRange forem verdadeiros, você realmente terá um ponto de interseção. Caso contrário, há um ponto de interseção que está em algum lugar além dos pontos finais das linhas.
if (xInRange1 && yInRange2 && xInRange2 && yInRange2) --Hurray, intersection point!