いまさら聞けないExcelの使い方講座

【Excel】①、②、③……など丸数字の連番はオートフィル不能? 不可能を可能にする技

「①」「②」と入力してオートフィルしても連番にならない!?

オートフィルが効かない連番はどうする?

 エクセルの表を作成する際、左端の列に1,2,3……と連番を振ることがよくありますよね。最初に「1」「2」と入力してオートフィルで一気に入力することが多いでしょう。

 では、①、②、③……と振りたいときはどうしますか? 数字の連番と同じ要領でオートフィルで入力しようとすると……

A列に①、②、③……と連番を振りたいとします。数字の連番と同じように「①」「②」と入力して、オートフィルしてみます(①)
「①」と「②」が繰り返しコピーされてしまいました(②)

 [Ctrl]キーを押しながらドラッグしてもNGです。似たような例として、ローマ数字(Ⅰ, Ⅱ, Ⅲ……)の連番もオートフィルが効きません。

 このような連番を振る機会が少なければ、仕方なく直接入力するしかないでしょう。よく利用する人は[ユーザー設定リスト]に登録しているかもしれませんね。今回は、丸数字とローマ数字の連番を振る簡単なテクニックを紹介します。

特殊な連番は[ユーザー設定リスト]に登録しておくこともできます

丸数字の連番には、UNICHAR関数とUNICODE関数の組み合わせを使う

 UNICHAR関数とUNICODE関数を組み合わせると、丸数字の連番を振ることができます。UNICHAR関数は、番号(コード)から文字に変換する関数、UNICODE関数は、文字から番号(コード)に変換する関数です。セットで覚えておくといいでしょう。

 似たような関数として、CHAR関数とCODE関数がありますが、全角文字に対応していないので、丸数字やローマ数字の変換には、Unicodeに対応するUNICHAR関数とUNICODE関数の組み合わせが適しています。それぞれの具体的な動作を見てみましょう。

A列には「①、②、③」と入力してあります。セルB1に「=UNICODE(A1)」と入力すると結果は「9312」です
UNICODE関数の数式をコピーすると「9313」「9314」と、1ずつ増加していることがわかります

 「①」と入力してあるセルA1を参照するように、セルB1に「=UNICODE(A1)」と入力すると結果は「9312」となります。つまり、「①」のコードは「9312」ということです。同様に「②」のコードは「9313」、「③」のコードは「9314」となります。これらのコードをUNICHAR関数で書き戻せば「①」「②」「③」となります。

セルC1に「=UNICHAR(B1)」と入力した結果が「①」です。セルC2,C3には数式をコピーしてあります

 コードが1ずつ増加していることから、「+1」すれば連番が作れそうですね。

セルA1に「①」と入力しておきます。セルA2に「=UNICHAR(UNICODE(A1)+1)」と入力します(③)
「+1」されて、「②」と入力できました(④)
オートフィルでコピーすると、丸数字の連番を生成できます(⑤)

 ただし、㉑~㉟と㊱~㊿はコードが飛びます。コードの対応は以下の通りです。㉑以降は環境によって文字化けする可能性があることに注意してください。

・㉑~㉟:12881~12895
・㊱~㊿:12977~12991

㉑~㉟のコードは、12881~12895、㊱~㊿のコードは12977~12991となります

ローマ数字はROMAN関数で入力可能

 ローマ数字は、ROMAN関数で簡単に入力できます。英字で「I」や「V」「X」を並べる必要はありません。新しいシートのセルA1に「=ROMAN(ROW())」と、ROW関数と組み合わせた数式を入力するだけです。なお「ROW()」は、数式の入力されたセルの行番号を返します。セルA1なら1行目なので「1」を意味します。

セルA1に「=ROMAN(ROW())」と入力して(⑥)、オートフィルでコピーした結果です。すべてのセルの数式は同じですが、「ROW()」の結果が変わるので、それぞれの数字が表示されます

 なお、小文字にしたい場合は、LOWER関数を組み合わせます。

セルB1に「=LOWER(ROMAN(ROW()))」と入力して(⑦)、オートフィルでコピーした結果です

 丸数字やローマ数字など、オートフィルでは対応できない連番も、関数で簡単に生成できます。生成した連番をコピーして、他のアプリで活用するのもいいですね。