あなたにとってのゴールデンタイムはいつですか?

一つのセルに3桁ずつ計算結果を表示させる方法
エクセルで、ある数式の計算結果が12345678だったとします。
A1に12、A2に345、A3に678を表示するというように、右から3桁ずつ計算結果を格納する方法はありますでしょうか?

よろしくお願いいたします。

A 回答 (8件)

B1=12345678として


A1=IF(LEN($B$1)>6,RIGHT(TEXT(TRUNC($B$1/10^6),REPT("0",LEN($B$1)-6)),3),"")
A2=IF(LEN($B$1)>3,RIGHT(TEXT(TRUNC($B$1/10^3),REPT("0",LEN($B$1)-3)),3),"")
A3=IF(LEN($B$1)>0,RIGHT(TEXT(TRUNC($B$1/10^0),REPT("0",LEN($B$1)-0)),3),"")
    • good
    • 0

次のようにすればよいでしょう。


A1セルに数値を入力するとしてA2セルから下方に右から3桁ずつの数字を表示させるとしたら、A2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(ROW(A1)=1,MID(A$1,1,LEN(A$1)-(ROUNDUP(LEN(A$1)/3,0) -1)*3),MID(A$1,LEN(A$1)-3*(ROUNDUP(LEN(A$1)/3,0)-ROW(A1)+1)+1,3))
    • good
    • 0

 回答番号:ANo.5です。


 因みに、3桁区切りのデータの最初に「0」が来る場合には、2桁表示になってしまっても構わずに、数値データとして取り扱う場合には、A1セルとA2セルに入力する数式を、以下の様に変更して下さい。

A1に入力する数式

=IF(ISNUMBER($B$1),VALUE(LEFT($B$1,MOD(LEN($B$1),3)+(MOD(LEN($B$1),3)=0)*3)),"")


A2に入力する数式

=IF(ROWS($1:1)>INT(LEN($B$1)/3)-(MOD(LEN($B$1),3)=0),"",VALUE(MID($B$1,MOD(LEN($B$1),3)+((MOD(LEN($B$1),3)=0)+(ROWS($1:1)-1))*3+1,3)))
    • good
    • 0

 「89012」を3桁区切りにした際の2行目の「012」の様に、3桁区切りのデータの最初に「0」が来る場合には、数値データですと、「12」という具合に2桁になってしまって、紛らわしいため、文字列データで扱う事にします。


 今仮に、元の数値である計算結果の数値データが、B1セルに存在するものとします。
 まず、A1セルに次の数式を入力して下さい。

=LEFT($B$1,MOD(LEN($B$1),3)+(MOD(LEN($B$1),3)=0)*3)

 次に、A2セルに次の数式を入力して下さい。

=MID($B$1,MOD(LEN($B$1),3)+((MOD(LEN($B$1),3)=0)+(ROWS($1:1)-1))*3+1,3)

 そして、A2セルをコピーして、A3以下に貼り付けて下さい。
 以上で準備は完了で、後はB1セルに合計値が表示されると、自動的に、その値がA列に3桁区切りで表示されます。
    • good
    • 0

C1に計算結果があるとして,A2以下に3桁ずつ表示する。


A2:
=MID("       "&C$1,LEN("       "&C$1)-14,3)
A3:
=MID("       "&C$1,LEN("       "&C$1)-11,3)
A4:
=MID("       "&C$1,LEN("       "&C$1)-8,3)
A5
=MID("       "&C$1,LEN("       "&C$1)-5,3)
A6:
=MID("       "&C$1,LEN("       "&C$1)-2,3)
EXCELで普通に表示できる最大桁数15桁(通貨)に対応するため,"       "は15個の半角スペースです。

ROW()を使えば,1つの式(下記)でいいが。

A2:
=MID("       "&C$1,LEN("       "&C$1)-20+ROW()*3,3)

として,下にフィルすればよい。どこにこの数式を入れるかによって,20+ROW()*3の部分は変わってくる。

なお,以上いずれも文字列として表示しているので,数値として表示したいのであれば,
=VALUE(MID("       "&C$1,LEN("       "&C$1)-20+ROW()*3,3))
などとすれば数値になるが,"012"などが"12"になってしまう。これをどうするのかはそちらの仕様だね。
    • good
    • 0

No.1・2です!


ほんとぉ~!っに!何度もごめんなさい。

前回の数式だと、仮にA1セルの値が「12000000」のように下3桁が「000」になる場合は
「000」が表示されずに空白になってしまいます。

もう一度No.2のA3セルの数式を変更してください。

A3セルは
=IF(A$1="","",IF(AND(A2="",MOD(INT(A$1/(10^(3*(4-ROW(A1))))),1000)=0),"",IF(A2="",MOD(INT(A$1/(10^(3*(4-ROW(A1))))),1000),TEXT(MOD(INT(A$1/(10^(3*(4-ROW(A1))))),1000),"000"))))

として、A6セルまでオートフィルでコピーです。

これで大丈夫だと思います。
何度も失礼しました。m(__)m
    • good
    • 0

No.1です!


たびたびごめんなさい。

前回は列方向に表示させる方法でした。
質問文をもう一度読み返してみると、行方向に表示させたいということでしたので、
もう一度数式を載せておきます。

A1セルにデータの数値があるとします。
前回同様、A2セルは空白にし、A3セルに数式を入れてください、

A3セルは
=IF(A$1="","",IF(MOD(INT(A$1/(10^(3*(4-ROW(A1))))),1000)=0,"",IF(A2="",MOD(INT(A$1/(10^(3*(4-ROW(A1))))),1000),TEXT(MOD(INT(A$1/(10^(3*(4-ROW(A1))))),1000),"000"))))

としてA6セルまでオートフィルでコピーしてみてください。
これで12桁の数値まで対応できると思います。

どうも何度もごめんなさいね。m(__)m
    • good
    • 0

こんばんは!


参考になるかどうか判りませんが・・・
とりあえず12桁の数値まで対応するようにしてみました。

仮に、百・十万・一億 の位に「0」がある場合は二桁表示になってしまいますので、
かなり強引な方法になります。

A2セルから縦にデータがあり、B列は空白にし、C列以降に表示させるようにしています。

C2セルに
=IF($A2="","",IF(MOD(INT($A2/(10^(3*(4-COLUMN(A2))))),1000)=0,"",IF(B2="",MOD(INT($A2/(10^(3*(4-COLUMN(A2))))),1000),TEXT(MOD(INT($A2/(10^(3*(4-COLUMN(A2))))),1000),"000"))))

という数式を入れ、列方向と行方向にオートフィルでコピーではどうでしょうか?

尚、セルによっては「左揃え」で表示されるかもしれませんので、最後に「右揃え」にしておいた方が見栄えとしては良いかもしれません。

この程度ですが、他に良い方法があれば読み流してくださいね。m(__)m
    • good
    • 0

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

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


おすすめ情報