- ベストアンサー
エクセルの文字操作について
こんにちは。過去の質問で同じようなのが見つからなかったので、新たに質問します。 関数でMIDというのがありますよね。あれの逆バージョンというか、末尾から桁を選んで別のセルに飛ばすような関数はあるのでしょうか? 具体的には、1つのセルに入った12345という5桁の数値を(金額)を 5は 1の位 4は 10の位 3は100の位・・・ というかんじで1桁ずつ1個のセルに入れていきたいのです。(金額の左詰入力をしたいのです)。 こんなことは可能でしょうか?ご存知の方、お知恵をお貸しくださいませ。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 もうひとつ考えました。 MIDを使ったやりかたです。 A4に12345があるとします。 1の位:=MID(A4,LEN(A4),1) 5が返ります。 10の位:=MID(A4,LEN(A4)-1,1) 4が返ります。 100の位:=MID(A4,LEN(A4)-2,1) 3が返ります。 ポイントは、LEN関数です。 LEN関数は、対象文字列の長さを出します。 たとえばA4は12345なので、5桁です。 LEN(A4)で5桁ですので、MID関数でそこから1文字だせば5です。 LEN(A4)-1とすれば、4桁を意味し、MID関数で1文字だせば、4が出されます。 こっちのほうが、綺麗かもしれませんね。
その他の回答 (4)
- yomo3
- ベストアンサー率32% (88/269)
momijinnさんの回答で十分な気もしますが、数値として扱うという手もあります。計算用のセルが必要ですが。 下記は、桁数が5桁以内とわかっている場合です。 A4が12345という例で行きます。 A5=INT(A4/10000) B4=A4-A5*10000 B5=INT(B4/1000) C4=B4-B5*1000 C5=INT(C4/100) D4=C4-C5*100 D5=INT(D4/10) E5=D4-D5*10 これでA5からE5にそれぞれの桁の数値が入ります。 10000とかの数値を10^Nとかいう設定にすれば、任意の桁の抜き出しも可能です。
お礼
ご回答ありがとうございます。 数式が短いのはいいですね。計算用の欄がちょっとネックになりそうですが、勉強します。
- junijuni
- ベストアンサー率25% (12/48)
#1の方ので問題ないと思いますが、 桁数が一定でない場合の補足として… A1に数値が入っているとして、 =IF(LEN(A1)>0,RIGHT(A1,1),"") … 1の位 =IF(LEN(A1)>1,LEFT(RIGHT(A1,2),1),"") … 10の位 =IF(LEN(A1)>2,LEFT(RIGHT(A1,3),1),"") … 100の位 以降 =IF(LEN(A1)>n,LEFT(RIGHT($A1,(n+1)),1),"") … 10のn乗の位 となります。
お礼
ご回答ありがとうございます。 そうです、桁数が一定していないのです。 数式は少し難しいですが、これだと5桁以上のセルを用意して実際4桁の場合、ブランクが返るというのが魅力的です。ちょっと勉強してみます。
- arukamun
- ベストアンサー率35% (842/2394)
こんにちは A1セルに12345 A2セルに1の位 A3セルに10の位 A4セルに100の位 A5セルに1000の位 A6セルに10000の位 という感じでしたら、 数値で扱いたいのであれば、 A2セルに =MOD(A1,10) A3セルに =INT(MOD(A1,100)/10) A4セルに =INT(MOD(A1,1000)/100) A5セルに =INT(MOD(A1,10000)/1000) A6セルに =INT(MOD(A1,100000)/10000) とすれば良いでしょう。 文字として扱うのであれば、 A2セルに =RIGHT(A1,1) A3セルに =LEFT(RIGHT(A1,2),1) A4セルに =LEFT(RIGHT(A1,3),1) A5セルに =LEFT(RIGHT(A1,4),1) A6セルに =LEFT(RIGHT(A1,5),1) で良いと思います。 もしかしたら問題をはき違えているかもしれません。 補足してください。
お礼
早速の回答ありがとうございました。 よくよく考えると金種票とかでMODを使ったことがありました・・・思いつかなくて。 大変参考になりました。
- norakuma
- ベストアンサー率29% (293/977)
単純な、右から何桁というのであれば、Right関数が使えます。 Right(対象のセル,桁数) A4が12345という例でいきます。 Right(A4,1) では、5が返されます。 Right(A4,2)だと、45が返されます。 10の位とかを選ぶには、Left関数と一緒に使うといいでしょうね。 Left(Right(A4,2),1)で、4が返ります。 Left(RightA4,3),1)で、3が返ります。 というので、いかがでしょう。
お礼
早速ありがとうございました。 rightはすぐ思いついたのですが、1桁に区切るというのが思いつかなくて。leftと抱き合わせれば良かったんですね。勉強になりました。
お礼
短時間に2回目の回答、ありがとうございます。 LEN関数は使うの初めてです。数式がシンプルでわかりやすいです。 どうも関数を2つ並べる、というところまで頭が働かないですが、これから勉強して身につけたいです。