-1

我有一列城市名称与一行相同城市名称的电子表格,其中的单元格具有它们之间的距离。因此,您可以想象一条由零组成的对角线,其中每个城市将经过零距离到达自身,对角线两侧的两个三角形是它们所持有数据的镜像。

现在我想要实现的是找到离另一个城市最近的城市。所以目前我可以成功地找到从一个城市到下一个城市的最小距离:“{=MIN(IF(B2:B19>0,B2:B19))}”

这让我得到了最小的零距离,但我也想要城市名称,它出现在最左边的列中。

我试过用这个:“{=OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,X)}

其中 X = 到达左侧城市名称列表所需的列偏移量。我已尝试按照 ROW() 和 COLUMN() 函数开头所述放入 MIN 函数,但这会导致错误并且不起作用。

基本上对于我发现的距离,我想获得与该距离相关的最左侧列的城市名称。如果有人能看到我接下来应该看哪里或哪里出错了,将不胜感激。

问候

4

1 回答 1

2

您可以尝试改用INDEX公式(作为数组输入,就像您之前所做的那样):

=INDEX($B$1:$D$1,1,MATCH(MIN(IF(B2:D2>0,B2:D2)),B2:D2,0))

这与您上面的公式具有相同的警告MIN- 它将匹配找到的第一个值。(注意:@barryhoudini 下面的公式 ( =INDEX($B$1:$D$1,MATCH(SMALL(B2:D2,2),B2:D2,0))) 实际上会为您节省数组条目,并且也更简洁)。

在此处输入图像描述

如果你想使用INDIRECT,你可以使用(也作为数组输入):

=INDIRECT(ADDRESS(ROW($1:$1),MATCH(MIN(IF(B2:D2>0,B2:D2)),A2:D2,0)))

在此处输入图像描述

这使用第一行作为 的row_num参数ROW,匹配MIN值并返回ADDRESS匹配值处第一行中单元格的 。地址将类似于$D$1INDIRECT并将返回该值。

于 2012-11-24T18:12:23.723 回答