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文字なので、空白が抽出されます。
このように、数値の場合は、ちょっと複雑になりますが、
請求書などで使うこともあるかもしれませんね。