Return Excel table 中多于 1 个值(用于计算总路线距离)
Return more than 1 value in Excel table (for calculating total route distance)
我做了这个 Excel sheet 来计算特定路线的总距离并跟踪行程。但是,它会进行许多计算,最终会使它变得非常慢(如果路线有很多停靠站,速度会更慢)。
图中,P列是PLACE_1和[=52=之间的距离], Q列是PLACE_2和PLACE_3[之间的距离=42=] 等等。 O 列是所有这些距离的总和。
我用 =INDEX(distance_table, MATCH(), MATCH())
求出距离
这是distance_table(距离不是真实的,只是一个例子):
所以正如你所看到的,它有效但效率很低,index/match 公式将在每次旅行中使用 10 次。
可以做些什么来改进它? (考虑到每次旅行可能有超过 10 站)
提前致谢!
不打算作为答案。因为 performance index/match 更快,只是作为替代方案,也许它可以给你一些想法:
设置:
公式:
=SUMPRODUCT(($B:$B=B3)*($C:$K=C3);$C:$K) +
SUMPRODUCT(($B:$B=C3)*($C:$K=D3);$C:$K) +
SUMPRODUCT(($B:$B=D3)*($C:$K=E3);$C:$K) +
SUMPRODUCT(($B:$B=E3)*($C:$K=F3);$C:$K) +
SUMPRODUCT(($B:$B=F3)*($C:$K=G3);$C:$K) +
SUMPRODUCT(($B:$B=G3)*($C:$K=H3);$C:$K) +
SUMPRODUCT(($B:$B=H3)*($C:$K=I3);$C:$K) +
SUMPRODUCT(($B:$B=I3)*($C:$K=J3);$C:$K) +
SUMPRODUCT(($B:$B=J3)*($C:$K=K3);$C:$K)
可以使用SUM
/INDEX
/MATCH
/MATCH
数组公式:
=SUM(IFERROR(INDEX($B:$J,N(IF(1,MATCH($A:$J,$A:$A,0))),N(IF(1,MATCH($B:$K,$B:$J,0)))),0))
编辑后的数组公式按ctrl
+shift
+enter
确认
我做了这个 Excel sheet 来计算特定路线的总距离并跟踪行程。但是,它会进行许多计算,最终会使它变得非常慢(如果路线有很多停靠站,速度会更慢)。
图中,P列是PLACE_1和[=52=之间的距离], Q列是PLACE_2和PLACE_3[之间的距离=42=] 等等。 O 列是所有这些距离的总和。
我用 =INDEX(distance_table, MATCH(), MATCH())
求出距离
这是distance_table(距离不是真实的,只是一个例子):
所以正如你所看到的,它有效但效率很低,index/match 公式将在每次旅行中使用 10 次。
可以做些什么来改进它? (考虑到每次旅行可能有超过 10 站)
提前致谢!
不打算作为答案。因为 performance index/match 更快,只是作为替代方案,也许它可以给你一些想法:
设置:
公式:
=SUMPRODUCT(($B:$B=B3)*($C:$K=C3);$C:$K) +
SUMPRODUCT(($B:$B=C3)*($C:$K=D3);$C:$K) +
SUMPRODUCT(($B:$B=D3)*($C:$K=E3);$C:$K) +
SUMPRODUCT(($B:$B=E3)*($C:$K=F3);$C:$K) +
SUMPRODUCT(($B:$B=F3)*($C:$K=G3);$C:$K) +
SUMPRODUCT(($B:$B=G3)*($C:$K=H3);$C:$K) +
SUMPRODUCT(($B:$B=H3)*($C:$K=I3);$C:$K) +
SUMPRODUCT(($B:$B=I3)*($C:$K=J3);$C:$K) +
SUMPRODUCT(($B:$B=J3)*($C:$K=K3);$C:$K)
可以使用SUM
/INDEX
/MATCH
/MATCH
数组公式:
=SUM(IFERROR(INDEX($B:$J,N(IF(1,MATCH($A:$J,$A:$A,0))),N(IF(1,MATCH($B:$K,$B:$J,0)))),0))
编辑后的数组公式按ctrl
+shift
+enter