いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Excel)検索値の1つ隣(上下左右)の値を取得する

 Excelで、値をリストから検索し、マッチしたセルの1つ隣にある値を取得する方法についてです。

  • XLOOKUP関数を使って、検索値が存在するセルの1つ隣(上下または左右)にある値を取得することができます。

手順

f:id:accs2014:20200614123001p:plain:right:w400

 B列に駅名のリストが並んでいます。
 また、E3セルに1つの駅名が入力されています。この駅名(検索値)をリストから検索し、次の(1つ下の)駅名と前の駅(1つ上の)駅名を取得するものとします。

f:id:accs2014:20200614123006p:plain:right:w550

 まずは次の駅名からです。
 F3セルに次のように入力します。

=XLOOKUP(E3,B3:B10,B4:B11)

 XLOOKUP関数関数を使います。第2引数(検索範囲)に対して第3引数(戻り範囲)を1つ下にずらすことで、検索した値の1つ下にある値が返されるというわけです。
 

f:id:accs2014:20200614123010p:plain:right:w400

 結果はこうなります。

f:id:accs2014:20200614123015p:plain:right:w450

 さらにD3セルに「=XLOOKUP(E3,B3:B10,B2:B9)」と記すことで1つ前の駅名が得られました。
 ただし、E3セルに「東京」と入力されたときにはその1つ上の「駅名」という値が表示されてしまいますので、リストにダミー行を設けるか関数側での対策が必要となります。

 また、XLOOKUP関数は水平方向にも適用できますので、リストが水平方向に並んでいる場合でも同じように左右の値を取得することができます。第3引数のずらし具合により2つ隣とか斜め隣の値を取得するといったことも可能です。