• ベストアンサー

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/17068)
回答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

  • Excel関数で数値のみ取り出したい

    Excelの関数について教えてください。 A列には単位付の数値が入っています。数値の桁数は決まっていませんが、3桁区切り、小数も含まれて居ます。単位はkm2とか、m3、L、Kw、gとかの3文字以内です。 この列から、B列に「数値のみ取り出したい」場合の関数式を教えてください。

  • EXCEL関数 数値セルが何個下に出てくるか?

    EXCEL関数で質問です。 A1:A5セルそれぞれに、文字列、空白、数値のいずれかが入っています。 そのうち数値のセルが最初に出てくるのは上から何番目か、というのを B1セルに関数で表示したいのです。 たとえば、A列上から、 あ、A、100、100、0 なら3、 愛、(空白)、百、8、ZZZ なら4 という具合です。 お知恵をお貸しください!

  • VLOOKUP関数について、文字列と数値の問題

    お世話になります。現在、商品リストを作っておりまして、VLOOKUP関数を使っているのですが、エラーになってしまいます。 =VLOOKUP(A1,Sheet2!$A$2:$B$6,2,FALSE) という関数を使っているのですが、 A1に3桁のコードを入れるとSheet2のA2:B6から値を返すようになるのですが 「110」というコードを入力すると「白」と出てくるのですが、「010」というように0から始まるコードだと エラー#N/Aになってしまいます。セルによっては逆の現象が起こったりします。 文字列を数値にしたり、その逆を試してみたり(A1もsheet2の参照データも調節しましたが)したのですがどうしてもうまくいきません。 何が原因なのかまったくわからないのですが、心当たりのある方教えていただけますでしょうか。 よろしくお願いいたします。

  • Excel2007 VLOOKUP関数の相談

    もし検索不足で重複した質問でしたら申し訳ありません。 VLOOKUP関数について、シート「A」に文字列を入力したら シート「リスト」シート上に同じ文字列があれば その文字列関係の情報を持ってくるというVLOOKUP関数を使用していました。 <使っていた関数> =IF(ISERROR(VLOOKUP(H306,リスト!A:B,2,0)),"",VLOOKUP(H306,リスト!A:B,2,0)) この入力する文字列が数字(別データからコピーして貼り付ける)に変わっただけなのですが、 何故か対象情報の抽出をしてくれません。 <使おうとしている関数> =IF(ISERROR(VLOOKUP(I2,データ0501!A2:F695,3,0)),"",VLOOKUP(I2,データ0501!A2:F695,3,0)) ネットで検索したのですが、関数情報が不足しているのか、 コピーした数字列の貼り付け方が間違っているのかわからない状況です。 恐れ入りますが解決策があればお教えいただければと思います。 どうぞ宜しくお願い申し上げます。

  • Excel関数について

    Excelのバージョン:[2010] みなさん、お世話になります。 リストデータを作成したのですが、入力セルに文字を入力した時に、リストデータの中から該当するコード番号を出力する方法が判りません。 例:A1に"重機"などと入力した時に、B1のセルが、文字列"A00123"に変わる。また、重機と名前が入っているコード番号が全て表示されるようにしたいのですが・・・。 自分のスキルの無さ、理解力の乏しさに情けなくなります。しかし、差し迫ってくる時間があり質問をさせていただきました。みなさんのお知恵をお借りしたく思います。 コード番号|品目 A00123 |重機 A00132 |重機や・・・ お忙しいとは思いますが、何卒よろしくお願いいたします。 補足 先ほど、VLOOKUPという関数を使い行いましたが、やはりダメでした。 =VLOOKUP(G3,B2:C192,1,1) 文字を入力すると違うコード番号が表示され、かつコード番号が下一桁表示されませんでした。 A0012・・・という具合でした。

  • 【Excel】重複するデータの検索

    Excel2003を使用しています。 A列にデータが入力されていたら、同行のC列の値(文字列)を取り出すようにしています。(VLOOKUP関数を使用) A列のデータは4桁の数値なのですが、そのデータの数値が重複している場合があって、そのときは行番号の小さい方のC列の値が取り出されますよね? データは同じでも別の行に入力されていれば、C列に入力されている値(文字列)も違うので、それが取り出されるようにしたいのですが、そういうことは可能でしょうか?

  • エクセル関数

    エクセル初心者につき、質問させていただきます。 集計(抽出でしょうか)に関し シートAには A列に個々の件番(数値6桁です)があります 同一件番が複数あったり、一つだけだったりと 不規則です。 B列にA列の件番に対しての項目(文字列)があります  A列    B列 100001   電車 100001   バス 100001   徒歩 100003   徒歩 100006   電車 100006   バス これらのデータをシートBにて A列に6桁の数値を入力したら B・C・D列に以下の通り反映されるように したいのですがうまくいきません  A列    B列   C列   D列 100001   電車   バス   徒歩 100003              徒歩 100006   電車   バス 適した関数を御教え頂ければありがたくお願いいたします。

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • Excel関数で指定した日付の間の数値を取得し

    エクセルに以下のようなデータがあります。 A列    B列      C列 2012/4/1 2013/3/31 100 2011/4/1 2012/3/31 90 2010/4/1 2011/3/31 82 2009/4/1 2010/3/31 70 2008/4/1 2009/3/31 60 その場合に、2011/5/1と入力したらその隣の列に90 2010/6/15と入力したらその隣の列に82と表示する関数を 作りたいのですが、どのようにしたら良いのでしょうか? 検索したら、Vlookupを使えばできるのかなーと思ったのですが、 どうにもうまくいきません。

  • エクセルVLOOKUP関数について

    =IF($B$3="","",IF(ISERROR(VLOOKUP($B$3,注文管理!A$3:AE$9898,4,0)),"客注NO.を確認!",VLOOKUP($B$3,注文管理!$A$3:$AE$9898,4,0))) VLOOKUP関数を使って、上の式を作りました。 B3に入るのは5桁の数字で文字列です。注文管理のA列に5桁の数字が入っており、そこも文字列にしています。 うまくいく数字とうまくいかない数字があるのですが、なぜだかわかりません。 どこがおかしいのかおしえてください。

専門家に質問してみよう