- ベストアンサー
エクセル セル内の文字を指数に変換したい。
複数セル内に2.5✕10^4といった文字が入っています。 これを一括して数値(指数)に変換する方法はないでしょうか。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>複数セル内に2.5✕10^4といった文字が入っています。 間違いなくその書式で入っているなら、 Ctrl+Hで置換のダイアログを出し ✕10^ を E に全て置換するだけです。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
A2セルに 2.5✕10^4 が入っているとします。文字列です。ここをはっきり質問に書けないようではね。 シートでALT+F11を押すと、白紙のVBE画面になる。+は同時押しを表すお約束です。 挿入ー標準モジュールで 標準モジュールに Function Eval(ByVal expr As String) Eval = Evaluate(expr) End Function をコピペ。 ーー シートの例えばB2セルに = eval(SUBSTITUTE(A2,"✕","*")) と入れてENTER。 式中のXを「エクセル関数の乗算の記号*」に置き換えて、ELALUATE関数を使ったもの。 結果 25000 3桁ごとカンマなどは、表示形式の別途設定(手動操作) 多数のセルにこういうものがあれば、手動が嫌なら、VBAしかない。勉強して。 SUBSTITUTE関数適用までは、同一列にたいしょうがあるなら、式複写でできるぐらいは知っているだろう。 それが済めば、VBAでFORNEXTなどの繰り返し実行プログラムで、3行ですむ。 本質問は、内容的には、むつかしい(エクセルではあまり勧めていない)ことを要求している。もっと勉強した段階で考えることだ。 Googleで「エクセル 数式文字列 数式にする 」でででも、照会でもしてみたら。
お礼
VBAでの方法のご案内をありがとうございます。当方もそこまでいけたらと思いました。勉強になります。
- msMike
- ベストアンサー率20% (368/1813)
数式: =SUBSTITUTE(A1,"✕10^","E")*1 書式: 0.0E+00
お礼
ありがとうございます。
- mdmp2
- ベストアンサー率55% (438/787)
対象セルを範囲選択し、 2.5✕10^4 の ✕10^ の部分を E に置換します。 すると、 2.50E+04 に変わります。 これは数値です。 このままでも良いですが、表示形式を標準に変えてやると、 25000 という数値になります。
お礼
ありがとうございます。簡便で助かります。
- msMike
- ベストアンサー率20% (368/1813)
貴方が考える「指数」とはどんな表示形式ですか? 貴方が考える「一括」とはどういう操作ですか? そこんとこ、キッチリ説明すべきでしょ!
補足
お答えを頂いているようですが、私が考える指数?一括? 「指数」の表示形式はたくさんありません。 一括は一括です。複数セルに入っているデータを一度に全部って意味ですね。
お礼
知りませんでした。とても簡易な方法をご案内下さいまして、ありがとうございます。