4

列に値が存在するかどうかを確認した後、同じ行のセルの値を別の列に戻したい。

具体的には、列 O の値が列 A の値と一致するかどうかを確認しています。一致する場合は、列 A の一致したアイテムと同じ行のセルから対応する値を取得したいのですが、これらの値は列にありますf. 次に、列 f からこれらの値を取得し、列 O の値と同じ行に配置します。

これは私が試した式です:

=IF(ISNA(MATCH(O2,$A$2:$A$1589,0)),"no match", VLOOKUP(O2,$A$1:$z$14000,16,FALSE))

これは、列 P のすべてのセルに対して「一致なし」を返します。VLOOKUP 関数で col_index_num をいじってみましたが、できることは、正しい値ではないゼロを返すことです。

4

1 に答える 1

11

次の式は、取得しようとしているものを提供するはずだと思います。私があなたの質問を正しく理解していれば、一致した行と同じ行にある列 F の値を返す必要があります。したがって、列 F に使用する範囲は、列 A の範囲と同じ長さです。

  =IFERROR(INDEX($F$2:$F$1589,MATCH(O2,$A$2:$A$1589,0),1),"no match")

外向きに作業すると、ここで何が起こっているかです。

  • 一致関数は、列 A で O2 の値と完全に一致するかどうかを調べます。

    一致が見つかった場合は、列 A の検索範囲内で一致する値の相対位置を返します。

    一致するものが見つからない場合は、エラー値が返されます。

  • index 関数は、インデックス範囲のi番目の行とj番目の列の値を返します。この場合、一致で見つかった行と、インデックス範囲の最初の (そして唯一の) 列である列 F です。

  • 最後に、これら 2 つの関数は IFERROR 関数でラップされ、一致しない場合に生成されるエラー値をキャッチし、代わりに文字列 "no match" を返します。

この数式はセル P2 に入力され、列 O のデータの最後の行までコピーされます。

于 2013-03-01T00:35:29.347 に答える