- ベストアンサー
Excel数字分解
B1の数字を分解して右揃えでA:Gにいれたい。 B1に31,500があります。B1の数字は最高8桁になります。 しかしながら、A:Gまでにしか分解しませんので B1:12,000,333なら下記の様にA3に12をいれたい。 A B C D E F G 2 3 1 5 0 0 B1が12,000,333なら 3 12 0 0 0 3 3 3 MID関数でいろいろ試しましたがうまくいきません。 何かよい方法はありませんか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
一案。。 A2の式 =LEFT(RIGHT(REPT(" ",8)&$B$1,8),2) B2~G2の式 =MID(RIGHT(REPT(" ",8)&$B$1,8),COLUMN()+1,1) 以上です。
その他の回答 (7)
- KURUMITO
- ベストアンサー率42% (1835/4283)
解答No3です。 A2セルへは次の式を入力して横方向にドラッグします。 =IF(LEN($B1)-COLUMN(A1)+1>7,LEFT($B1,LEN($B1)-6),IF(COLUMN(A1)>=8-LEN($B1),MID($B1,COLUMN(A1)+LEN($B1)-7,1),""))
- watabe007
- ベストアンサー率62% (476/760)
- 135ok
- ベストアンサー率34% (26/75)
金種表の考えで解決できるのでは。 下記URLを参考ください。
- umach
- ベストアンサー率35% (600/1691)
B1が正の整数として、 A3:=int(b1/10^6) B3:=int(mod(b1/10^5,10)) C3:=int(mod(b1/10^4,10)) <中略> G3:=mod(b1,10) MIDは文字を操作する関数です。(返される値は文字) A3:=if(len(b1)>7,left(b1,len(b1)-6),"") B3:=if(len(b1)>6,mid(b1,len(b1)-5,1),"") <中略> G3:right(b1,1) if文を省略すれば簡潔ですが、桁数が足りないとエラー表示が出てしまいます。 式の内容が自身で理解出来なければ、後の改造やメンテで躓きます。 数字のまま扱った方が無難です。
- KURUMITO
- ベストアンサー率42% (1835/4283)
A2セルに次の式を入力して右横方向にオートフィルドラッグします。 =IF(LEN($B1)-COLUMN(A1)+1>7,LEFT($B1,LEN($B1)-6)*1,MID($B1,COLUMN(A1)+1,1)*1)
- tostem41
- ベストアンサー率38% (7/18)
いかがでしょう… 7桁目以降→left(b1,length(b1)-6) 6桁目→left(right(b1,6),1) 5〃→left(right(b1,5),1) 4〃→left(right(b1,4),1) 3〃→left(right(b1,3),1) 2〃→left(right(b1,2),1) 1〃→left(right(b1,1),1) エラーハンドリングはやって下さい。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
文字列じゃなくて数値として考えればチョ~簡単。 G列は1の位だから=mod(B1,10) F列は10の位だから=int(mod(B1,100)/10) E列は100の位だから=int(mod(B1,1000)/100) D列は1000の位だから=int(mod(B1,10000)/1000) ::::::::::::::::::::::: A列は百万の位から上だから=int(B1/1000000) 頭に0がつくのがいやなら、if関数でも使って桁数をチェック、たと えばB列は、 =if(int(B1/100000),int(mod($B$1,1000000)/100000),"") みたいな感じ。