从 table 查找值

Lookup values from table

我想写一个公式来获取 Table 1 中特定订单 ID(第 1 列)的从城市(第 2 列和第 3 列)之间的距离(第 4 列)距离工作表中的数据如下所示。

距离工作表:

这么快的版本:

INDEX(A2:D5,MATCH(B8,A2:A5,0),MATCH(B9,A2:D2,0))

B8为起点,B9为终点。 没有重复你所有的数据,因为你把它作为图片,我懒得输入所有这些。

您可以使用 AVERAGEIFS 轻松完成:

单元格 H4 中的公式:

=IF(H=$G4;"";AVERAGEIFS($D:$D;$B:$B;$G4;$C:$C;H))

向左拖动并向下拖动。

您需要使用 AVERAGEIFS,因为点之间的距离在两个方向上都相同。因为在您的数据中,例如,OrderId 2 中的 Melbourner - Sidney 和 OrderId 4 中的 Sidney - Melbourne。重复的距离相同,因此如果您只是求和,则会产生错误。

使用 XLOOKUP() 函数

单元格 D2 中使用的公式 --> Applicable To Excel 2021 & O365 Users Only

=XLOOKUP(B2,$F:$F,XLOOKUP(C2,$G:$K,$G:$K),"Not Found")

所以,第二个XLOOKUP()函数returns

XLOOKUP(C2,$G:$K,$G:$K)

Returns 距离(公里) 从列 B 中列出的任何地点到达 堪培拉,因为我以第一个单元格为例,所以它显示为 Canberra,这对于列中的其他 Destinations 也是一样的C

{285;676;1199;3735;0}

最后将这个包裹在另一个 XLOOKUP() 函数中,查找值来自列 B 应 return 所需的确切距离。

3 备选公式:

• 对于所有用户

=VLOOKUP(B2,$F:$K,MATCH(C2,$F:$K,0),0)

• 对于 Office 365 和 Excel 2021

=FILTER(FILTER($G:$K,(B2=$F:$F)),C2=$G:$K)

• 对于 Office 365 和 Excel 2021

=INDEX(FILTER($G:$K,B2=$F:$F),XMATCH(C2,$G:$K,0))

注意:为了方便起见,我在同一个工作表中显示了两个表,因此您可能需要根据您的数据库相应地更改范围。