• ベストアンサー

Excelで数字を列名に変換したい。

タイトルの通りで 1→A 2→B 3→C という風に簡単に変換できるような関数を紹介 していただけませんでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

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)

wakaranai_kun
質問者

お礼

ご回答をいただいたみなさん、どうもありがとうございました。 おかげさまで解決しました。 また、よろしくお願いいたします。

その他の回答 (4)

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.5

「Excelで数字を列名に変換したい」 については、私や他の回答者の方々が提案する方法のどれをとっても間違いはないと思います。 それよりも、「何のためにそうしたいのか」を教えてください。 目的を達成するためにはもっと簡単な手段があるかもしれません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

Zまでしかうまく行かない式になったりして そういうのは一発的なものは「無い」と言いいたい気持ちだが ーー =MID(ADDRESS(1,A1),2,FIND("$",ADDRESS(1,A1),2)-2) で出せるようだが。 これも式が長いが。 例 A1に86 式を入れたところに CH A1に119 で DO

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.3

はじめまして 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)
回答No.2

参照する(数字の入っている)セルをA10とすれば、CHR(A10+64)でA10の値に応じてA・・・Zとなります。 1~26以外の数字でも文字に対応してしまいますが、範囲外の数になるとエラーになりますので、エラーを回避する場合は、その前に範囲をチェックしてください。

関連するQ&A