• ベストアンサー

VLOOKUP?

Sheet1に男女別の数値区分表があります。 A列     B列  C列 数値     男  女 000~099   M1  F1 100~199   M2  F2 200~299   M3  F3 ≪中略≫ 900~999   M10  F10 さらに特定の数値は別の区分が付きます。 例1.155.6 = B1 Sheet2のA列に男・女、B列に数値がランダムに入っているので、 対応する区分番号をC列に表示させる関数はあるでしょうか? VLOOKUP関数かと思ったのですが、男女別というのが どう対処していいのか分かりません。 また、数値は小数点以下も含みます。 よろしくお願いします。

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

  • ベストアンサー
回答No.5

>大体うまく行ったんですが、小数点以下の数字を含むものとゼロから始まる数値は「#N/A」になってしまいます。 う~ん、おかしいな。今自分の環境で試したけど上記の場合でもうまく行きました。 もしかしてA列を文字列で入力してませんか? それから >あと、155.6をB1としたい場合は100の次の行に155.6を入れておけばいいでしょうか? VLOOKUPでTRUEを指定してしまうと値が見つからなかった場合は その値以下の最大値になってしまうため、155.6~200は全部B1になってしまいます。 なので、例外については別テーブルとしてNo.3に書いたようにしてください。 =IF(ISERROR(VLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE))=TRUE,IF(A1="男",VLOOKUP(B1,Sheet1!$A$1:$C$10,2,TRUE),VLOOKUP(B1,Sheet1!$A$1:$C$10,3,TRUE)),VLOOKUP(B1,Sheet1!$E$1:$F$2,2)) VLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE) →例外テーブルからB1と完全に一致する値を探す     ↓ ISERROR(VLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE)) →上記VLOOKUPがエラーかどうか(エラー=値が見つからなかった)     ↓ IF(ISERROR(VLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE))=TRUE, →例外テーブルからB1の値が見つからなかった場合

ricky223
質問者

お礼

>A列を文字列で入力 してました…。(でないとゼロから始まる数値が入れなれなかったので) VLOOKUPは完全一致でないとダメだと思い込んでいたので、勉強になりました。 ありがとうございました。

その他の回答 (4)

  • slot7
  • ベストアンサー率21% (18/83)
回答No.4

ANo2です。 ごめんなさい。 E9は自分のexcelで試しにやったときのセル番号です。 ANo2の場合ですと、 シート2  A列   B列  C列 1 男   100  =VLOOKUP(B1,sheet1!A1:C10,SEARCH(A1," 男女",1),TRUE) となります。 本当にごめんなさい。

回答No.3

No.1です。 >さらに特定の数値は別の区分が付きます。 >例1.155.6 = B1 に対応させた例を紹介します。 上記例1の場合、男女関わらずB1となるとします。 そして特定の数値用のテーブルを用意します。 E列    F列 155.6   B1 211.34   B2 その上でC1に下記の式(例)を入れてください。 =IF(ISERROR(VLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE))=TRUE,IF(A1="男",VLOOKUP(B1,Sheet1!$A$1:$C$10,2,TRUE),VLOOKUP(B1,Sheet1!$A$1:$C$10,3,TRUE)),VLOOKUP(B1,Sheet1!$E$1:$F$2,2))

  • slot7
  • ベストアンサー率21% (18/83)
回答No.2

A列   B列  C列 数値   男  女 1  0    M1  F1 2  100   M2  F2 3  155.6  B1  B2 4  200   M3  F3 ≪中略≫ 10  900   M10  F10 として シート2 A列   B列  C列 男   100  =VLOOKUP(A1,sheet1!A1:C10,SEARCH(E9," 男女",1),TRUE) searchで男であればVlookupの参照列を2、女であれば3となるようにしています。 これでどうでしょう。

ricky223
質問者

補足

ご回答ありがとうございます。 全部「#N/A」になってしまいました…。 "SEARCH(E9," 男女",1),"のE9とはSheet2のことでしょうか? Sheet1も2にもE列には何も入っていないのですが…。

回答No.1

質問の意図がいまいちよくわからないんですが、 Sheet2のB列のデータでSheet1のA列を検索し、Sheet1のB列またはC列のデータを取得する ということでよろしいでしょうか? それならば Sheet1のA列のデータを A列     B列  C列 数値     男  女 000   M1  F1 100   M2  F2 200   M3  F3 ≪中略≫ 900   M10  F10 のように直して、 例(C1): =IF(A1="男",VLOOKUP(B1,Sheet1!$A$1:$C$10,2,TRUE),VLOOKUP(B1,Sheet1!$A$1:$C$10,3,TRUE)) のように入れるだけです。

ricky223
質問者

補足

早々のご回答ありがとうございます。 大体うまく行ったんですが、小数点以下の数字を含むものとゼロから始まる数値は「#N/A」になってしまいます。 あと、155.6をB1としたい場合は100の次の行に155.6を入れておけばいいでしょうか?

関連するQ&A

専門家に質問してみよう