【エクセル 解決法】数値が文字列として認識される~ウェブサイトの数値データを例に~ 

【エクセル-解決法】-数値が文字列として認識される-~ウェブサイトの数値データ~ エクセル

みなさんこんにちは、ZeroTerasu(@ZeroTerasu)です。

今回は、ウェブサイトから取得した数値データがエクセル上で数値として扱えないときの対処法について記事に致します。

今回の事案:ウェブサイトの表データをエクセルに抽出

↓今回抽出するデータは下記のデータです。抽出元のソースコードを確認しましたが、一般的な<table>タグに囲まれた表データです。(スクレイピング案件ではありませんので、詳細は割愛致します。)

①今回抽出するデータ(ウェブサイト上の表データ)

上記の表をエクセルに通常のコピペすると、下記のようになります。

②ウェブサイト上のデータをエクセルに通常コピペした場合のエクセル上での表示

ここで、上記②の数値データを使用して、下記③のようにエクセル上で計算します。

「=114.893-115.523」の計算結果が得られると思いきや、「#VALUE!」数値エラーが発生してしまいました。

③ウェブサイトから取得したデータをエクセル上で計算した結果

エラーの原因:ウェブサイトから取得したデータが「文字列」になっている。

セルに入力されたデータのデータ型を確認するには、「TYPE」関数を使用します。

「=TYPE(セル番号)」で、下記画像のようにデータ型に応じた数値を返してくれます。

上記画像の通り、下記のようなTYPE関数の結果が得られます。

①ウェブサイトから取得した数値のデータ型=「文字列」
②エクセル入力した数値のデータ型=「数値」

また、下記にて①の文字列化されている原因について解説します。

数値が文字列化している原因:ケース①「数値+文字列(スペース等)=文字列」

文字列になっているセルをダブルクリックしてみると、数値の後ろに半角スペースが入力されてしまっていることが分かります。

実は、エクセルでは「半角スペース=文字列」として認識されます。

また、エクセルでは「数値+文字列=文字列」として扱われますので、数値が入力されているはずのセルの計算が出来ない場合は、数値の他に何か隠れた文字が入力されている可能性があります。(例、スペース、アポストロフィ、ダブルクォーテーション 等)

数値が文字列化している原因:ケース①数値+文字列
「数値+半角スペース(文字列) = 文字列」となっている。

数値が文字列化している原因:ケース②シングルクォーテーション

数値が文字列化している原因:ケース②シングルクォーテーション
シングルクォーテーションが先頭につけられており、文字列データとなっている。
この場合は、「!」ボタンをクリック→数値に変換する(C) で解決できます。
その他、後述の解決方法でも解消できる可能性があります。

数値が文字列化している原因:ケース③=”数値”

数値が文字列化している原因:ケース③=”数値”
見た目上は、数値になっているが、数式を見ると、数値がダブルクォーテーションで囲まれた数式となっているケースがあります。
この場合、後述の検索と置換にて、「”」を空白にすると数値として認識されます。

解決方法①:文字を削除

対象セルが複数存在する場合は、下記の手順に沿って文字を削除します。

ステップ1:文字をコピー
数値が文字列化している原因①
上記のスペース部分が選択された状態で、「Ctrl + C」する。このスペースは、半角スペースとは限らない場合があるので、対象の文字(上記の場合はスペース)を選択し、確実に対象の文字をコピーするようにします。
ステップ2:検索と置換

まずは、対象の文字が含まれている可能性があるセル全てを選択します。

そして、ショートカットキー(Ctrl + F)で表示される「検索と置換」の画面で、「検索する文字列」のボックスに、ステップ1で取得した文字を入力、「すべて置換(A)」をクリックすると、検索する文字列に入力した文字列が空白になります。

その結果、対象のセルが「数値」のみになりますので、数値データとして扱うことが出来るようになります。

解決方法②:「!」エラーチェックオプションで数値に変換

「!」マークが表示される場合、同様に「!」が表示されるセルを全て選択した状態で、「!」マークをクリックすると、下記の画像のように「数値に変換する(C)」のボタンが表示されます。こちらで数値に変換することが出来ます。

「!」エラーチェックオプションで数値に変換

解決方法③:区切り位置ウィザード(最も汎用性が高い)

「データ」タブの「区切り位置」をクリック(ショートカットキーは、Alt→A→E)すると、区切り位置ウィザードが立ち上がります。

この機能は、コンマやスペースなどを起点にして、1つのセルに入力されているデータを分割することが出来る機能です。

既述した解決法で解消できない場合、この機能を使用すると、数値化を妨げているデータを切り分けることが出来る可能性があります。

区切り位置ウィザード

解決方法④:「=VALUE(セル)」関数で数値に変換

文字列として入力されているデータが含まれたセルをVALUE関数を用いて数値化。その後、「コピー→値貼り」してデータを加工すれば、数値データとして扱うことが可能。

総括:メモ帳にデータ貼り付け→テキストウィザードを使用して貼り付けするとほとんど解決できる。

解決方法③でも解消できない場合は、一旦ウェブサイトの情報をメモ帳に貼り付けてみて下さい。

その後、貼り付けたデータを全選択→コピー

そして、エクセルで貼り付ける際、「ホーム」タブ→「貼り付け」ボタン→「テキストウィザードを使用して貼り付け」を選択。

すると、解決方法③と同様の操作が出来ますので、同様の手順に沿って進めて下さい。

コメント

タイトルとURLをコピーしました