• ベストアンサー

VLOOKUP 被検索対象を2セルに

VLOOKUPで 1セルからではなく、もう1セルから検索して出力したいのですが 例えば、 =IF(I2="";"";VLOOKUP(I2;$N$4:$P$171;2;0)) I2に検索対象入力し、 N4からP171の表の2列目(O4)が被検索対象となると思うのですが、 同時に3列目(P4)からも検索し、I2に出力するにはどうしたらいいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • d3kk485
  • ベストアンサー率41% (5/12)
回答No.2

用語の使い方が少し違うように思います。 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) となります。

re_ttaro
質問者

お礼

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

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>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セルは検索条件をセットするため関数式を同時に入力できません。

re_ttaro
質問者

お礼

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

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

=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) と計算式を別々にすれば良いだけです

re_ttaro
質問者

お礼

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

関連するQ&A