新blogできています

このblogは、現在更新を停止しています。 新しい記事は新blogに追加されます。

2015年1月2日金曜日

Excelの文字列セルが数値に変換できないケース

他のアプリケーションから、Excelにデータを貼り付けた時、数値が数値と認識されないで手こずることがよくある。

でまあ、そういうことには慣れてるつもりだったから、思いつく手口を色々試したのだが、今日遭遇したのはしつこかったので覚書。



Excelのバージョンは2010。

●元データ

アメリカの州別GDPのデータがほしかったので、英語版WikipediaのList of U.S. states by GDPにある表をコピーし、Excelにテキスト形式で貼り付け。
州名に含まれるスペースがセル区切りと誤認されたので、それだけ修正して2列の表に。
さらに元の数値がカンマ入りなので、カンマを文字なしに置換して削除したが、この処理は別にやってもやらなくても。

別に何の変哲もなさそうだが、右列の数値データが左詰めになっていて、文字列と誤認されているのがわかる。
これに120を掛けて円換算しようとしたが、#VALUE!エラー。典型的な、文字列になっちゃってるパターン。

●一般的対処

エラーチェック機能で、数値のようだが文字列になっているセルに対してはエラーが出るはずだが、出なかった。
エラーが出れば、数値に変換という機能があるのだが。

多少知られたノウハウとして、数値で1が入力されたセルを用意し、その上に「形式を選択して貼り付け」→「乗算」とする、という手があるのだが、今回はそれが効かなかった。
1のセルが変化しない。

別のセルにコピペもダメ。値ペースト、数式ペースト、どちらも変化なし。
一度F2で入力状態にして、そのままEnterで確定してもダメ。変化なし。

文字列を数値に変換する=VALUE()関数で参照すると、#VALUE!エラーが出た。えええ。

●結論

F2キーでセル編集状態にしてから全体をコピーし、それを他のところに貼り付けると、カーソル位置のセルを飛ばしてひとつ右のセルに貼り付けられることがわかった。
となると、見えないが、セルの1文字目にTabか何かが入ってしまっているらしい。

F2キーで問題のセルを編集状態にし、見えない頭の一文字をDelキーで削除すると、数値に戻る。

手作業を嫌えば、問題のセルがA1からあるとして、B1セルに =VALUE(RIGHT(A1,LEN(A1)-1))とすれば、左端の一字あるTabを削って数値に戻る。あとはその式が入ったセルをコピーして、形式を選択して貼り付けから値で貼り付ける。