Excelのアルファベット列を数字列に変更するには?

excelのアルファベット列を数字列に変更する簡単な方法はないでしょうか?
例えば、
Cを入力すると2とか
AAを入力すると26とかを
返すロジックです

こんにちは

excelのアルファベット列を数字列に変更する簡単な方法はないでしょうか?

「簡単」の定義にもよりますが、一行で処理したいのであれば例えば以下で算出できると思います。

strCol.AsEnumerable.Select(Function(x,i) (asc(x)-64)*(Math.Pow(26,strCol.Length-i-1))).Sum(Function(x) x)-1

中身を理解しやすいということであれば、地道にループでロジックを組むか、あらかじめ配列にしておいてIndexOfで返す等の方が良いかもしれません。

私も配列派^_^

Yoichi様
いつもご指導ありがとうございます。
僕もindexOfを使わせていただきます。
配列にアルファベット列を入力すると、A から XFDまでですが、程々にしておくんでしょうか?

こんにちは

要件にもよりますが、想定外データが来た時にワークフローを止めてよいなら
その想定範囲で定義しておけば良いように思えます。
(IndexOfメソッドの戻り値 が-1なら例外処理とする)

Yoichi様
いつもご指導ありがとうございます。
承知いたしました。

ハナッチ様
いつもご指導ありがとうございます。
私も配列派になります。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.