- ベストアンサー
Excelで文字列の数字を一括で数値に変換する方法
ある人事ソフトからテキスト形式でExcelにデータを吐き出すと、社員コード(8ケタ)の前にシングルクォーテーションマーク(')が付いた状態で吐き出されます。 この状態でも四則計算はできるのですが、VLOOKUPの「検索値」にはできません。 =RIGHT(セル番地,8)という関数でシングルクォーテーションマークを取ってもまだダメです。 また、この時点で「セルの書式設定」を数値に変更しても設定は反映せず、VLOOKUPの「検索値」にも使えません。 最終的に、該当するセルを[F2]で編集モードにして[Enter]を押すことにより、初めて「セルの書式設定」で指定した設定が反映し、VLOOKUPの「検索値」としても使用できるようになります。 この一連の作業(特に[F2]+[Enter])を一括で処理できる方法はないでしょうか? 毎度毎度のことなので、何か方法がないものかと本当に困っています。 どうか、ご指導のほどよろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
VLOOKUP の書式は、=VLOOKUP(検索値,範囲,列番号,検索の型) であることはご存知のとおり。 「検索値」が数値の場合は「範囲」のデータも数値でなければならないので、仰っていることは理解できます。しかし、「範囲」のデータが文字列ならば、手間を掛けてそれを数値化せずに、逆に「検索値」の数値を文字列化してやればよろしいかと。 「検索値」にセルアドレス(例えば A1)を指定しているのなら、「検索値」を A1&"" にしてみてください。
その他の回答 (4)
> ある人事ソフトからテキスト形式でExcelにデータを吐き出すと、 > 社員コード(8ケタ)の前にシングルクォーテーションマーク(')が付いた状態で吐き出されます。 「コード」なので文字列扱いするのは妥当な事です。 逆に検索範囲のデータが、コードであるにもかかわらず数値となっていることが問題なのでは? 検索範囲側をなおすのが面倒なら、質問者さんが自ら提示されている =RIGHT(セル番地,8) をチョット手直しして =VALUE(RIGHT(セル番地,8)) とすれば 「'00123456」(文字)→「00123456」(文字)→「123456」(数値) と変換されます。
お礼
お礼が遅れて申し訳ありませんでした。 実際にやってみました。 =VALUEの関数は覚えました! ありがとうございました。
- bin-chan
- ベストアンサー率33% (1403/4213)
1)どこか適当な空きセルに数値としての[1]を入力してコピー。 2)数値化したいセルを選択し、右クリックメニューの「形式を選択して貼り付け」を選択 3)「値」と「乗算」をクリックして「OK」 で行けます。
お礼
お礼が遅れて申し訳ありませんでした。 実際にやってみました。 このテクもすごいです。 ありがとうございました。
- mshr1962
- ベストアンサー率39% (7417/18945)
方法1 空のセルをコピーして、文字列の数値のセルを選択 「編集」「形式を選択して貼り付け」で「値」「加算」でOK 方法2 文字列の数値のセルの列を選択(1列だけにしてください) 「データ」「区切り位置」で「次へ」「次へ」で表示形式を「標準」にして「完了」 方法3 文字列の数値のセルの範囲を選択してコピー 空いている場所に「編集」「形式を選択して貼り付け」で「加算」でOK 貼り付けた範囲をコピーして、元の範囲に貼り付ける。 方法4 =VALUE(RIGHT(セル番地,8)) または =RIGHT(セル番地,8)*1 の結果をコピーして元のセルに「編集」「形式を選択して貼り付け」で「値」でOK
お礼
お礼が遅れて申し訳ありませんでした。 実際にやってみました。 方法4は初めて知った関数です。 新しい関数を覚えるのはホントうれしいです。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
対象列を選択→データ→区切り位置→完了で数値に一括変換されますのでお試し下さい。
お礼
お礼が遅れて申し訳ありませんでした。 実際にやってみたら、「数値に返還する作業」としてはとても手軽でした。 新しい技を覚えたっていう感じです。 ありがとうございました。
お礼
お礼が遅れて申し訳ありませんでした。 実際にやってみました。 数字が文字列のままで検索できるなんてびっくりしました。 すごいテクを知った感じです。 ありがとうございました。