プロが教えるわが家の防犯対策術!

VLOOKUPで
1セルからではなく、もう1セルから検索して出力したいのですが


例えば、

=IF(I2="";"";VLOOKUP(I2;$N$4:$P$171;2;0))


I2に検索対象入力し、
N4からP171の表の2列目(O4)が被検索対象となると思うのですが、
同時に3列目(P4)からも検索し、I2に出力するにはどうしたらいいでしょうか。

A 回答 (3件)

用語の使い方が少し違うように思います。



vlookupの被検索対象は範囲(この例ではN4:P171)の一番左端の「列」です。
質問の例でいうならN4:N171です。

VLOOKUP(I2;$N$4:$P$171;2;0)は文章にするなら
『範囲(N4:P171)の一番左の列(N4:N171)からI2に入力された値と同じものを探し出して、
見つけたら範囲の2列目(O4:O171)の中の合致した行と同じ行の値を表示しなさい』
ということです(一番最後の0は今は無視してます)。

O列のものとP列のものを両方表示したいという意味であればNo1の方がおっしゃっているように
式を二つに分けるのが楽だと思います。
必要があれば二つのものを文字列として結合して一つのセルに表示させればいいと思います。
私はOOOは使っていないので、エクセルで例を書くと

=VLOOKUP(I2,$N$4:$P$171,2,0) & VLOOKUP(I2,$N$4:$P$171,3,0)

となります。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/13 18:48

>N4からP171の表の2列目(O4)が被検索対象となると思うのですが、同時に3列目(P4)からも検索し、I2に出力するにはどうしたらいいでしょうか。


質問の内容が論理的に合いません。
OpenOfficeのVLOOKUP関数はVLOOKUP(検索条件,行列,インデックス,データ順序)となっています。
検索条件はI2で、行列は$N$4:$P$171で良いとします。
インデックスの2は対象行列の2番目の列を指しています。
検索はI2と$N$4:$N$171を比較して一致した行のインデックスで指定した列の値を返します。
返される先は関数式を入力したセルで他のセルへの出力はできません。

結果として「3列目(P4)からも検索し」はあなたの勘違いで「3列目(P4)のデータも抽出し」と言うことではないですか?
また、I2セルは検索条件をセットするため関数式を同時に入力できません。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/13 18:46

=IF(I2="";"";VLOOKUP(I2;$N$4:$P$171;2;0))



計算式からするとOpenOffice でしょうか

OpenOfficeでもEXCELでもそうですが
計算式だけで、結果を他のセルに出力する事はできません

>I2に検索対象入力し~I2に出力するには

循環参照になっています

上記の2点から
マクロなら可能でしょうがVLOOKUPの計算式では実現不可能


>N4からP171の表の2列目(O4)が被検索対象となると思うのですが、
>同時に3列目(P4)からも検索

これだけなら
VLOOKUP(I2;$N$4:$P$171;2;0)
VLOOKUP(I2;$N$4:$P$171;3;0)
と計算式を別々にすれば良いだけです
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/13 18:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!