列にセル値が存在するかどうかを確認し、次のセルの値を取得します


89

列にセル値が存在するかどうかを確認した後、一致するセルの隣のセルの値取得する必要があります。たとえば、の値がにcell A1存在するかどうかを確認しcolumn B、それがと一致すると仮定してB5、の値を求めますcell C5

問題の前半を解決するために、私はこれをしました...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")

...そしてそれはうまくいった。次に、SOに関する以前の回答のおかげで、一致するセルの行番号を取得することもできました。

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))

当然、次のセルの値を取得するために、私は試してみました...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))

...そしてそれは機能しません。

何が欠けていますか?返された行番号に列番号を追加して、目的の結果を得るにはどうすればよいですか?

回答:


99

VLOOKUPなどの別の関数を使用します。

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))

1
ありがとう!これも機能します!そして、私VLOOKUP(A1, B:C, 2, FALSE)は固定範囲を使用するよりも使用する方が良いと思います(拡大するルックアップ配列に対応するため)?
SNag

1
ええ、この固定範囲をテストとして使用しました。私の答えでそれを編集しました。
CustomX

IFERRORここは必要ありません。VLOOKUPは一致する場合にのみ実行されるため、これがなくても正常に機能します。
SNag

おっとっと!私は間違った列でテストしているようです:P確かにIFERRORなしでも完全に機能します:P
CustomX

3
これは古いものですが、私は何年もこれを使用してきました。あなたがベストアンサーを決して与えられなかったことは本当に不快です。複数の列を比較するためにテーブルをスケーラブルにするのが好きです。
DuffDuff

36

t.thielemansの回答の後、私はちょうどそれを働いた

=VLOOKUP(A1, B:C, 2, FALSE) 

正常に機能し、#N/A一致しない場合に返されることを除いて、私が望んだことを行います。そのため、ルックアップ列に値が確実に存在することがわかっている場合に適しています。

編集(t.thielemansのコメントに基づく):一致しないもの

を回避#N/Aするには、次のようにします。

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")

3
代わりにこれを使用してくださいIFERROR(VLOOKUP(A1, B:C, 2, FALSE),0)。これも私の回答に追加しました。0は任意の値です:)(コードでこれを使用すると、一致が見つからない場合は一致なしになります;)
CustomX

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.