• ベストアンサー

EXCEL関数 数値○○○.○○○○を二つに分類したい

タイトルにも書きましたが、エクセルシートで○○○.○○○○という、途中コンマで区切られた7桁の数値を入力すると、二つに分類し、分類に応じた文字列が表示されるようにしたいのです。  367.2000 と入力すると A  456.3010 と入力すると B といった感じです。 分類する数値は355番台はA、340番台はBといったように、ある程度まとまりはあります。 IFとVLOOKUPの組み合わせで、ある数値を入力すると決まった文字列が出るようになる関数はわかるのですが、7桁全部を入力して分類、という関数(の組み合わせ)があればと思い質問させていただきました。 拙い文章で申し訳ありません。補足が必要でしたらおっしゃってください。 よろしくお願いいたします。

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

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

>途中コンマで区切られた7桁の数値を入力すると 私には「.」ピリオド(小数点)に見えますが… ともあれ、A,Bの分類に対応する数値の範囲が明示されていませんので一般的な方法を書きます。VLOOKUP関数を使用する方法です まず以下のような表を作ります。仮にA1:B5の範囲とします 0     A 100   B 200   A 300   B 400   A C1に 350 を入力して、空いているセルに  =VLOOKUP(C1,A1:B5,2,1) と入力してください。するとC1の数値が  0以上100未満の時   A  100以上200未満の時  B  200以上300未満の時  B  300以上400未満の時  B  400以上時       B を返します。表の数値は実際の条件に合わせて見直してください。 なお表の数値は昇順(小さい値から順番になっている必要があります)

twin_user
質問者

お礼

回答ありがとうございます。 すいません。ピリオド(小数点)でした。混乱させてしまって申し訳ありません。 **以上**未満、のような数値の当て方になるんですね。それなら少し入力が楽になりそうです。 一度やってみたいと思います。ありがとうございました。

その他の回答 (2)

noname#79209
noname#79209
回答No.3

ワーク用の列を追加し、 =LEFT(A1,FIND(",",A1)-1) で出力されたデータを元にVLOOKUPを行えば? もし、このワーク列の表示がウザイなら、列幅を0にして下さい。 なお、ご質問のように一つのセル内にデータの区切り記号を入れたいときは、 そのセルや列の書式を予め「文字列」に設定しておかないと、思わぬ結果になることがありますのでご注意を...。

twin_user
質問者

お礼

回答ありがとうございます。 文字列にしないと思わぬ結果、というのはちょっと怖いですね。一体どうなるんでしょう…。気をつけます。 そうですね、LEFTとVLOOKUPの組み合わせでやってみようと思います。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

データを全行に入力し終わって、さあ、カンマ2列に分けましょうは データー区切り位置ー・・でできます。 A,B列に分かれて出ます ーー A列のデータを関数を用いて、カンマまでの前半部分をA列、後半部分をB列に出せる。 書式を文字列にして123,4567と入れる。数値では値からカンマは消える。 前半 =LEFT(A1,FIND(",",A1)-1) 後半 =RIGHT(A1,LEN(A1)-FIND(",",A1)) ーーー A列に入れると瞬時に分離するは VBAのイベントという考えのものを使わないとできない。 質問者にはすぐは無理でしょう。 ーー 多分VLOOKUPの問題ではないと思う。

twin_user
質問者

お礼

回答ありがとうございます。 数値の前半が分類の基準になってくるので、この関数とVLOOKUPでやってみようと思います。 VBAは名前は聞いたことがあるのですが…使えればもっと複雑な処理が出来るようなら、勉強してみたいですね。(難しそうですが…。)

関連するQ&A