別の質問で4桁の数字を以下の方法で34進数からor34進数へ変換する式を見付けました。
これを9ケタの数字の変換に拡張しようとするとどういうのがいいのでしょうか?
2倍チョットの分量の式にしなくてはいけませんでしょうか?
いいやり方を教えてください。
A1に値を入れて、
34進→10進
=(SEARCH(LEFT(A1,1),"0123456789ABCDEFGHJKLMNPQRSTUVWXYZ")-1)*34^3+(SEARCH(MID(A1,2,1),"0123456789ABCDEFGHJKLMNPQRSTUVWXYZ")-1)*34^2+(SEARCH(MID(A1,3,1),"0123456789ABCDEFGHJKLMNPQRSTUVWXYZ")-1)*34+(SEARCH(RIGHT(A1,1),"0123456789ABCDEFGHJKLMNPQRSTUVWXYZ")-1)
10進→34進
=MID("0123456789ABCDEFGHJKLMNPQRSTUVWXYZ",INT(A1/34^3)+1,1)&MID("0123456789ABCDEFGHJKLMNPQRSTUVWXYZ",INT(MOD(A1,34^3)/34^2)+1,1)&MID("0123456789ABCDEFGHJKLMNPQRSTUVWXYZ",INT(MOD(A1,34^2)/34)+1,1)&MID("0123456789ABCDEFGHJKLMNPQRSTUVWXYZ",MOD(A1,34)+1,1)
No.1ベストアンサー
- 回答日時:
関数と同じような処理を行うユーザ関数を作ってしまった方が良いかもしれません。
手抜き版ですが、10進数をI,O抜きの34進数に変換するユーザ関数「fDEC234]、その逆「f342DEC」を作ってみました。
以下のコードを標準モジュールに入れて、A1に1234と入れ、B1に =fDEC234(A1) と入力すると、12A と表示されます。
A2にWXYZと入れ、B2に =f342DEC(A2) と入力すると、1216077 と表示されます。
桁を合わせるところは作りこんでいません。Excelの機能や関数でやるか、ご自分で実装してください。
Function fDEC234(aData As Range) As String
For i = 1 To Int(Log(aData) / Log(34) + 1)
nOne = aData Mod 34 ^ i
If i > 1 Then nOne = Int(nOne / (34 ^ (i - 1)))
sWork = Mid("0123456789ABCDEFGHJKLMNPQRSTUVWXYZ", nOne + 1, 1) & sWork
Next i
fDEC234 = sWork
End Function
Function f342DEC(aData As Range) As Long
sData = aData.Text
For i = 0 To (Len(sData) - 1)
nWork = nWork + (InStr("0123456789ABCDEFGHJKLMNPQRSTUVWXYZ", Mid(sData, Len(sData) - i, 1)) - 1) * 34 ^ i
Next i
f342DEC = nWork
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になります 下記のコード実行すると エラーになります わかるかた教えてくれませんでしょう 6 2022/12/17 15:01
- その他(エンターテインメント・スポーツ) こちらのバンド名分かりますか? 2 2022/06/16 22:57
- その他(音楽・ダンス・舞台芸能) 音階についての簡単な質問です 3 2023/04/06 17:19
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/10/25 17:10
- Excel(エクセル) エクセル 別シートの各セルそれぞれの比率を計算したい 4 2023/08/05 15:20
- 数学 3次元実ベクトル空間において, 平面 P:x-y+z+1=0 と直線 L:2(x-1)=-y=-z 3 2022/10/29 14:39
- Excel(エクセル) ExcelでA1に「年」B2に「干支」を表示する関数 6 2023/08/17 15:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
ExcelVBA実行後に時々落ちる
-
std::stringからLPCWSTR型への変換
-
sedで日本語の置換方法について
-
VS 2008(VB.NET)
-
EBCDICへの変換
-
S-JIS → JIS コード変換するには
-
Symfowareでのデータ型変換につ...
-
フォームのコントロールのバッ...
-
JIS → S-JIS コード変換するには
-
COBOLによる全角・半角混...
-
XMLデータの中の改行コードにつ...
-
文字コードshift-jisへの変換に...
-
特殊記号
-
C#で16進数からASCIIへの変換の...
-
byte配列の内容をstringにコピ...
-
VBAで4桁の16進数から16桁の2進...
-
画像データ(png)をcsvファイル...
-
お世話になります。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
「彡」って文字はなんという文...
-
セル内の文字列が日本語か英語...
-
ExcelVBA実行後に時々落ちる
-
std::stringからLPCWSTR型への変換
-
VS 2008(VB.NET)
-
英数字を含む文字列(0-9,A-Z)...
-
ふりがなをアルファベット化す...
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
フォームのコントロールのバッ...
-
「髙(はしごたか)」を文字コー...
-
CString ←→ BSTRの変換について
-
Symfowareでのデータ型変換につ...
-
EBCDICをASCIIに変換したい
-
2バイト文字をJEFからSJISに変...
-
PL/SQLでSJISの文字コードを取...
-
画像データ(png)をcsvファイル...
-
10進数→2進数への変換
-
S-JIS → JIS コード変換するには
おすすめ情報