意外とできない。数字でなくアルファベットをオートフィルしたい。【EXCEL小ネタ】

数字ではなく、アルファベットをオートフィルしたいシーンって、エクセルやスプレッドシートを触っているとちょこちょこありますよね。

例えば、Sheet1にこんなデータがあったとして、、

この見出しを縦軸にしてsheet2にこんな風に集計したいとします。

この時、エクセルだとコピーして貼り付けるときに縦横取り換えて貼り付けなんてできるので、問題にはならないのですが、スプレッドシートだとそれができないので手打ちをするしかありません。

=sheet1!D1 として(東京都のセルがD1)、それをオートフィルで下にやってみても、

=sheet1!E1 , =sheet1!,F1 となってもらいたいのですが、実際には

=sheet1!D2 , =sheet1!D3 となってしまってうまくいかないんですね。

 

こんなときに、きちんとアルファベットだけひとつずつ増えていくようにできる方法がありますので、ご紹介しようと思います。

 

CHAR + CODE 関数で変換して組み合わせる

やり方を一言でいうと、

文字列を分解して、アルファベット箇所をCHAR+CODE関数で増やしたのち、くっつける

ということになります。

ではやってみましょう。

東京都 = sheet1!D1

神奈川県 = sheet1!E1

埼玉県 = sheet1!F1

というようになっていますので、はじまりをsheet1!D1として、まずはこの参照文字列を分解します。sheet1! + D + 1と分解しましょう。

やりたいことは、↑でいうE列をD,E,F,G,,,と増やしていって、G列でDEF列をくっつけることです。

では、アルファベットをどうやって加算するかですが、

=CHAR(CODE(E1)+1)

とE2セルに打って、それを下にオートフィルすることで実現できます。

CODE関数で対象のアルファベットの文字コード(数字)に変換したのち、それに1を加えて、CHAR関数で文字コードをアルファベットに戻しています。

このようにアルファベットを加算してくことができました。G列は=D1&E1&F1とくっつけています。

ただ、現在のG列の文字列では参照してくれず、先頭に=を付ける必要があります。

それはテキストエディタで置換を使ってやると簡単です。

先頭の文字に=をくっつけて置換してやれば一瞬で終わります。

 

そうしてできた文字列を任意の箇所に張り付ければ、目的は達成です。

 

おわり