[[20190719110303]] 『文字列を数値にするvalue関数について』(バリュー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列を数値にするvalue関数について』(バリュー)

ご質問です。

vlookupを使うために対象の値が
標準または数値と文字列で異なるので
いつもvalue関数を使って文字列になっている方を数値に直しております。

すると、数字だけのものは良いのですがアルファベットが入っているものは
value関数だとエラー表記になってしまいます。

文字列を数値にして、アルファベット付きのものはエラー表記ではなく
そのままでるようにする方法が分かりません。

例)
11111111
22222222
654r1

value関数↓

1111111
2222222
#VALUE!

となります。

またはこの作業以外の方法でvlookupをスムーズにする方法はないのでしょうか?

csvファイルをエクセルで操作したいので、どうしても片方のファイルがクエリで開いたりすると最初に文字列となっており、もともと用意しているリストは標準または数値です。

質問内容に不明点があればご指摘お願い致します。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 その列を選択した状態でデータ-区切り位置を開きそのまま完了としてはどうだろうか?
 これで文字列の数字のみ数値に変わりアルファベットがもじっているものはそのままになる。
(ねむねむ) 2019/07/19(金) 11:15

 おっと
 >アルファベットがもじっている
      ↓
 アルファベットが混じっている
(ねむねむ) 2019/07/19(金) 11:16

 VLOOKUP の検索値が A1セルだとして
 ↓ のようにすれば文字列に統一されます
 
 =VLOOKUP(A1&"",…… ……)
          ~~~~~
 参考まで
(笑) 2019/07/19(金) 11:21

 1234AB

 数字部分を半角数字にしても、文字と連結していれば、数値にはなりません。
 文字は文字です。

 たぶんここ、
http://excelfactory.net/excelboard/exgeneral/excel.cgi?mode=all&namber=130482&rev=0

(BJ) 2019/07/19(金) 11:26


 >もともと用意しているリストは標準または数値です
 こっちを文字列に変換した方が早いような気がしますが?
(seiya) 2019/07/19(金) 11:36

たくさんのご回答有難うございます。

まず、
>> VLOOKUP の検索値が A1セルだとして

 ↓ のようにすれば文字列に統一されます
 
 =VLOOKUP(A1&"",…… ……)

こちらですが、a1の方は文字列選択範囲,……
の中に”標準”の検索値がございます。

>もともと用意しているリストは標準または数値です
 こっちを文字列に変換した方が早いような気がしますが?

seiyaさんのおっしゃるとおりその方が早いのですが、
場合により文字列のリストと標準のリストでvlookupをするので
できれば文字列のリストに対して標準のリストから抽出するやり方を
ご教授頂きたいです。

宜しくお願い致します。
(バリュー) 2019/07/19(金) 11:52


 >場合により文字列のリストと標準のリストでvlookupをするので
 この意味がよく分かりませんが、数式・エクセル機能では無理なような気がします。
(seiya) 2019/07/19(金) 11:57

 >=VLOOKUP(A1&"",…… ……)
 >こちらですが、a1の方は文字列選択範囲,…… 
 >の中に”標準”の検索値がございます。 
 
 ↑ はどういう意味?

 A1セルが数値の場合
 A1&"" とすれば文字列になりますけど?

 以上、確認だけ
(笑) 2019/07/19(金) 12:02

分かりづらくて申し訳ございません。

リストによって
VLOOKUPの検索値にしたい商品番号が
文字列と文字列ではないものがございます。

理由はそのままエクセルで開くと色々問題が発生する箇所があるため、
ツールを使用して開くようにしております。

そのリストは全て”文字列”になっております。

そういったリストもあればエクセル形式で保存しているリストもあり、
そちらの商品番号は文字列にしておりません。

ですので、ツールで開いて文字列になっている方をVALUE関数で文字列ではないように
しておりましたが、一部アルファベットつきのものは
#VALUE!
とでてしまうので少しの手間かもしれませんがそこの部分だけVALUEにする必要がないので
元のセルをコピペしておりました。

>>A1セルが数値の場合

 A1&"" とすれば文字列になりますけど?

こちらについてはこのA1が元々文字列なのでする必要がないという意味です。

なにかやり方はないかとご相談させて頂いた次第です。
(バリュー) 2019/07/19(金) 12:30


 LookUpリストに作業列(参照専用の文字型列)を用意してその列を基にLookUp又はIndex関数等で
 計算させれば済むことではないのですか?
(seiya) 2019/07/19(金) 12:41

 VLOOKUP の検索値はすべて文字列
 VLOOKUP が参照するリストが数値と文字列に分かれている
 ということ?

 だったら ↓ のようにするとか?

 =VLOOKUP(IFERROR(A1*1,A1),…… ……)

 参考まで
(笑) 2019/07/19(金) 12:53

かぶりましたけど、そのまま

見た目数字→数値に直したい
見た目文字列→そのまま文字列

ということですかね?

現在 Value(A1) とかになっている部分を

IFERROR(VALUE(A1),A1)

とすればいいのでは?

(渡辺ひかる) 2019/07/19(金) 12:55


たくさんのご返信誠に有難うございます。

>> =VLOOKUP(IFERROR(A1*1,A1),…… ……)

IFERROR関数内でアスタリスクは使えないと思っていたのですが、使えるのでしょうか?
A1*1というのがどういう処理をしているのか教えて頂きたいです。

>>現在 Value(A1) とかになっている部分を
IFERROR(VALUE(A1),A1)

こちらで理想値になりました!
有難うございます。

>> LookUpリストに作業列(参照専用の文字型列)を用意して
参照専用に一列足してTEXT関数を使って文字列にしてみましたが、
VLOOKUPはエラーになりました。
参照しているリストはテーブル機能を使用しているのですが
なにか関係ございますでしょうか?

(バリュー) 2019/07/19(金) 14:17


解決したようでよかったです。

アスタリスクの意味は回答者から説明があると思いますが、見た目数字の文字列に1をかけることで数値にしていると理解しています。

>A1&"" とすれば文字列になりますけど

の逆ですね

>参照専用に一列足してTEXT関数を使って文字列にしてみましたが、
>VLOOKUPはエラーになりました。

一列足したのが参照元なのか参照先なのかわからないので何とも言えないです

参照元ならば、検索値の列を変えなくてはならないし
参照先ならば、もともと文字列なのですから意味はないと思います。

(渡辺ひかる) 2019/07/19(金) 14:41


 >IFERROR関数内でアスタリスクは使えないと思っていたのですが、使えるのでしょうか? 

 実際にやってみれば分かります。

 >A1*1というのがどういう処理をしているのか教えて頂きたいです。 
 
「*」は掛け算の演算子。A1×1(A1 掛ける 1)ということ。

 文字列の数字を四則演算すれば「数値」になります。
 文字列の「10」に「1」を掛ければ数値の「10」に、「2」を掛ければ数値の「20」になる。

 参考まで
(笑) 2019/07/19(金) 14:52

ご説明有難うございます。
またなにかございましたらよろしくお願いいたします。

お時間頂き有難うございました。
(バリュー) 2019/07/19(金) 15:43


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.