• ベストアンサー

n進法の変換

数字の0~9および英字のA~Z(OおよびIをのぞく)の34文字を使用した34進法の4桁の数字を10進法への変換方法、およびその逆(10進法→34進法)の変換方法をエクセルの計算式またはマクロを使用し作成する方法を教えてください。

  • hj8a
  • お礼率40% (2/5)

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

ベタに書けばこのような式で表せます。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) 冗長な部分はセルに定数を埋め込むなどをして、式の簡略化をしてください。

hj8a
質問者

お礼

大変ありがとうございました。 とても参考になりました。

関連するQ&A

  • n進法の変換!

    数学が得意で、Excelの達人の方!(じゃなくてもいいんですが……) たとえば、Windowsに載っている、電卓を関数モードで使うと、16進法10進法8進法2進法の変換ができるんですが、ほかには変換できません。 と、言うことで、数字(12桁以上必要)を入れると、ほかの進法に変わるシートを作りたいんですが、ぜんぜんうまくいきません。 誰か、うまいのを教えてください。体裁は気にしません。  ※変換前のn進法のnを、たとえばA2に入力  ※変換後のn'進法のn'を、たとえばA3に入力  ※変換する、n進数を入力 と、こんなシートを作りたいんです。 よろしくお願いいたします。

  • エクセルで10進法から60進法に変換する方法

    エクセルで10進法から60進法に変換する方法を教えてください。 たとえば、31.7041667という数字があったとして、それが31度42分15秒という角度に変換したいのです。関数電卓では簡単にできるのですが、エクセルでの方法、また関数などあったら教えてください。

  • セルの内容を変換 【置換】

    エクセルでセルの内容を自動的に変換する方法をお聞きしたいです. いま、D列にデータとして 22(5) 1986.5 p.588-590 という文字列データがあります。 これを vol.22, NO.5 p.588-590 (1986.5) という風に書き換えをしたいのですが、 自動的にこれを行うマクロを作りたいです。 どのようにすればよいかお知恵を貸してください。 vol.の数字は2桁とは限りません。 NO.の数字も1桁とは限りません。 p.も同様です。 よろしくお願いします。

  • 変換がおかしい!!

    MS-IME2000を使用しています. なんだかわかりませんが突然一部のキーの変換ができなくなりました u→4 i→5 o→6 という感じです. 英字でも日本語でもおかしくなります. 再起動してもなおりません。 仕方がないので今はIMEパツドのソフトキーボードを使い一文字ずつ打ち込んでいます。 小さな文字もうてません。助けてください  

  • n進法と代入の問題 整数を求めるんですが・・・

    n進法と代入の掛け合わせの問題です。代入式までは立てたものの、それ以上進めなくなってしまったのです。。。私が考えた式そのものが間違っているのでしょうか・・・。どなたか、問題を解くヒントとその先を教えてください。お願いします。。。 「5進法で書かれた3ケタの整数を7進法で書き変えたら数字の順が逆になった。この数を10進法で表すとどうなるか?」 <私の考えた答(途中で挫折してますが・・・)> 最初の数字(5進法)の100の位をx、10の位をy、1の位をzとする。 ・xyzを5進法→10新法で表すと 5の2乗×(掛ける)x+5の1乗×y+5の0乗×z→25x+5y+z・・・(1) ・7進法にしたら、xyzが逆なったのでそれを10進法にしたら 7の2乗×z+7の1乗×y+7の0乗×x→49z+7y+x・・・(2) (1)(2)は同じ数なので 25x+5y+z=49z+7y+xにして、さらに変形・約分して 12x-y-24z=0・・・(3) ここで止まりました。ここからxyzを求める方法がわからないのです。。。どうか教えてください。

  • 2進数から10進数へ変換

    C言語で、2進数から10進数に変換するプログラムを作ろうと思っています。 手計算で行う場合は2進数の 下1桁目×1 下2桁目×2 下3桁目×4。。。と計算しています。 下○桁目を取り出す方法を考えているのですが、思いつきません。 3桁の2進数を変換するプログラム(とりあえず101を変換することを考えて・・・)を書いてみたのですが、101を考えすぎたためか上手くいきませんでした。 最終的には10進数でintの範囲内程度の2進数の変換ができるプログラムを書きたいと思っています。 アドバイスをお願いします。 ちなみに、考えてみたプログラムは以下の通りです。 101以外で上手く変換できませんね・・・ ここに貼り付けるのが恥ずかしいです。 #include <stdio.h> main() { int x ,i ,z[3]; scanf("%d",&x); z[0]=x/100*4; z[1]=(x/10-10)*2; z[2]=(x-110)*1; printf("%d",z[0]+z[1]+z[2]); return 0; }

  • n進法→m進法への変換

    やりなおしのSPI問題に頭を痛めています。10進法→n進法、n進法→10進法、というやり方はそれぞれ理解できますが、以下のような応用になると、うまくできません。どなたか、宜しくお願いします! 例題1 3進法で3桁の数は何個あるか。 (書き出していくとわかるのですが、それ以外に何か公式のようなもので求める方法がありますでしょうか。他の進数になるとたちまち困ります。) 例題2 3進法の112201は5進法でいくらか。 (いったん10進法に直さずに、n進法→m進法への変換をダイレクトに行なえ、効率的でわかりやすい方法はありますでしょうか。)

  • EXCELの置換 方法

    前回も似たような質問をさせていただいたのですが、 また似たような処理が出てきてしまったので質問させてください!! もしお分かりになる方がいらっしゃいましたらアドバイスいただけると嬉しいです。 よろしくお願いします!! コード番号の一括置換えをするにはどうすれば良いのか教えてください。!! <例> 00000X0-0 00111T0-1 00200S0-0 00003K0-0    ・    ・    ・    ・ 上記のような数字5桁/英字1文字/数字1桁/ハイフン/数字1桁 で表記されるコード番号があります。 このコード番号を数字3桁/英字1文字/数字2桁/ハイフン/数字2桁 で一括置換えしたいのですが、それは可能でしょうか? <例> 000X00-00 111T00-01 200S00-00 003K00-00 *英字の次の数字とハイフンの次の数字は“0”が挿入されます。 (下線の箇所です。) コード番号の数が600件程あるので、一括置換えができると とても時間短縮になるのですが、、、。 置換えでなく、他の方法で変換が出来るのでしたらそちらも 教えて頂ければと思います。 (難しいマクロとかはやったことがないのでできましたら関数の応用などで 出来るやり方を教えて頂ければ有難いです。) 宜しくご指導お願いします。!!

  • エクセル2010で数式を作りたいです

    Excel 2010を使用しております。 情報の並べ替えについて困っており、投稿させて頂きました。 どなたかお詳しい方、どうかお助けください。 セルA1に複数情報が並んでいるので、項目ごとに分けて別セルに並べ替えたいのですが、どのような式をつくったらきれいにまとめられるでしょうか。マクロとかはよく分からないので、数式で対応できたらと思います(カッコ内は例です)。 B1に店番・・・7桁もしくは9桁の数字 (121212121) C2に店名・・・スペースを含む3文字から30文字の英字 (The World Game Tournament) D1に日付・・・「2013-05-20」というフォーマットになっています E1に時間・・・「08:40:09」というフォーマットになっています F1に親番・・・3桁から5桁の数字(54321) G1に組織名・・・スペースを含む3文字から40文字の英字 (ABC the first temple) H1に機械番号・・・スペースを含まない8桁から10桁の数字(000123456) I1に機械区分・・・スペースを含まない10文字の英字(EXAMPLEARE) 上記がすべてA1にスペースをはさんで並んでいて、100ちかくあります。 自分でやってみた式では桁数が違うせいか変なところで切れてしまったり…もうどうしたらいいものか、困っております。 勉強不足で申し訳ないのですが、どうかよろしくお願いいたします。

  • 同一セル内の3桁の数字を任意の数字に変換し表示

    excelの関数を教えて下さい。 同一セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。 各セルに1数字の場合はVLOOKUP関数を使用し変換できたのですが、同一セル内に複数数字がある場合の考え方がわかりません。 よろしくお願いします。

専門家に質問してみよう