こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelで文字列の数字を一括で数値に変換する方法

ある人事ソフトからテキスト形式でExcelにデータを吐き出すと、社員コード(8ケタ)の前にシングルクォーテーションマーク(')が付いた状態で吐き出されます。
この状態でも四則計算はできるのですが、VLOOKUPの「検索値」にはできません。
=RIGHT(セル番地,8)という関数でシングルクォーテーションマークを取ってもまだダメです。
また、この時点で「セルの書式設定」を数値に変更しても設定は反映せず、VLOOKUPの「検索値」にも使えません。
最終的に、該当するセルを[F2]で編集モードにして[Enter]を押すことにより、初めて「セルの書式設定」で指定した設定が反映し、VLOOKUPの「検索値」としても使用できるようになります。

この一連の作業(特に[F2]+[Enter])を一括で処理できる方法はないでしょうか?
毎度毎度のことなので、何か方法がないものかと本当に困っています。
どうか、ご指導のほどよろしくお願いいたします。

投稿日時 - 2008-05-09 18:07:26

QNo.4009530

困ってます

質問者が選んだベストアンサー

VLOOKUP の書式は、=VLOOKUP(検索値,範囲,列番号,検索の型) であることはご存知のとおり。
「検索値」が数値の場合は「範囲」のデータも数値でなければならないので、仰っていることは理解できます。しかし、「範囲」のデータが文字列ならば、手間を掛けてそれを数値化せずに、逆に「検索値」の数値を文字列化してやればよろしいかと。

「検索値」にセルアドレス(例えば A1)を指定しているのなら、「検索値」を A1&"" にしてみてください。

投稿日時 - 2008-05-09 21:36:42

お礼

お礼が遅れて申し訳ありませんでした。
実際にやってみました。
数字が文字列のままで検索できるなんてびっくりしました。
すごいテクを知った感じです。
ありがとうございました。

投稿日時 - 2008-05-12 11:38:14

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

> ある人事ソフトからテキスト形式でExcelにデータを吐き出すと、
> 社員コード(8ケタ)の前にシングルクォーテーションマーク(')が付いた状態で吐き出されます。
「コード」なので文字列扱いするのは妥当な事です。
逆に検索範囲のデータが、コードであるにもかかわらず数値となっていることが問題なのでは?
検索範囲側をなおすのが面倒なら、質問者さんが自ら提示されている
=RIGHT(セル番地,8)
をチョット手直しして
=VALUE(RIGHT(セル番地,8))
とすれば
「'00123456」(文字)→「00123456」(文字)→「123456」(数値)
と変換されます。

投稿日時 - 2008-05-10 05:45:14

お礼

お礼が遅れて申し訳ありませんでした。
実際にやってみました。
=VALUEの関数は覚えました!
ありがとうございました。

投稿日時 - 2008-05-12 11:39:36

ANo.3

1)どこか適当な空きセルに数値としての[1]を入力してコピー。
2)数値化したいセルを選択し、右クリックメニューの「形式を選択して貼り付け」を選択
3)「値」と「乗算」をクリックして「OK」

で行けます。

投稿日時 - 2008-05-09 18:15:31

お礼

お礼が遅れて申し訳ありませんでした。
実際にやってみました。
このテクもすごいです。
ありがとうございました。

投稿日時 - 2008-05-12 11:30:38

ANo.2

方法1
空のセルをコピーして、文字列の数値のセルを選択
「編集」「形式を選択して貼り付け」で「値」「加算」でOK

方法2
文字列の数値のセルの列を選択(1列だけにしてください)
「データ」「区切り位置」で「次へ」「次へ」で表示形式を「標準」にして「完了」

方法3
文字列の数値のセルの範囲を選択してコピー
空いている場所に「編集」「形式を選択して貼り付け」で「加算」でOK
貼り付けた範囲をコピーして、元の範囲に貼り付ける。

方法4
=VALUE(RIGHT(セル番地,8))
または
=RIGHT(セル番地,8)*1
の結果をコピーして元のセルに「編集」「形式を選択して貼り付け」で「値」でOK

投稿日時 - 2008-05-09 18:15:31

お礼

お礼が遅れて申し訳ありませんでした。
実際にやってみました。
方法4は初めて知った関数です。
新しい関数を覚えるのはホントうれしいです。
ありがとうございました。

投稿日時 - 2008-05-12 11:34:49

ANo.1

対象列を選択→データ→区切り位置→完了で数値に一括変換されますのでお試し下さい。

投稿日時 - 2008-05-09 18:10:53

お礼

お礼が遅れて申し訳ありませんでした。
実際にやってみたら、「数値に返還する作業」としてはとても手軽でした。
新しい技を覚えたっていう感じです。
ありがとうございました。

投稿日時 - 2008-05-12 11:27:06

あなたにオススメの質問