- ベストアンサー
エクセル 文字を右詰めで1つのセルに1文字ずつ入力した形に変更するには
いつもお世話になります。 昨日、MID関数等で、1つのセルに入力されている情報を1文字ずつセルに入力する方法を知ったのですが、それを右詰めにする方法はありますでしょうか。 例;Sheet1に、6ケタまでの数値を入れるセルがあります。 これをSheet2のA1~F1のセルに1字ずつ入れたいのですが、Sheet1に"1000"と入れた場合、Sheet2のセルA1~F1には A1=(空白),B1=(空白),C1="1",D1="0",E1="0",F1="0" という形にしたいのです 以上宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 数値限定で。 Sheet2のA1に、 =MID(TEXT(Sheet1!$A$1,REPT("?",6)),COLUMN(A1),1) と入力して、右へコピーします。 ちなみに、この数式だと数字がない桁は空白ではなく半角スペースが入ります。 もし、半角スペースも入れたくないなら、 =TRIM(MID(TEXT(Sheet1!$A$1,REPT("?",6)),COLUMN(A1),1)) とTRIM関数を通して下さい。 また、最大桁数が変わる場合は、数式中の「6」を任意に変更して下さい。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
(データ) 12345 234 1345 34 (関数式) B1に =MID(REPT(" ",6-LEN($A1))&$A1,COLUMN()-1,1) といれ、G1まで式を複写する。 B1:G1を範囲指定して、G1で+ハンドルを出し 最下行まで複写する。 (結果) 1 2 3 4 5 2 3 4 1 3 4 5 3 4
お礼
いつもお世話になります。 お礼が遅くなりまして申し訳ございません。 ありがとうございました。 おかげさまで問題解決しました。
- el2368
- ベストアンサー率71% (232/325)
Sheet1のA1に6桁を入力なら 【数式_半角スペース】 A1=MID(TEXT(Sheet1!A1,"??????"),1,1) B1=MID(TEXT(Sheet1!A1,"??????"),2,1) C1=MID(TEXT(Sheet1!A1,"??????"),3,1) D1=MID(TEXT(Sheet1!A1,"??????"),4,1) E1=MID(TEXT(Sheet1!A1,"??????"),5,1) F1=MID(TEXT(Sheet1!A1,"??????"),6,1) Sheet1のA1をまず6桁であると認識させるのに、「TEXT」関数を使っています。 「"000000"」とすると、1000のまえの未入力部分は「0」になり、 「"??????"」とすることで、「 (半角スペース)」にすることが出来ます。 「?」の数を変えれば、10桁でも、4桁でも対応可能です。 【数式_空白】 また、「 (半角スペース)」ではなくNull値(空白)が良ければ、 A1=TRIM(MID(TEXT(Sheet1!A1,"??????"),1,1)) B1=TRIM(MID(TEXT(Sheet1!A1,"??????"),2,1)) C1=TRIM(MID(TEXT(Sheet1!A1,"??????"),3,1)) D1=TRIM(MID(TEXT(Sheet1!A1,"??????"),4,1)) E1=TRIM(MID(TEXT(Sheet1!A1,"??????"),5,1)) F1=TRIM(MID(TEXT(Sheet1!A1,"??????"),6,1)) でOKです。 「TRIM」関数で、「 (半角スペース)」を消しています。 【補足】 Sheet1のA1は数値との事ですのでこれでOKですが、もし、A1が文字列の場合、「0100」と入力する場合も考えられます。このように入力すると、左から最初に「1」以上の数が出るまでは、「 (半角スペース)」になります。TRIMを使えば、「空白」です。 「0100」⇒「 100」
お礼
いつもお世話になります。 お礼が遅くなりまして申し訳ございません。 ありがとうございました。 おかげさまで問題解決しました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
処理する文字列を " "&sheet1!A1 ↑ 空白2つ にすれば良いだけのように思いますが
お礼
いつもお世話になります。 お礼が遅くなりまして申し訳ございません。 セルの中に入れる数値が最大6ケタでも、5ケタや3ケタの場合もあるので、残念ながらいただいたお答えでは処理が出来ませんでした。 ですが、他の方々からのお答えで、問題解決しました。 ありがとうございました。
- nandarou-1011
- ベストアンサー率50% (65/128)
Sheet1のA1に6桁以下の数値が入っているとします。 べたな書き方だと以下のようになります。10桁とかになればもう少し工夫しますけどね。 A1 = IF(LEN(Sheet1!A1) < 6, "", MID(A1,LEN(Sheet1!A1)-5,1)) B1 = IF(LEN(Sheet1!A1) < 5, "", MID(A1,LEN(Sheet1!A1)-4,1)) C1 = IF(LEN(Sheet1!A1) < 4, "", MID(A1,LEN(Sheet1!A1)-3,1)) D1 = IF(LEN(Sheet1!A1) < 3 "", MID(A1,LEN(Sheet1!A1)-2,1)) E1 = IF(LEN(Sheet1!A1) < 2 "", MID(A1,LEN(Sheet1!A1)-1,1)) F1 = IF(LEN(Sheet1!A1) < 1 "", MID(A1,LEN(Sheet1!A1),1))
お礼
いつもお世話になります。 お礼が遅くなりまして申し訳ございません。 いただいたお答えでも問題解決できたのですが、他の方からTEXT関数とREPT関数の組み合わせを教えていただき、コピーで対応できたので、そちらを使わせさせていただきました。 ですが、いただいたお答えも、ぜひ今後の参考にさせていただきます。 ありがとうございました。
お礼
いつもお世話になります。 お礼が遅くなりまして申し訳ございません。 ありがとうございました。 おかげさまで問題解決しました。