• ベストアンサー

どの関数が良いのか教えてください

VLOOKUPまたはDGETで試してみましたが、 うまくいきません。 よろしくお願いいたします。 あ  ABCDE  C あ  ABCDE  C ・    ・    ・ ・    ・    ・ ま  EFGHI  R ま  EFGHI  R ・    ・    ・ ・    ・    ・ A、B、Cそれぞれの列には全く同じ値の行が複数ずつあります。 A、B、Cの値の組み合わせは全て同じです。 このデータベースからB列の「ABCDE」ならばC列の「C」を拾って 来たいのですが、うまくいかないのは同じ値の行が複数あるから なのでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
noname#187541
noname#187541
回答No.3

こんにちは。 >VLOOKUPまたはDGETで試してみましたが、 >うまくいきません。 「うまくいきません」では無くて、具体的にどうなるのかを書いてください。 VLOOKUPだと同じ値があっても最初に見つけた値を返します。 エラーが表示されるのであれば、検索値や範囲などどこか間違っていると思われます。(範囲にAれるを含めているなど) よく見直してみるといいでしょう。

no-no-mi
質問者

お礼

ありがとうございます。 =VLOOKUP(”ABCDE”,C:C,2,0)と拾いたいデータの列だけを選択しておりました。申し訳ありません、具体例をあげるべきでした。教えていただいたように、範囲の捕らえ方を間違えておりました。今後、例をたくさん拝見し勉強していこうと思います。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

>うまくいかないのは同じ値の行が複数あるからなのでしょうか。 同じ値の初めの行の値を表示するので、2番目以降の行のC列を表示したい場合は VLOOKUP以外の関数の組み合わせですね。 そういうことなら過去に同じ質問がいっぱいあります。 上手くいかない理由として考えられることは VLOOKUPの場合は左端の列を参照して値を返しますので、 参照する表の範囲はB:C列になります。 DGETの場合は先頭の行に項目名が必要ですが... 数式はどのようになってますか?

no-no-mi
質問者

お礼

ありがとうございます。 =VLOOKUP(”ABCDE”,C:C,2,0)と拾いたいデータの列だけを選択しておりました。範囲という点で全く理解をしていなかったようです。範囲を選択し直しましたら完成しました。ご親切にありがとうございました。質問の仕方等、勉強させていただきます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

VLOOKUP関数で大丈夫のはずですよ。 =VLOOKUP("ABCDE",B1:C100,2,0) の完全一致検索できませんか? 最後の引数を省略すると検索値が見つからない場合に、検索値未満で最も大きい値が使用されます。この場合は表がB列の値で昇順に並べ替えされていないとなりません。完全一致なら並び替えは不要で、最初にHitした行のC列の値を取得します

no-no-mi
質問者

お礼

ありがとうございます。 =VLOOKUP(”ABCDE”,C:C,2,0)と拾いたいデータの列だけを選択しておりました。データの重複にばかり気を取られており、基本的なところを見落としておりました。ご親切にありがとうございました。助かりました。

回答No.1

=VLOOKUP("ABCDE",B1:C100,2,FALSE) のように、検索の型をFALSEとすればできると思います。

no-no-mi
質問者

お礼

ありがとうございます。 =VLOOKUP(”ABCDE”,C:C,2,0)と拾いたいデータの列だけを選択しておりました。教えていただいたように範囲を選択しましたら数値を拾うことができました。データの重複にばかり気を取られており、全体をみなかったのが原因かと思われます。勉強を重ねます。