「平成」を感じるもの

エクセル2010を使っています。

1つのセルに入っている複数桁の数字を、1セルずつ分けて表示させたいと思っています。
しかも、数字を置き換えて桁数が減った場合には、右に詰めたいです。

(例)
AIに12345 と入力したら、B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。
A1の数字を123に置き換えたら、B1、B2は空欄、B3に1、B4に2、B5に3と置き換わるようにしたい。

ただ単に数字を1セルずつ分けるだけでしたら、mid関数を使ってできるのですが、
桁数の異なる数字に置き換えると右に詰めるようにするにはどうしたらよいでしょうか。

更に、数字の左側に円マークも表示させたいです。

よろしくお願いします。

A 回答 (7件)

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。



 それでは数字が縦並びになっている事になりますが、それを

>右に詰めたいです。

とは一体どういう意味なのでしょうか?
 しかも、

>更に、数字の左側に円マークも表示させたいです。

となりますと、1,2,3,4,5の5個の数字に加えて円マークまで表示するのですから、合わせて6個のセルが必要になりますから、B5に1の位を表示させたのでは、セルの個数が足りないため、\12345を表示する事は出来ません。
 ですから、

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。

というのは間違いであるものと考えて、B1~G1に1桁ずつ、円マーク付きで表示する方法を回答させて頂きます。

 まず、G1セルに次の関数を入力して下さい。

=IF(COLUMNS(G:$G)>LEN(TEXT($A1,"¥0;¥-0")),"",LEFT(RIGHT(TEXT($A1,"¥0;¥-0"),COLUMNS(G:$G)),1))

 そして、G1セルをコピーして、B1~F1のセル範囲に貼り付けて下さい。

 以上です。
「複数桁の数字を1セルずつ表示したい」の回答画像1
    • good
    • 13
この回答へのお礼

ご回答ありがとうざいました。
右に詰めるの意味が分かりづらくて申し訳ございません。
添付してくださった図の通りで間違いございません。

試してみたところ、できました。
ありがとうございました。

お礼日時:2013/11/10 14:06

 回答No.1です。



 別のやり方として、数字の部分は、文字列データではなく、数値データとなる様にする方法です。

 まず、G1セルに次の関数を入力して下さい。

=IF(AND(ISNUMBER($A1),COLUMNS(G:$G)<=LEN(ROUND($A1,0))+1),IF(COLUMNS(G:$G)>LEN(ROUND(ABS($A1),0)),IF(AND($A1<0,COLUMNS(G:$G)=LEN(ROUND($A1,0))),"-","\"),INT(MOD(ROUND(ABS($A1),0),10^COLUMNS(G:$G))/10^(COLUMNS(G:$G)-1))),"")

 そして、G1セルをコピーして、B1~F1のセル範囲に貼り付けて下さい。

 以上です。
    • good
    • 2
この回答へのお礼

ありがとうございました。

お礼日時:2013/11/10 14:20

添付図では、次式を記入しています。

記入後、右方向にドラッグ。

B1 =iferror(0+mid($A1,len($A1)-5+columns($B1:b1),1),"")

「円マーク」については、どこにどうしたいのか分からないので、補足してください。
「複数桁の数字を1セルずつ表示したい」の回答画像6
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
ほかの方からも円マークをどうすればよいか分からないと指摘がございました。
添付の表では、C1に入れるか、D1の数字の脇に表示できればどちらでもOKです。

お礼日時:2013/11/10 14:18

No.3です!


たびたびごめんなさい。

前回の投稿で後者の数式が間違っていました。

=IF(LEN(A$1)<6-ROW(A1),"",MID(TEXT(A$1,"00000"),ROW(A1),1)*1)
に変更してください。
どうも失礼しました。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/11/10 14:20

添付図参照


B1: =MID(RIGHT(REPT(" ",4)&$A1,5),COLUMN(A1),1)

》 数字の左側に円マークも表示させたい
添付図の場合、セル B1、D2、E3、F1 は ¥1 と表示させたいということですか?
それとも、B列以右の各数値の左側に¥を表示させたいと?
「複数桁の数字を1セルずつ表示したい」の回答画像4
    • good
    • 3
この回答へのお礼

ご回答ありがとうございました。
円マークは、セル B1、D2、E3、F1の数字の脇でも、B列以右の各数値の左側でも、どちらでもOKです。
質問の意味が分かりづらくて申し訳ございませんでした。

お礼日時:2013/11/10 14:14

こんばんは!



>更に、数字の左側に円マークも表示させたいです
どうしても「¥」マークを表示させたいというのであれば
無理やりやってみました。
A1セルに入るのは最大で5桁という前提です。

B1セル(文字列は「右揃え」にしておきます)に
=IF(LEN(A$1)<6-ROW(A1),"","\"&MID(TEXT(A$1,"00000"),ROW(A1),1))
という数式を入れB5セルまでオートフィルでコピー!

上記数式は文字列になってしまいますので、
B1~B5セルの表示形式を「通貨」にしておけば
=IF(LEN(A$1)<6-ROW(A3),"",MID(TEXT(A$1,"00000"),ROW(A3),1)*1)
という数式で対応できると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

何だか、いろいろなやり方があるのですね。
試してみたいと思います。

お礼日時:2013/11/10 14:12

>A1の数字を123に置き換えたら、B1、B2は空欄、B3に1、B4に2、B5に3と置き換わるようにしたい。


桁数が最大5桁として下記の式を使うと希望通りになります。

=IF(MID(TEXT(A$1,"00000"),ROW(),1)="0","",MID(TEXT(A$1,"00000"),ROW(),1)*1)

>更に、数字の左側に円マークも表示させたいです。
1桁ずつに文字列として切り出した数字に1を掛けると数値に置き換わりますので、右寄せは指定する必要がありません。
先頭の\マークはセルの表示形式で「通貨(\マーク付き)」とすれば良いでしょう。
桁数が4桁以下の時の空欄はA1の値を切り出したときに"0"のとき""(文字なし)としました。
「複数桁の数字を1セルずつ表示したい」の回答画像2
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
一応エクセルは講座で習ったことがあったのですが、
複数の関数を組み合わせて使いこなすことがまだまだ難しいです。

本当にありがとうございました。

お礼日時:2013/11/10 14:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A