• ベストアンサー

あるセルに入れた数字を別のセルに一桁ずつ表示する方法は?(Excel2000)

皆さまのお知恵を貸していただきたく、質問いたします。 使用ソフトはExcel2000です。 以下のようなことを自動的にできるような方法(関数等を使って)はありますでしょうか?? 《例》 (1)A1に「153962」と数字を入れると・・・ (2)A4に「1」、B4に「5」、C4に「3」、D4に「9」  E4に「6」、F4に「2」  と、自動的に表示されるようにする。  なにか良い方法がありましたら、教えて下さい。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • april21
  • ベストアンサー率42% (91/216)
回答No.12

■補足 参照させるのが不便なら↓のようにしてください。 C列からJ列のセルを使いたいのであればCOLUMN()の所をCOLUMN()-2とします。 =IF(MID(REPT(" ",8-LEN($A$1))&$A$1,COLUMN()-2,1)=" ","",VALUE(MID(REPT(" ",8-LEN($A$1))&$A$1,COLUMN()-2,1))) E列からならCOLUMN()-4 (Eは5列目だから-4で1にしてる)

pinoko19
質問者

お礼

Aprilさん!お仕事でお忙しい、とのことでしたのに、何度も書き込んで頂いて本当に本当にありがとうございます。No.10~12のお礼を言わせてください。 早速書き込んでいただいた内容をコピーしてセルに貼り付け、実践してみました。ちゃんとできてただいま感激しています~w(゜o゜)w!! 使う側のことを考えてくださって、いろいろなパターンを提示していただき、本当にありがたく思っています。m(_ _)m しっかりと仕事に生かしたいと思います。言葉尽くせませんが、本当に有り難うございました!!

その他の回答 (11)

  • april21
  • ベストアンサー率42% (91/216)
回答No.11

■前回のだと分かり図らかったと思うので補足しておきます。 AからJ列(10桁の場合)に↓の数式をコピーして貼り付けてください。(COLUMN()を使ってるので) =IF(MID(REPT(" ",10-LEN($A$1))&$A$1,COLUMN(),1)=" ","",VALUE(MID(REPT(" ",10-LEN($A$1))&$A$1,COLUMN(),1))) 10の部分が2ヶ所あります。 8桁にしたければ10を8に変更して数式を入力するセルもA~Hまで。 A~Hの列ではなく別のセルに表示させたい場合はこれらのセルを参照させれば 良いと思います。(入力が楽ですから) 他の方法だとVBAを使うのも良いと思いますが・・・。

  • april21
  • ベストアンサー率42% (91/216)
回答No.10

>例えば銀行で書かされる伝票の金額の覧には右から「1」「十」「百」「千」・・・という感じでマス目が切ってありますよね?あんな感じで、数値を取り出したかったのです。 =IF(MID(REPT(" ",10-LEN($A$1))&$A$1,COLUMN(),1)=" ","",VALUE(MID(REPT(" ",10-LEN($A$1))&$A$1,COLUMN(),1))) ↑は10桁の場合10のところ変えてください。 前回説明したので省きます。 仕事中で忙しいので分かり図らければ補足を要求してください。 夜でないと答えられないけど。^_^;

noname#598
noname#598
回答No.9

ごめんなさい、No.8は、 前回と同じく、B1のセルに入れるものとします。 説明不足だったので補足します。 最大桁が6桁で、かつA4のセルに桁の先頭をおきたいのであれば、 7-COLUMN() ではなくて、 6-COLUMN() です。先頭列を左に動かすと1減り、右に動かすと1増えます。

pinoko19
質問者

お礼

No.8およびNo.9のお礼を。。。 何度もご回答いただき、本当にありがとうございます。お陰様で、不必要な0は表示されなくなり、「100」などの数字はきちんと表示できるようになりました。 これはちょっとした感動です!友達にも教えてあげようと思っています(笑)。 最初の質問の仕方がイマイチだったために、いろいろお手数をおかけしてしまいましたが、こんな私にあきれずに丁寧に教えていただいて、ありがとうございました!言葉尽くせませんが、本当に感謝していますm(._.)m。

noname#598
noname#598
回答No.8

言われてみれば確かに、100だと下が切れてしまいますね(笑) =IF($A1>10^(7-COLUMN()),MOD(INT($A1/10^(7-COLUMN())),10),"") これならどうでしょう?やってみてください。 確認済みです。きっとこれが正解だと思います。 ちなみに最大桁が8桁の場合は7-COLUMN() となっているところを9-COLUMN()  に直してやってみてください(最大桁に1を加える) 自動車のナンバーが3桁になったときや、 携帯電話が11桁になったときに社会問題(?)になったのを 思い出しました。最大桁を増やすのって、大変なんですね(笑)

  • comv
  • ベストアンサー率52% (322/612)
回答No.7

成る程・・・やっとご質問の最終形らしきものが解って来ました。 (1)数値を1セル1桁で取り出す。 (2)右寄せ(桁合わせ) (3)無い桁は空白 これでよろしいでしょうか? 数値の分解数式は、今までの皆さんのどれを使っても可能 なので、チョット違う観点(表示)に拘って 例)見易くするために入力欄(A列)と出力欄を同行にしてます   A  B   C   D   E ・・  K   L 1 入力欄  =10^9 =10^8 =10^7 ・・=10^1 =10^0 ←表示形式 [DBNum3]G/標準 2(数値)  =IF(LEN($A2)>LOG10(C$1),MID($A2,LEN($A2)-LOG10(C$1),1),"") 3(数値) (上記数式を複写) ・今回は10億までの桁です ・桁の記入例は、解り易くするため乗数にしましたが、当然 1 10 100 1000 等  (L列~)を入力してもOKです。 ・表示形式 [DBNum3]G/標準 書式設定 → 表示 → ユーザー定義 で記入して下さい。  [DBNum2]G/標準 や [DBNum1]G/標準 もお好みに応じて変えてみて下さい。 ・数式はセルC2に入力後、L列まで複写 及び 必要入力行数分 下行へ複写 こんな感じでしょうか?

pinoko19
質問者

お礼

再度お答えいただいて、本当にありがとうございます(^-^)。 表示形式の [DBNum3]G/標準 というのは初めて知りました(不勉強なもので・・・(汗)。) 漢数字になったり、壱とか弐とかって表示できるんですね~~!素直にびっくりです(←あきれないで下さいね~~)。すごいすごい!! なんだか、まったく別の角度から切り込んでいただいたりして、楽しく拝見いたしました。ありがとうございました!

  • yuhki_f
  • ベストアンサー率32% (32/99)
回答No.6

A1に入力されている「153962」は、つぎのようにして一桁ずつの数値に変換できます。 MOD(153962,10)=2 Int(mod(153962,100)/10)=6 Int(mod(153962,1000)/100)=9 Int(mod(153962,10000)/1000)=3 Int(mod(153962,100000)/10000)=5 Int(mod(153962,1000000)/1000000)=1 一般化するために、一番目の式を次のように書き換えます。 Int(mod(A1,10)/1) つぎに10,100,1000などを一般式で得る方法を考えます。 10^0=1 10^1=10 10^2=100 ですからcell関数で列数を取り出すと、べき乗の計算がうまく作れます。これを組み合わせてA4に次のように入力して、右方向にコピーすると各桁の数値を 取り出すことができます。 =INT(MOD($A$1,10^(CELL("col",A1)))/10^(CELL("col",A1)-1)) こうすると、次のように数値が表示されます。 A4  2 B4  6 C4  9 D4  3 E4  5 F4  1 pinoko19さんの質問とは逆のならびになってしまいますが、何とか一桁ずつ取り出すことはできます。

pinoko19
質問者

お礼

ご回答、ありがとうございます。 逆の並びで取り出す方法もあるのですね~~!!!ビックリです。 べき乗を使うのですね。数学が苦手だったので(汗)、あんまり難しい式になってくるとなんだかドキドキしてしまいますが(笑)。 勉強になりました。本当にありがとうございました!!

noname#598
noname#598
回答No.5

ほとんど回答済みのようですが、 下の例はあくまで、A1とA4(つまり入力側と出力側の左端の列は同じ)の場合限定です。これだと、複数の数値を同時に扱いたいときには不便だと思うので、 さらに補足させてください。 本当は真横のB1セルからはじめたいという場合は =MID($A1,COLUMN()-1,1) いやいや、C1セルからはじめたいんだってときは、 =MID($A1,COLUMN()-2,1) ←離れた分引く数が大きくなることに注意 です。数値に直したい場合は更にvalue()で括ることは先人の方々のとおりです。 ただ、この方法では、数字は全て左端から始まるので、 一の位を揃えたい(右揃え)というときには適しているとはいえません。 その場合の対処法も書いておきます。 これは複数の数値の最大桁が6桁の場合、ということでよろしくお願いします。 値の結果は数値です。(valueを使う必要はない) B1 =mod(int($a1/10^(7-column())),10) あとはこれを横にコピーすればOKです。(確認済) 6桁なので、「7-」があります。 このままの設定でA1に1234(4桁)を入力すると順に001234となりますが、0表示をオフにしておけば問題ないでしょう。

pinoko19
質問者

お礼

ご回答、ありがとうございます。 なんとかできないものか、と思っていたことに、色々な方法があることを知ることができ、嬉しい限りです(^-^)。 masuo_kunさんの回答は、私の求めている内容に一番近いような気がします。 実は、私の質問の仕方が悪くて、以下のようなことが抜けていました。。。 (1)例としてあげた数値は6桁でしたが、実際には桁数が増えることも減ることもあります。 (2)例えば銀行で書かされる伝票の金額の覧には右から「1」「十」「百」「千」・・・という感じでマス目が切ってありますよね?あんな感じで、数値を取り出したかったのです。 (数値を一桁ずつセルに入れていくのは煩雑なので、一つのセルにある金額を入れるとそれを一桁ずつ別のセルに反映できるようにし、業務を効率化したいと思ったのです。) というわけで、masuo_kunさんのおっしゃるように右揃えにしたかったのです。 私が質問に含めなかった内容にまで掘り下げて回答してくださったこと、感謝しています。早速やってみましたところ、うまくいきました!! そこで、ここでさらに質問をするのはずうずうしいかも・・・と思いつつ、質問させてください。(スミマセン・・・。) 「このままの設定でA1に1234(4桁)を入力すると順に001234となりますが、0表示をオフにしておけば問題ないでしょう。」 と、あるのですが例えば「100」という数値を入れたい場合はどうしたらいいのでしょうか? (ためしにやってみたのですが、0表示をオフにしてしまったら、1の位と十の位の0も表示されなくなってしまいます。) わがまま言ってしまって、申し訳ございません。もし方法として無理ならかまわないのですが、なにか手があれば教えてください。よろしくお願いいたします。

  • comv
  • ベストアンサー率52% (322/612)
回答No.4

こんにちは セルA4に  =MID($A1,COLUMN(),1) あとは最大必要桁数分だけ横(B4~)に複写 既に皆さんが提言済みですが  文字型でよいのであれば このまま  数値型で扱たいのであれば  =VALUE(MID($A1,COLUMN(),1))  となりますね。

pinoko19
質問者

お礼

ご回答、ありがとうございます。 この式はAprilさんの方法に近いのでしょうか。A1を絶対参照ではなく列のみ固定して、横に複写できるようにしていただいているのですね。ナルホド~。 確かに、必要な桁数分、コピーできるのは非常に便利です!! ありがとうございました。

  • april21
  • ベストアンサー率42% (91/216)
回答No.3

補足 VALUE(MID(元のセル,何番目から,何個)) 「何番目から」は元となる数字の左から何番目という事です。 「何個」は例だと1ですね。 数値に直さなくてもいい場合はVALUE( )は不要です。

pinoko19
質問者

お礼

No.2、および、こちらの補足のご回答、ありがとうございます。 No.1の方に教えていただいたのとはまた違う方法なのですね。きっと、エクセルに詳しい方にとっては、このようなこと一つ取っても、色々なやり方があるのでしょうね。 早速Aprilさんの方法も試してみます。 本当に、ありがとうございました!

  • april21
  • ベストアンサー率42% (91/216)
回答No.2

下記の数式をA4~はF4に =VALUE(MID($A$1,COLUMN(),1)) VALUE(MID(元のセル,何番目から,何個)) 1~6を入力が楽なのでCOLUMN()で列数を求めてますが (A4なら1、B4なら2・・・が求められるので。) COLUMN()の所を1~6というように数字で指定して構いません。 (表示させたいセルの列が連続してないとCOLUMN()使っても仕方ないので(^^ゞ)

関連するQ&A

  • 123,156,789.012345を3けたずつにわけて、違うセルに飛ばす関数を教えてください。

    A1のセルに123,456,789.012345という数字があります。 これをB1のセルに123、C1には456。D1には789、E1には少数点以下の012。さらにF1には345を表示する関数を教えてください。 6桁までならRIGHT・LEFTの関数でなんとかなったんですが、手に負えなくなってしまいました。(笑 関数がまだよく分かりません。説明がまずいかもしれませんが宜しくお願いします。

  • 数字を分解してその和を別のセルに表示する方法

    数字を分解してその数字の和を求めようとしましたが,RIHGTやMIDなどでいろいろやってみましたが,出来ませんでした。誰か判る方宜しくお願い致します。 例えば,A1~D1の数字の分解後の数字の合計はE1~H1 となる様にする。 A1,B1,C1,D1 → E1,F1,G1,H1 71,121, 35, 85 → 8,4,8,4 ここで,D1セルは 2回分解をする。(8+5=13→1+3=4)

  • 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関数でいろいろ試しましたがうまくいきません。 何かよい方法はありませんか?

  • エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ、「右詰」で移したい

    以前に エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ移したい、ということで質問しまして、「MID関数を利用する」事で、先頭文字から一文字ずつ別々なセルに移すことが出来ましたが、スミマセンが次のような場合はどのような関数になるのでしょうか? 例えば「番地などの表示」等で1桁の場合もあれば、5桁あるいは6桁等々の場合もあるとします。これを別なセルに下一桁を合せる様にしたいのです。 例としまして セルA1に1桁~6桁の数字(例:345678)を入力した場合、これを右側のB1には3を、同様にC1には4を、D1=5、E1=6、F1=7、G1=8を関数で入力できるようにしたい。 問題は、桁数が毎回違う場合にG1に下一桁が来るようにしたいのですがRIGHT関数では下一桁だけ応答されるのは上手くいくのですが、下二桁、三桁以上の場合には上手くいきません。 つまり「A1に789」の数字を入力したら、G1=9が、F1=8が、E1=7が応答されるようにしたいのです。 勿論、5桁の場合にはB1が空欄で、C1、D1、E1、F1、G1が埋まる様に、4桁であればB1とC1が空欄で、D1~G1が埋まるように、三桁の場合にはB1~D1が空欄でE1~G1が埋まるようにですが、出来ますでしょうか?? よろしくご教授お願いします。

  • エクセルで、計算で表示された数字を別のセルに入力したい

    よろしくお願いします。 エクセルで、以下のような表を作りました。 Dのセルには計算式が入っています。 【表1】   A B C D   1 2 3 1(計算式C2-C1にて)   2 3 4 1(計算式C3-C2にて)   3 4 5 -5(計算式C4-C3にて)  この表を、Aの行の数値をもとに降順でソートをかけると、  以下のようになり、Dの数値は、元のものと異なってしまいます。 【表2】   A B C D   3 4 5 -1(計算式にて)   2 3 4 -1(計算式にて)   1 2 3 -3(計算式にて)  計算ででた数字を、ソートした後にも表示させる良い方法は  ないでしょうか?  現在は、E行に、直接計算で出た数字を入力しているのですが、  数が多くて大変です(><)  お助けください!m(_ _)m

  • 個々のセルに入力した数字の合計を別のセルに一桁ずつ表示する方法

    こんばんは。いつも大変お世話になります。 なかなか良い関数の使い方が思いつかず、また皆様のお知恵を貸していただければと思い、質問させて頂きます。 E1に「3」、F1に「5」、G1に「7」 今日の売上値とする H1に「9」、I1に「7」、J1に「5」 昨日の売上値とする ※ G1,J1は百の位 F1,I1は千の位 E1,H1は万の位です この合計値をA1(万の位)、B1(千の位)、C1(百の位)にそれぞれ出したいのです。 この場合だとA1に「13」、B1に「3」、C1に「2」となります。 上記のような事をしたいのですが、可能でしょうか? 申し訳ありませんが、何とぞよろしくお願いします。

  • 別のシートにデータを出す方法

    シート1に 番号 A1に1 A2に2 A3に3 A4に4 データ↓ B1に43 B2に45 B3に47 B4に55 C1に733 C2に890 C3に826 C4に94 D1に57 D2に67 D3に41 D4に52 E1に301 E2に104 E3に719 E4に441 という表があるとします。 番号1の場合は、B1の43、C1の733、D1に57、E1に301というデータです。 シート2の、 A3に、1という数字(シート1のA1の、1という番号)をいれれば、 シート2の B3に、シート1の、B1の43というデータ。 C3に、シート1の、C1の733というデータ。 D3に、シート1の、D1の57というデータ。 E3に、シート1の、E1の301というデータ。 がでるようにしたいのですが、 VLOOKUPを使ってできますか? どのような関数の立て方したらいいでしょう? XPのExcel2003です。 よろしくお願いしますm(_ _)m

  • 複数桁の数字を1セルずつ表示したい

    エクセル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関数を使ってできるのですが、 桁数の異なる数字に置き換えると右に詰めるようにするにはどうしたらよいでしょうか。 更に、数字の左側に円マークも表示させたいです。 よろしくお願いします。

  • microsoft excel セルの色

    以下のことをしたいのですがどうすればよいでしょうか。 あるセル(例:F12)の数値が30(%)以下だと、そのセルの含む行の一部(例:A12,B12,C12,D12,E12,F12)が赤色になる。 あるセル(例:F12)の数値が70(%)以上だと、そのセルの含む行の一部(例:A12,B12,C12,D12,E12,F12)が青色になる。 教えてください。お願いします。

  • Excel:決まったセルから常にあるセルの最終行の引き算

    添付画像のA7~E7列に数値を入力していき、F列にB~Eの合計がSUM関数により表示されます。 必要に応じ、8行目以降にデータは累積していきます。 D4セルにC4からF列の常に最終行の引き算の数式を入れたいと思っています。 イメージは D4=C4-(F列の最終行)というものですが、具体的にどういう数式をD4セルに当てはめればよいでしょうか? 御教示宜しくお願い致します。

専門家に質問してみよう