• ベストアンサー

指定文字から、空白までを16進数→10進数に変換する関数

エクセルで、A1セルに下記が記載されています。 「タイトルテスト#7BC ☆☆☆」 この文字列で、7BCだけを抽出し、さらに10進数に変換してB1へ出力したいと考えています。 16進数の前には必ず#がついており、最後には空白があります。 ♯から空白までの文字を10進数に変換する関数を調べたのですが、私には分かりませんでした。 どなたかご教授お願いいたします。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

> 下記のように#の前にスペースがあった場合、エラーとなってしまうのですが、何か良い方法はないでしょうか =HEX2DEC(MID(A1,FIND("#",A1)+1,FIND(" ",A1,FIND("#",A1))-FIND("#",A1)-1)) #以降のスペースを探すようにしました。 #から次のスペースまでの間をとりだして10進数に変換します。

その他の回答 (4)

回答No.5

#1です。 >下記のように#の前にスペースがあった場合、 >エラーとなってしまうのですが、何か良い方法はないでしょうか。 解決策は回答されていますが、16進数3桁限定をまず考えてみては? =HEX2DEC(MID(A1,FIND("#",A1)+1,3))

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

答えは既に出ていると思うが、式が長くなり、考えをまとめにくいのと、1歩づつ確認して、式を組み立てて、進めるために下記を勧めたい。 ーー A1からE1 タイトルテスト #7BC ☆☆☆」 9 13 7BC 1980 B1は #の位置を見つける =FIND("#",A1)  で9-->確認してOK C1は #以後の初出スペース =FIND(" ",MID(A1,B1+1,LEN(A1)-B1))+B1 で13-->確認してOK D1は 7BCを抜き出し =MID(A1,B1+1,FIND(" ",MID(A1,B1+1,LEN(A1)-B1))+B1-B1-1) 結果7BC-->確認してOK E1は 10進化 =HEX2DEC(D1) 結果 1980 ーーー E1かえら逆順に順にセル番地になっているところへ左のセルの 式で置き戻していく。 =HEX2DEX(MID(A1,B1+1,FIND(" ",MID(A1,B1+1,LEN(A1)-B1))+B1-B1-1)) B1の式は(作業列として使い)戻さないほうが良いと思うが。 ーー 検算 =7*16^2+11*16^1+12ーー>1980 ーー

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

=HEX2DEC(MID(A1,FIND("#",A1)+1,FIND(" ",A1)-FIND("#",A1)-1)) でいかがでしょう

tatewaki_K
質問者

お礼

ご回答ありがとうございます。 返事がおそくなってしまい申し訳ございません。 下記のように#の前にスペースがあった場合、エラーとなってしまうのですが、何か良い方法はないでしょうか。 「タイトル テスト#7BC ☆☆☆」

回答No.1

ツール アドイン [レ]分析ツール =HEX2DEC(MID(A1,FIND("#",A1)+1,FIND(" ",A1)-FIND("#",A1)-1)) エラー処理はしていません

tatewaki_K
質問者

お礼

ご回答ありがとうございます。 返事がおそくなってしまい申し訳ございません。 下記のように#の前にスペースがあった場合、エラーとなってしまうのですが、何か良い方法はないでしょうか。 「タイトル テスト#7BC ☆☆☆」

関連するQ&A