トップページ > Excel エクセル使いこなし技 > 文字列になってしまった数字を本当の数値に変換する方法

文字列になってしまった数字を本当の数値に変換する方法

文字列になってしまった数字を本当の数値に変換する方法


外部データを読み込んだ時には特にですが、一見すると数値に見えるデータが、実は数値として計算に使えない、ということがあります。ここでは「文字列」になってしまった「数値」を、ちゃんとした本当の「数値」に簡単に変換する方法を紹介します。

「文字列数値」と「本当の数値」を見分ける方法

まず、エクセルにおいて標準では、数値は右寄せ、文字列は左寄せで表示されます。問題児である「文字列」数値を特定する簡単な方法は、対象となる範囲を選択し、右クリック、「セルの書式設定」を選択します。そして、「配置」タブを選択し、「文字の位置」>「横位置」を「標準」にして、「OK」をクリックします。十分な列幅を取れば、「本当の数値」は右側へ、「文字列の数値」は左側へ寄ります。日時データも、実体はシリアル値であり、数値ですので、同じ様に右側に寄ります。

解決方法1:「形式を選択して貼り付け」を使う

文字列となってしまった数値があることが判明したら、エクセルが計算出来るように、その「文字列」数値を「本当の」数値に変換します。どこでも良いですが、空白のセルをコピーし、「文字列」数値が入力されている範囲を選択します。そして、右クリックし、「形式を選択して貼り付け」を選び、貼り付けオプションは「値」、演算オプションは「加算」を選択し、「OK」をクリックします。

これで、文字になっていた数値も「本当の」数値に変わり、エクセルが計算に利用できるように変換されました。空白セルは「0」の値を持ち、エクセルが文字列として扱っている数値に別の数値を足すことで、「文字列」数値を「本当の」数値に強制的に変換されました。

解決方法2:文字列操作関数に「0」(ゼロ)を足す

解決方法1の理論はエクセルの標準的な関数である文字列操作関数にも適用することが出来ます。エクセルの文字列操作関数を使い、その計算結果が数値であったとしても、エクセルはその数値を「数値」ではなく「文字列」として返します。

例えば、セルA1に「 2300円 」と入力されているとします。そして、二種類の文字列操作関数 LEFT関数とFIND関数を使った数式「 =LEFT(A1,FIND(“円”,A1)-1) 」で「 2300 」という数字部分だけを抽出した計算結果を得ることが出来ます。

しかし、この計算結果「 2300 」は「本当の」数値ではなく、「文字列」となっている数値となり、標準書式では文字列として左寄せで表示されます。

そこで、数式を若干改変し、「 =LEFT(A1,FIND(“円”,A1)-1)+0 」と最後に数値「0」を足してあげることで、「本当の」数値に変換してあげることが出来ます。この数式の計算結果は数値ですので、標準書式では数値として右寄せで表示されます。

解決方法3:「区切り位置」を使う

「区切り位置」機能を使っても、「文字列」数値を「本当の」数値に変換することが出来ます。まずは、「文字列」数値が含まれるセル範囲を選択します。そして、「データ」>「区切り位置」を選択します。そして、「区切り位置指定ウィザード」の1ステップ目、2ステップ目は「次へ」を押して、3ステップ目までやって来ます。3ステップ目において、「列のデータ形式」で「G/標準」が選択されていることを確認し、「完了」ボタンをクリックします。

これで、「文字列」数値を「本当の」数値に変換することが出来ました。この方法の別の長所は、3ステップ目の「列のデータ形式」で「文字列」を選択することで、「本当の」数値を逆に「文字列」数値に変換することも出来ることです。VLOOKUP関数を使っていて、データはある筈なのに該当するデータがない結果が返される際は、「検索値」と「範囲」において、「本当の」数値と「文字列」数値が混在していることが原因だったりするので、この方法を使い、どちらか一方に変換することで、問題を解決することが出来ます。結構、重宝する方法ですので覚えておいて損はありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

トラックバックURL

http://excel.jiten.org/tips/convert-text-to-num/trackback/