配列の行をMIN()関数の結果で見つけますか?

配列の行をMIN()関数の結果で見つけますか?

同じ形式の値のテーブルが 2 つあります。1 つのテーブルは「マスター」テーブルで、もう 1 つは「履歴」テーブルです。各行は個別のレコードです。履歴テーブルにはあるがマスター テーブルにはないレコード (ある場合) を特定しようとしています。

テーブルは採掘用の掘削穴のセットです。各掘削穴には ID、x 座標と y 座標、および方向を表す 2 つの角度フィールドがあります。

通常、履歴データセットで見つかったすべてのホール 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

よろしく

関連情報