1分SHAREツイートシェアはてブLINEPocketこんにちは、データサイエンティストのたぬ(@tanuhack)です!PythonでCSVやエクセル、スプレッドシートを操作するとき、『数値→アルファベット』や『アルファベット→数値』の変換を実現させたいときってありませんか?例:数値→アルファベット1→A、26→Z、27→AA、1000→ALL例:アルファベット→数値A→1、Z→26、AA→27、ALL→10001桁の相互変換であれば、Pythonの組み込み関数(ordとchr)とラムダ関数を使えば1行で実現出来ます。25しかし、このままだと2桁や3桁など複数の桁に対応できないので汎用性が低いです。そこで今回は、数値とアルファベットを何桁でも相互変換できる方法を紹介します。alpha2num(‘AA’)→27アルゴリズムアルファベットから数値の変換は26進数→10進数的な考え方を使います。1000と、Forループを使って算出します。num2alpha(27)→AAアルゴリズム数値からアルファベットの変換は10進数→26進数的な考え方を使います。『1000』という数値をアルファベットに変換させる場合、26のn乗で1000以下の最大のnを求める→『n+1』がアルファベットの桁数、n=2(26^2)*xで1000以下の最大のxを求める→x=1、つまり3桁目のアルファベットはA(26^1)*yで1000-(26^2)*1=324以下の最大のyを求める→y=12、つまり2桁目のアルファベットはL(26^0)*z=12→つまり3桁目のアルファベットはL、ゆえに1000はALLと、再帰を使って算出します。さいごに今回は、何桁でも相互変換可能な数値とアルファベット間のやりとりについて紹介しました。:Pythonこの記事を書いた人たぬ効率沼ブロガールーチンワークを自動化で瞬殺することに人生の楽しさを見つけた効率沼ブロガーです。本業は「データ分析」と「作業の効率化」を生業としているデータアナリスト。PythonとGASに人生救われました。当ブログは、おかげさまで月間12万PV。2020年までに30万PV目指して頑張ってます。