- ベストアンサー
エクセルでの判別について
エクセル2002を使用しております。 現在、1から100までの間の数字データがありまして それをA、B、C、D、E、F、G、H、I、Jの 10に振り分けたいと思います。 具体的に言いますと、 1~10は、A。 11~20は、B。 ・・・・・ といった具合です。 データが多いために「フィルタ」を使用しないで 一括で関数などを使用して変換できたら助かります。 何卒よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
典型的なVLOOKUP関数の利用例です。 表を例えばSheet1のC1:D10に 1 A 11 B 21 C 31 D 41 E 51 F 61 G 71 H 81 I 91 J と作ります。 SHeet2等に作っても良い。 A列にデータがあるとして、 B1に=VLOOKUP(A1,$C$1:$D$10,2,TRUE) といれ、B1の式をB2から下へ複写します。 注意事項は、(1)表の第1列を昇順に作ること(2)第2引数の、表を表す部分を絶対参照($付き)にすること (3)第4引数は「TRUE」にすること。 未入力セルでB列が#N/Aになるのが気になるなら =IF(A1="","",VLOOKUP(A1,$C$1:$D$10,2,TRUE)) (4)表がSheet2にあるなら、Sheet2!$C$1:$D$10 のように表現します。
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
>この関数の仕組みを教えていただくことは可能でしょうか? 各文字には文字コードというデータがあります。 文字コードは各文字にユニークに与えられています。 文字コードはCODE関数で確認出来ます。 例えば、A1に適当な文字を入力して、 =CODE(A1) でその文字の文字コードを表示出来ます。 (A1に複数の文字が入力されている場合は、先頭の文字の文字コードを表示します。) 逆に、文字コードから文字を表示するには、CHAR関数を使用します。 例えば、A1に「65」と入力して、 =CHAR(A1) とすると、文字コード65の文字(半角大文字の"A")が表示されます。 半角大文字のアルファベット「A~J」の文字コードは、65~74です。 今回は、元の入力値に対して、 1~10→1 11~20→2 ・・・・・ 91~100→10 と変換しています。 (ROUNDUP関数の部分) さらにこれに64を足すことで、65~74というアルファベットの文字コードに変換します。 最後にこの数値をCHAR関数で文字に変換しているのです。
お礼
たびたびのご返答ありがとうございます。 はじめて知りました機能です。 本当にありがとうございます。 少しいじって理解したいと思います。 ありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 ここまで、規則性がある場合は、VLOOKUP関数を使用しなくても出来ます。 A1に数値があるとすると、B1に、 =CHAR(ROUNDUP(A1/10,)+64) と入力します。 1~100の範囲外の数値や、数値以外がA1にある場合に「""」にする場合は、 =IF(AND(ISNUMBER(A1),A1>=1,A1<=100),CHAR(ROUNDUP(A1/10,)+64),"") とします。
お礼
早速のご返答をいただきましてありがとうございました。 早速試してみましたがうまくできました。 すごいですね。感謝いたします。 関数の中の「+64」というのが「A」からはじめるのをあらわしているのでしょうか? もしできましたらこの関数の仕組みを教えていただくことは 可能でしょうか? すみませんがよろしくお願いいたします。
お礼
早速のご返答ありがとうございます。 なるほどです。 先に参照となる表を作成しておくのですね。 「はっはぁー」といった感じです。 分かりました。 大変参考になりました。ありがとうございます。