Excel。数値を右詰で1セル1桁で表示するには
<REPT+LEN関数とMID+SEQUENCE関数>
請求書や領収書などの金額を1セル1文字で入力されたものをつくりたい場合、どのようにしたら、手早く、1セル1文字で表示することができるのでしょうか。
次の表をご覧ください。
A1の値をB3:I3の1つずつのセルに1桁ずつ表示したいのですが、どのようにしたら、効率よく表示することができるのでしょうか。
このような場合、SEQUENCE関数をつかうことで解決します。
なお、SEQUENCE関数とは、指定した範囲の連続した数値を自動的に生成する関数です。
SEQUENCE関数にMID関数を組み合わせすことで対応できます。
では、B3に次の数式を設定します。
=MID(A1,SEQUENCE(1,8),1)
1セルに1文字ずつ入力することができました。
数式を確認してみましょう。
MID関数は、指定した文字列の中から、任意の位置から指定した文字数分だけ文字を抽出する関数です。
最初の引数は、文字列なので、A1を設定します。
2つ目の引数は、開始位置です。
開始位置に、SEQUENCE関数をつかいます。
SEQUENCE関数はあとで説明します。
3つ目の引数は、文字数。
1文字ずつなので、1を設定します。
2つ目の引数につかっていた、SEQUENCE関数を見ていきましょう。
SEQUENCE関数の最初の引数は、行です。1行で表示したいので、1と設定します。
2つ目の引数は、列です。
今回は、最大8桁までの数値に対応することにしたので、8と設定しました。
SEQUENCE関数は、スピル対応の関数なので、自動的に数式を拡張してくれます。
MID+SEQUENCE関数で対応することができたのですが、よくみると、左詰になっています。
一番右側に「円」と表示させているので、できたら、右詰にしたい。
A1の値を修正したものがB1にあります。
B1の数式は、
=REPT(" ",8-LEN(A1))&A1
A1は6桁しかありませんでした、8桁にすれば解決できますが、0をつけて00123456としても、0は表示されません。
よって、0を先頭の前につけても8桁にすることはできません。
そこで、空白と合体させることで対応することができるようになります。
何文字分の空白を追加すればいいかを判断したいので、REPT関数をつかって、空白文字を繰り返します。
数値が何桁なのかは、LEN関数をついかいます。
あとは、先ほど設定した
=MID(A1,SEQUENCE(1,8),1)を
=MID(B1,SEQUENCE(1,8),1)
と修正して完成です。


