我有两个具有相同格式的值表。一个表是“主”表,另一个是“历史”表。每行都是一个不同的记录。我试图确定哪些(如果有)记录出现在历史表中而没有出现在主表中。
这些表是采矿钻孔的集合。每个钻孔都有一个 ID、x 和 y 坐标,以及两个用于描述其方向的角度字段。
通常情况下,这将是一个简单的练习,因为我只需检查在历史数据集中找到的所有洞 ID 是否也在主数据集中找到。
问题是,一些钻孔从当时到现在被重新命名了。我的下一个选择是找到匹配的坐标。问题是,给定钻孔的坐标从当时到现在可能会相差几米。
到目前为止,我已经设置了一个函数,它将获取“历史”表中的每个洞,并找到到“主”表中最近洞的距离。此函数如下:
{=MIN(SQRT((('历史'!D4-('主'!$C$3:$C$2419))^2+('历史'!E4-('主'!$D$3:$D$2419))^2)))}
此数组函数查看历史数据集中的每个洞(本例中为第 4 行),获取其 x 坐标(D 列)和 y 坐标(E 列),然后使用主选项卡中的每对坐标执行勾股定理计算。与 MIN() 函数配合使用,这将找到到主表中坐标的最小直线距离。
我的问题是,如何找出主表中的哪一行产生了这些最小距离坐标?返回的最小值是使用目标行中的值计算的值,因此我不能直接搜索它。
我希望问题很清楚并且我已经提供了足够的背景信息。
答案1
您可以使用MATCH
:
=MATCH(MIN(SQRT((Historical!D4-Master!$C$4:$C$2420)^2+(Historical!E4-Master!$D$4:$D$2420)^2)),SQRT((Historical!D4-Master!$C$4:$C$2420)^2+(Historical!E4-Master!$D$4:$D$2420)^2),0)
(我从你的构造中删除了一些多余的括号。)
显然以上内容仍然需要承诺array formula
。
问候