-1

同じ都市名の行に対して都市名の列のスプレッドシートがあり、セル間に距離があります。したがって、各都市がゼロ距離を移動してそれ自体に到達するゼロの対角線を描くことができます。対角線の両側にある 2 つの三角形は、保持するデータを含む互いのミラーです。

今私が達成しようとしているのは、別の都市に最も近い都市を見つけることです。したがって、現時点では、「{=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$1になり、INDIRECTその値を返します。

于 2012-11-24T18:12:23.723 に答える