Excelで数字を1つずつ別々に分けるには?どんな関数でできる?

excelで請求書などの書類を作成する際、
金額などの数値を1ケタずつセルに配置しなければいけないことってありませんか?

先日、請求書のフォーマットをExcelで作成することになり、
いろいろ調べてみたので、備忘録的に残しておこうと思います。

同じことで悩んでいる人がいたら、ぜひ参考にしてみてくださいね。

 複数桁の数字を1桁ずつセルに分ける方法

上の図のようなフォーマットのExcelに、金額を入力していこうとすると、
1つ数字を入力したら横のセルに移動して、また1桁入力する
というように一文字ずつ入れていかないといけないですよね。

めんどくさい。。。

たまにしかやらないとか、入力するのが1行とか2行しかないという場合は、
コツコツそれで入力していってもいいかもしれませんよね。

めんどくさいのは間違いないけど。。。

でも、時間のムダな感じはどうしてもありますよね~。

せっかくExcelには関数という効率的にできる方法があるんだから、
使った方が絶対にラクだと思うわけです。

最初はちょっと面倒ですが、次からは楽になると考えて、
最初だけ頑張ってやってみると良いと思います。

関数を使えば、例えば1つのセルの中に「123456」と普通に入力するだけで、

こんなふうに表示することができますよー♪

ではここから、Excelで金額など複数桁の数字を、1つずつセルにばらす方法
説明していきたいと思います。

今回は、「請求書」を例にしていきます。

まずは、Excelの空いているところに、1文字ずつに分割したい数字をそのまま入力します。

次は、この「123456」を位に分けて1つずつにする作業となります。

「123456」と金額などの数字を入力した場所の近くでいいので、
1の位、10の位、100の位、1000の位…と必要な分だけ「ケタ」を入力します。

ここまで準備できたら、いよいよ関数を使っていきます。

セルを分かりやすくするため、
説明に必要ないフォーマット部分はいったん消しますね。

最初は「INT」という関数を使います。

1の部分に「=INT(L2/S1)」と入力します。

まず、『L2/S1』の計算式で、
L2のセルに入っている「123456」をS1のセル「1」で割っています。

そしてその計算式に、INTを付け加えると、
計算結果に小数点以下があった場合も切り捨てて整数に直してくれるんです。

で、今回の答えが「123456」となります。

ん~、1で割っているので若干分かりづらいですね^_^;

10の部分で再度見てみましょう。

10のところにも、同じように「=INT(L2/R1)」と入れてみます。

答えが「12345」となりました。

L2/R1、つまり123456÷10=12345.6となり、
それをINT関数が切り捨てて整数に直しているので、「12345」となります。

同じように、100、1000、10000…に関数を入れていきましょう。

このようになりましたでしょうか?

スポンサーリンク

では、次は請求書内の金額欄にあるセルに、1桁ずつ値が入るようにしていきます。

ここでは、「IF」「Right」の2つの関数を使っていきます。

金額の1桁目(1の位の値)を表示したいセルに、「=IF(S2=0,””,RIGHT(S2,1))」を入れます。

これで、「6」が入りましたね。

S2にある「123456」の、左(Right)から1桁を表示するという関数になります。

IF文が追加されているのは、後ほど説明しますね。

同じように、10の位、100の位…と関数を入れていきましょう。

この図のように出来上がりましたか?

おめでとうございます♪

ではなぜIF文が使われているのかを説明しておきますね。

例では「123456」でしたが、これが「9876」だった場合、
IF文なしで「=Right(・・・)」関数だけで作っていたとしたら、

このように、「0(ゼロ)」が入ってしまうんですね(>_<)

なので、「IF」を使って、「もし0だったら何もしない」という条件を
Right関数に付け加えているんです。

何となくお分かりいただけました??

あとは、この関数を下にバァーッとコピーしたら完成です!

え?できてない??

もしかしたらコピーしたときに、
関数の中のセルが1個ずつずれるからかもしれません。

たぶんこんな感じ?

セルの列や行を数式の中で固定させたい時には、

固定させたい部分の前に「$」を付けると固定できます。

どういうことかというと、

本当は、ずっと「O1」を使った数式でいて欲しいのに、
コピーしたことで計算式に使われるセルが1つずつ下にずれてしまっていますね。

このズレが起きないようにするのが「$」の役目!

この場合だと、「=INT(M3/$O$2)」としておけば、
Oと2が固定され、関数を横や縦にコピーしてもズレなくなります。

固定させたら、また下へバァーッとコピーしちゃいましょう。

これで完成したのではないでしょうか♪

お疲れ様でした(^^)

 複数桁の数字を1桁ずつにばらす まとめ

こういった作業って、
やりだすまではとっても面倒な気がするし難しそうだなと思っちゃいますが、
たった一度、ほんの少し頑張ってみるだけで、次からはグッと楽になることっていっぱいありますよね。

こうしたいけど、どうやってやるんだろう?

これできたら楽なのにな~という方のお役に立てたら嬉しいです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする