IF公式太长

时间:2018-02-04 16:42:13

标签: excel formula

我正在尝试创建一个能够显示从一个地方到另一个地方的里程数的公式。

示例:第一列是位置组合(有39个位置和多个组合) 例如,向Petes发送sams,向mc d发送sams,向ss发送mc等等。

带公式的最后一列会自动将里程数从a点放到b点。等等

我创建的公式是IF但是太长了

=IF(B12="SVES TO KHS",11, 
    IF(B12="SVES TO FRHS",4.1,
    IF(B12="SVES TO CHS",6.9,
    IF(B12="SVES TO KMS",9.5,
    IF(B12="SVES TO ISM",6.2,
    IF(B12="SVES TO HM",5.3,
    IF(B12="SVES TO FHM",2.4,
    IF(B12="SVES TO TSM",7.6,...

有没有办法缩短公式?

2 个答案:

答案 0 :(得分:1)

最好的办法是在表格2上创建一个单独的表格,在列a中有一个答案列表" SVES TO",b列英里。然后使用vlookup查找里程

=Vlookup (b12, sheet 2!'a1:b50,2,0)

在此示例中,有50个不同的SVES TO示例,将其更改为您拥有的许多示例。

答案 1 :(得分:0)

X-to-Y / Y-to-X距离矩阵应该是您最好的选择。虽然VLOOKUP适用于单列查找/单列检索,但INDEX / MATCH / MATCH更适合于真正的矩阵。

假设下面的数据矩阵包含第一行和第一列的目的地。

      a       b       c       d       e       f       g
a     -      40      80      17      37      16      70 
b    40       -      48      95      85       8      60 
c    80      48       -      24      26      75      73 
d    17      95      24       -      14       9      56 
e    37      85      26      14       -      91       7 
f    16       8      75       9      91       -      78 
g    70      60      73      56       7      78       - 

请注意,c-to-f等距离与f-to-c相同。 (是的,我有一个简单的公式,但这是另一个问题)。显然,当x = y时,任何x到x或y到y都应为零。

在下面的示例图像中,L2中的公式应为

=INDEX($B$2:$H$8, MATCH(J2, A$2:A$8, 0), MATCH(K2, B$1:H$1, 0))

enter image description here

细胞和行突出显示添加了几个简单的条件格式公式。