- ベストアンサー
Excelで数字を列名に変換したい。
タイトルの通りで 1→A 2→B 3→C という風に簡単に変換できるような関数を紹介 していただけませんでしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
A-Zまでで良いならCHAR関数で =CHAR(64+A1) → A AA以降も変換ならADDRESS関数で =ADDRESS(1,A1,4) → A1 Aのみにしたい場合は =LEFT(ADDRESS(1,A1,4),LEN(ADDRESS(1,A1,4))-1)
その他の回答 (4)
- rukuku
- ベストアンサー率42% (401/933)
「Excelで数字を列名に変換したい」 については、私や他の回答者の方々が提案する方法のどれをとっても間違いはないと思います。 それよりも、「何のためにそうしたいのか」を教えてください。 目的を達成するためにはもっと簡単な手段があるかもしれません。
- imogasi
- ベストアンサー率27% (4737/17069)
Zまでしかうまく行かない式になったりして そういうのは一発的なものは「無い」と言いいたい気持ちだが ーー =MID(ADDRESS(1,A1),2,FIND("$",ADDRESS(1,A1),2)-2) で出せるようだが。 これも式が長いが。 例 A1に86 式を入れたところに CH A1に119 で DO
- rukuku
- ベストアンサー率42% (401/933)
はじめまして 1~26については、mshr1962さんやfujillinさんの回答にあるように、 =CHAR(64+A1) が一番手っ取り早いと思います。(A1~A26には1~26が入っているとします) A→65 B→66 C→67 D→68 E→69 … と、各文字に番号が付いていることを利用しています。 27~256についての別解です。 10進数を「0がない26進数」に変換するという、原始的な方法ですが、“簡単に”とは言えないような無理が生じています。 =SUBSTITUTE(CHAR(INT((A1-1)/26)+64),"@"," ")&CHAR(MOD(A1-1,26)+65) でも、この数式をコピーしたらそのまま使えますので“簡単”ではあります。 mshr1962さんのアイディアの応用で、 =SUBSTITUTE(ADDRESS(1,A1,4),"1","") もあります。最後に付く“1”を落とす方法の違いです。 mshr1962さんは最後の1字を落としました。 私の場合は、最後に付くのは“1”と分かっていますから“”(空の目次列)に置き換える方法をとりました。
- fujillin
- ベストアンサー率61% (1594/2576)
参照する(数字の入っている)セルをA10とすれば、CHR(A10+64)でA10の値に応じてA・・・Zとなります。 1~26以外の数字でも文字に対応してしまいますが、範囲外の数になるとエラーになりますので、エラーを回避する場合は、その前に範囲をチェックしてください。
お礼
ご回答をいただいたみなさん、どうもありがとうございました。 おかげさまで解決しました。 また、よろしくお願いいたします。