9/16/2017

Excel。数値を一つずつセルごとに表示するにはどうしたいいの?【Number】

Excel。数値を一つずつセルごとに表示するにはどうしたいいの?

<LEFT&RIGHT&COLUMN関数>

文字を一つずつセルごとに表示する方法をご紹介したところ、
その下に表示していた数値も同じようしても、
一つずつのセルに表示するのがうまくできないので、
教えてほしいということで、

今回は、文字ではなくて、
数値を一つずつセルごとに表示する方法をご紹介していきます。

前回は、【長宗我部元親】さんを使って、1行目を作ったわけですね。
D1の数式は、
=MID($A$1,COLUMN(A1),1)
でしたが、A1を123456789と変更してみましょう。

数値なのに、1行目は、文字と同じように、
左側から始まってしまっていますね。

3行目は、右側に詰まっていますよね。

前回のMID&COLUMN関数では、対応できないわけなんですね。

では、少しずつ、数式を作っていくことにしましょう。

今回は、右側に一の位が表示したいわけですね。
となると、文字列の一番右側の一文字をN列に表示したいわけです。

そこで、右側の文字を抽出できる、RIGHT関数を使うのと、
N列が一の位。M列が十の位。L列が百の位。とスライドさせる。

すなわち、オートフィルで数式をコピーすることも考慮すると、
COLUMN関数も使った方がいいでしょう。

では、N1に次のような数式を作ってみましょう。
=RIGHT($A$3,COLUMN())
結果は、当然ながらダメですよね。

この数式だと、COLUMN()はN列=14を使ってしまうので、
右側から14文字を抽出しちゃいます。

一文字だけほしいので、1にする必要があります。ということは、

15- COLUMN()と修正してみましょう。

一の位が表示できましたので、オートフィルで数式をコピーしてみましょう。

ありゃま。完成ではないんですね。

十の位を表示したいM列は、右側から2文字分を表示してしまっています。

89のうち、今度は、左側の1文字を抽出したいわけなので、
LEFT関数を使って、数式をアレンジしていきます。

=LEFT(RIGHT($A$3,15-COLUMN()),1)

ではオートフィルで数式をコピーしてみましょう。

アレレ。まだ完成じゃないんですね。

一桁ずつ表示できたと思ったら、
数値がない桁が空白になっていませんね。

これを解決しないといけませんね。

IF関数とか色々考えてしまいそうですが、
よく考えれば、左側から1文字抽出するようになっていますので、
最初に空白を追加した状態にしてあげるとよさそうですね。

数式を次のようにアレンジしていきます。
=LEFT(RIGHT(" "&$A$3,15-COLUMN()),1)

オートフィルで数式をコピーしてみましょう。

これで完成しましたね。
動きを確認してみましょう。
E列を使って動きを確認してみましょう。

RIGHT(" "&$A$3,15-COLUMN())の引数は、
15-5なので、右側から10文字を抽出した結果は、
” 123456789”と空白が先頭についています。

その左側の1文字なので、空白が抽出されます。

このように、数値の場合は、ちょっと複雑になりますが、
請求書などで使うこともあるかもしれませんね。