- ベストアンサー
指定文字から、空白までを16進数→10進数に変換する関数
エクセルで、A1セルに下記が記載されています。 「タイトルテスト#7BC ☆☆☆」 この文字列で、7BCだけを抽出し、さらに10進数に変換してB1へ出力したいと考えています。 16進数の前には必ず#がついており、最後には空白があります。 ♯から空白までの文字を10進数に変換する関数を調べたのですが、私には分かりませんでした。 どなたかご教授お願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> 下記のように#の前にスペースがあった場合、エラーとなってしまうのですが、何か良い方法はないでしょうか =HEX2DEC(MID(A1,FIND("#",A1)+1,FIND(" ",A1,FIND("#",A1))-FIND("#",A1)-1)) #以降のスペースを探すようにしました。 #から次のスペースまでの間をとりだして10進数に変換します。
その他の回答 (4)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
#1です。 >下記のように#の前にスペースがあった場合、 >エラーとなってしまうのですが、何か良い方法はないでしょうか。 解決策は回答されていますが、16進数3桁限定をまず考えてみては? =HEX2DEC(MID(A1,FIND("#",A1)+1,3))
- imogasi
- ベストアンサー率27% (4737/17069)
答えは既に出ていると思うが、式が長くなり、考えをまとめにくいのと、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)
=HEX2DEC(MID(A1,FIND("#",A1)+1,FIND(" ",A1)-FIND("#",A1)-1)) でいかがでしょう
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
ツール アドイン [レ]分析ツール =HEX2DEC(MID(A1,FIND("#",A1)+1,FIND(" ",A1)-FIND("#",A1)-1)) エラー処理はしていません
お礼
ご回答ありがとうございます。 返事がおそくなってしまい申し訳ございません。 下記のように#の前にスペースがあった場合、エラーとなってしまうのですが、何か良い方法はないでしょうか。 「タイトル テスト#7BC ☆☆☆」
お礼
ご回答ありがとうございます。 返事がおそくなってしまい申し訳ございません。 下記のように#の前にスペースがあった場合、エラーとなってしまうのですが、何か良い方法はないでしょうか。 「タイトル テスト#7BC ☆☆☆」