概要
「文字数がバラバラだけど、一覧を“きれいな横並び”に見せたい」
「短い文字の右側をスペースで埋めて、表の見た目をそろえたい」
そんなときに使えるのが REPT(文字のくり返し)+LEN(文字数) の組み合わせです。
REPT は「指定した文字を、指定回数だけくり返す」関数なので、“必要なぶんだけ空白を量産してくっつける” ことができます。
ここでは、「合計文字数をそろえる → 足りない文字数ぶんスペースを REPT で作る → 右側や左側にくっつける」という流れで解説します。
REPT の基本と空白埋めの考え方
REPT 関数の基本形は次のとおりです。
=REPT(文字列, 回数)
指定した文字列を、指定回数だけくり返した文字列を返します。
例:
=REPT(" ", 5)
→ 半角スペース 5 個分の文字列(「 」)
=REPT("☆", 3)
→ 「☆☆☆」
この「スペースを必要な回数だけくり返す」という性質を使って、
「足りない文字数ぶんだけスペースを作って埋める」のが空白埋めの基本アイデアです。
右側に空白を足して“左詰め+空白埋め”にする
合計文字数を決めて右側をスペースで埋める
例えば、商品名を「合計 10 文字ぶんの幅」でそろえたい、というケースを考えます。
A2 に「りんご」、A3 に「バナナジュース」など、文字数の違う名前が入っているとします。
これを「左に文字・右側にスペース」で 10 文字幅にそろえたい場合、次のようにします。
=A2 & REPT(" ", 10-LEN(A2))
考え方はこうです。
LEN(A2)… A2 の文字数を求める10 - LEN(A2)… 「10 文字にするために、あと何文字足りないか」REPT(" ", 10-LEN(A2))… 足りないぶんだけスペースを作るA2 & (スペース)… 右側にスペースをくっつける
こうすると、
「りんご+スペース×(10−3)」
「バナナジュース+スペース×(10−6)」
のように、見た目の幅がそろった“左詰め文字列”が作れます。
左側に空白を足して“右詰め+空白埋め”にする
左をスペースで埋めて右側をそろえる
今度は逆に、「右端で文字をそろえたい」場合です。
例えば、数字や短いコードを、右側を揃えて表示したいとき。
A2 に「7」や「123」などが入っているとして、
これを「10 文字幅の中で右詰め」にしたい場合は、スペースを左側に付けます。
=REPT(" ", 10-LEN(A2)) & A2
動きはさきほどと同じで、
- 10 文字にするために足りない文字数を計算
- そのぶんだけスペースを REPT で作る
- 今度は「スペース & A2」で左側に足す
これで、見た目としては右寄せされたような文字列になります。
(実際のセルの「配置」は標準のままでも、文字列としての形が右詰めっぽく整います)
任意の“幅”をセルから指定して空白埋めをする
「どのくらいの幅にそろえるか」を別セルで管理したい場合、
目標の文字数をセル参照に置き換えるだけです。
B1 に「幅」として 12 を入れておき、
A2 の文字列をその 12 文字幅に右詰めしたいとします。
=REPT(" ", $B$1-LEN(A2)) & A2
これで、B1 の値を 10 → 12 → 15 と変えれば、
同じ式のまま「埋めるスペース数」が自動的に変わります。
幅を動的に変えたいときや、表の仕様を途中で変える可能性があるときに便利なパターンです。
空白埋め+他の文字の組み合わせ(余白+罫線っぽく)
空白だけでなく、最後に記号を足すと、ちょっとした“見出し風”にもできます。
例えば、A2 に見出し文字(「売上」など)が入り、
全体を 10 文字幅にして、右端に「|」を付けたい、とします。
=A2 & REPT(" ", 9-LEN(A2)) & "|"
ここでは、
- 左から A2(見出し)
- 右端の一本線「|」の手前までを 9 文字と決める
- 足りないぶんだけスペースを足す
- 最後に「|」を足す
という配置にしています。
「文字+空白埋め+記号」の流れを覚えておくと、簡易的な罫線やボックスのような見せ方がしやすくなります。
問題1
A2 に「りんご」という文字列が入っています(3文字とします)。
これを「合計 10 文字幅」にそろえ、右側をスペースで埋めて左詰めしたいです。
REPT と LEN を使った式を書いてください。
=A2 & REPT(" ",10-LEN(A2))
問題2
A2 に「123」という文字列が入っています。
これを「合計 8 文字幅」にそろえ、左側をスペースで埋めて右詰め表示(文字列として)にしたいです。
REPT と LEN を使った式を書いてください。
=REPT(" ",8-LEN(A2)) & A2
問題3
A2 に任意の文字列、B1 に「幅」として 12 が入っています。
A2 の内容を、B1 で指定した文字数ぶんの幅で右詰めになるよう、左側をスペースで埋めたいです。
B1 を参照する式を書いてください。
=REPT(" ",$B$1-LEN(A2)) & A2
問題4
A2 に見出し文字(例:「売上」)が入っています。
これを左側に配置し、スペースで埋めて「10 文字目」に縦棒「|」が来るようにしたいです。
つまり「売上+空白+|」で合計 10 文字にしたいときの式を書いてください。
(REPT・LEN を使ってください)
=A2 & REPT(" ",9-LEN(A2)) & "|"
問題5
A2 にコード(例:「A9」「X123」など文字数はばらばら)が入っています。
これを「右側をそろえる」目的で、合計 6 文字幅に右詰めしたいです。
左側をスペースで埋める式を書いてください。
=REPT(" ",6-LEN(A2)) & A2
空白埋めの“型”は、たったこれだけです。
=文字列 & REPT(" ", 目標幅 - LEN(文字列)) ' 右側を埋める(左詰め)
=REPT(" ", 目標幅 - LEN(文字列)) & 文字列 ' 左側を埋める(右詰め)
REPT で「足りないぶんだけスペースを量産してくっつける」という感覚さえつかめば、
幅そろえ・簡易レイアウト調整・見出しの整形などが一気にやりやすくなります。
