• ベストアンサー

Excelの関数を教えてください。

Excelの関数で例えば シートAのB行の中の値とシートBのセルA1の値、シートAのC行の中の値とシートBのセルB1の値が一致した行のF列の値を返す関数を考えているのですが、いろいろ試してもエラーになってしまいます。(B列とC列の一致する行は1つしかありません) これができないと家に帰れません;; どなたか、教えてください! よろしくお願いします。

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

  • ベストアンサー
  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.6

#5です。 B1~B5,C1~C5に限定しちゃってますね(^^; =IF(MATCH(A1,Sheet1!B:B,0)=MATCH(B1,Sheet1!C:C,0),INDEX(Sheet1!F:F,MATCH(A1,Sheet1!B:B,0)),"") としてください。 ただし、もしも一致する行が2行以上あった場合は動作を保証するものではありません。

lovekouhei
質問者

お礼

ご回答ありがとうございます。 この通りにやってみたらできました!^^ まだまだ勉強不足みたいです^^; また何かありましたらよろしくお願いします。

その他の回答 (5)

  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.5

#2の解釈でよければ。 シートA→ sheet1 シートB→ sheet2 とし、F列の値を返すセルはシートBであるとします。 =IF(MATCH(A1,Sheet1!B1:B5,0)=MATCH(B1,Sheet1!C1:C5,0),INDEX(Sheet1!F:F,MATCH(A1,Sheet1!B1:B5,0)),"") でどうでしょう? 両方に一致する行がない場合は、ブランクになります。 少々長ったらしいですが…。

  • k0000
  • ベストアンサー率37% (9/24)
回答No.4

#3です 数字と英文字がごっちゃになってしまいました 先ほどの回答を下記に訂正します すみません 一致するシートAのF列の値をシートBのC1に表示 シートAのデータが100行あるとして・・・ 1.シートAのA1に「=AND(B1=SheetB!$A$2,C1=SheetB!$B$2)」と入力 2.A2からA100まですべてにその式をコピー 3.シートBのC1に「=VLOOKUP(TRUE,Sheet1!A1:F100,6,0)」

  • k0000
  • ベストアンサー率37% (9/24)
回答No.3

一致するシートAのF列の値をシートBのC2に表示であれば すこし遠回りかもしれませんがシートAのデータが100行あるとして・・・ 1.シートAのA1に「=AND(B1=Sheet2!$A$2,C1=Sheet2!$B$2)」と入力 2.A2からA100まですべてにその式をコピー 3.シート2のC2に「=VLOOKUP(TRUE,Sheet1!A1:F100,4,0)」 これでいかがでしょうか?

  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.2

「シートAのB行の中の値とシートBのセルA1の値が一致」して、かつ「シートAのC行の中の値とシートBのセルB1の値も一致」する行を検索したい。その行は、1つしかない。 という解釈でいいでしょうか? あと、そもそもシートAとシートBのように、検索する範囲と検索値が別のシートに分かれているときは、vlookupは使えなかったと思います。

回答No.1

質問文の シートAのB行の中の値とシートBのセルA1の値、シートAのC行の中の値とシートBのセルB1の値が一致した行 とありますが、 「一致した行」は、必ずしも1行ではなく、出そうとしているF列のどちらの一致した行を出すのかが不明と思われます。 そのあたりの出したい行のあいまいさが  関数? 式?で答えが出ずにエラーとなってしまうのではないでしょうか? ・・・とそんな感想を記述している私が質問者の文章を理解していなかったらごめんなさい。 (実際にEXCELで試したとき、感じました)

lovekouhei
質問者

お礼

ご回答ありがとうございます。 データではB行とC行の一致した値は必ず1行のみにあります。 VLOOKUPで考えていたのですが、条件が2つある時にどのように、式をつくっていいかわかりません。それとも他の方法があるのでしょうか? もし、おわかりになりましたらよろしくお願いします。

関連するQ&A