- ベストアンサー
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関数かと思ったのですが、男女別というのが どう対処していいのか分かりません。 また、数値は小数点以下も含みます。 よろしくお願いします。
- みんなの回答 (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の値が見つからなかった場合
その他の回答 (4)
- slot7
- ベストアンサー率21% (18/83)
ANo2です。 ごめんなさい。 E9は自分のexcelで試しにやったときのセル番号です。 ANo2の場合ですと、 シート2 A列 B列 C列 1 男 100 =VLOOKUP(B1,sheet1!A1:C10,SEARCH(A1," 男女",1),TRUE) となります。 本当にごめんなさい。
- Sucelggug(@xyz37005)
- ベストアンサー率51% (369/715)
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)
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となるようにしています。 これでどうでしょう。
補足
ご回答ありがとうございます。 全部「#N/A」になってしまいました…。 "SEARCH(E9," 男女",1),"のE9とはSheet2のことでしょうか? Sheet1も2にもE列には何も入っていないのですが…。
- Sucelggug(@xyz37005)
- ベストアンサー率51% (369/715)
質問の意図がいまいちよくわからないんですが、 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)) のように入れるだけです。
補足
早々のご回答ありがとうございます。 大体うまく行ったんですが、小数点以下の数字を含むものとゼロから始まる数値は「#N/A」になってしまいます。 あと、155.6をB1としたい場合は100の次の行に155.6を入れておけばいいでしょうか?
お礼
>A列を文字列で入力 してました…。(でないとゼロから始まる数値が入れなれなかったので) VLOOKUPは完全一致でないとダメだと思い込んでいたので、勉強になりました。 ありがとうございました。