㉑以降は文字コードが飛ぶ
エクセルによる丸数字の連番は、他サイトを拝見しても⑳までの記事が多いです。
なぜなら⑳以降はUNICODE番号が連番ではなくなるからです。
そこで、㉑以降を連番で表示させるためには「IFS関数」で条件分岐をする必要があります。
「⑳」のUNICODE番号が「9331」に対し、「㉑」のUNICODE番号が「12881」となっています。ですから1つ上のセルのUNICODE番号が「9331」のときはその差である「3550」をプラスする必要があります。
具体的には、数式は下記のようになります。
「=UNICHAR(IFS(UNICODE(A20)=9331,UNICODE(A20)+3550,TRUE,UNICODE(A20)+1))」
1つ上のセルのUNICODE番号が「9331」のときだけは「+3550」で、それ以外のときは「+1」で丸数字の連番が可能になります。
㊱以降もまたUNICODE番号が飛ぶ
次の関門は㊱以降です。また㊱からUNICODE番号が飛びます。
㉟のUNICODE番号が「12895」で、㊱のUNICODE番号が「12977」ですので、1つ上のセルの文字㉟が「12895」のときは」IFS関数」で「+82」としています。下記がその数式です。
=UNICHAR(IFS(UNICODE(A35)=9331,UNICODE(A35)+3550,UNICODE(A35)=12895,UNICODE(A35)+82,TRUE,UNICODE(A35)+1))
ですから、A2セルに「=UNICHAR(IFS(UNICODE(A1)=9331,UNICODE(A1)+3550,UNICODE(A1)=12895,UNICODE(A1)+82,TRUE,UNICODE(A1)+1))」と入力してドラッグすると、①~㊿までの連番がエクセルで表示することができます。
以下のように①から㊿までの丸数字での連番入力の完成です。
ただ、このままではあまり実用的ではありません。
後日、VBAでMy関数(ユーザー定義関数)の作成方法をご紹介します。エクセルに標準では搭載されてない関数を自分で作成することによってエクセルの可能性は無限大に広がります。
こちらの記事で、ユーザー関数による①~㊿まで連続で入力する方法を紹介しています。
コメント
コメント一覧 (7件)
すみません、先程の通りすがりです。
先程のコメントは削除願います。欠陥が見つかりました。
通りすがり様
コメントありがとうございます。
承認する前でよかったです。
またコメント、お待ちしております。
長いですが、下記であれば一つ上の行に「空白を含む、丸数字以外ではないものがある」場合に機能してくれました。
ご参考までに。
IF(AND(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0)””,OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0)0),
IF(OR(
AND(9312<=UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1)),
UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))<=9331),
AND(12881<=UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1)),
UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))<=12895),
AND(12977<=UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1)),
UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))<=12990)
),
UNICHAR(UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))+1),UNICHAR(9312)),
"")
通りすがり様
コメントありがとうございます。
ただ今、お盆休み中にて動作確認できませんが、お盆明けに動作確認いたします。
ご指摘誠にありがとうございます。
ご対応有難うございます。
下記であれば、『丸番号以外(空白含む)』が居ても機能すると確認出来ました。
ご参考までに。
もしも欠陥があっても、御愛嬌とさせて頂ければ幸いです。
IF(AND(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0)””,OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0)0),
IF(OR(
AND(9312<=UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1)),
UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))<=9331),
AND(12881<=UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1)),
UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))<=12895),
AND(12977<=UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1)),
UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))<=12990)
),
UNICHAR(UNICODE(RIGHT(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0),1))+1),UNICHAR(9312)),
"")
IF(AND(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0)””,
『0)<>””』
の、半角記号で。
OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0)0), も同様に
『0)<>0』
にてよろしくお願い致します。
通りすがり様
追加のコメントありがとうございます!
ぜひ試させていただきます。
今後ともよろしくお願い致します。