vlookup関数を使ってます。
Sheet1に関数=vlookup(A1,Sheet2!A:B,2,0)を記入
・Sheet1のA1は小数点のある数値です(セル内で右寄り)。
・Sheet2のA列は同じく小数点付ですが文字列で(セル内で左寄り)、左上に緑三角があります。
同じ数字の並びがありますが、数値と文字列の違いから(だと思いますが)vlookupで検索にヒットしません。Sheet2のA列をマウスでクリックし、選択してリターンキーを押すと、何故かセル内で右寄りに変わり、vlookupで検索にヒットするようになります。おそらく数値に変わったのかと思います。
双方とも文字列扱いで、vlookupを動作させるにはどうすればいいでしょうか?
No.2ベストアンサー
- 回答日時:
すでに答えられていますが、数値と文字列は別物です。
Excelは数値として扱える文字列を数値に置き換えて演算する機能がありますが、
(文字列に対して0を足したり、1を掛けたりして数値に置き換えることができるのはこの機能のためです)
その機能を比較・検索を行う関数に求めてはいけません。
ちなみに「区切り位置」の機能を使うとセルの書式で文字列や数値、日付などへ自在に変換することができます。
(「区切り文字」が無くても機能しますので、「1列だけまとめて変換する」なんてことができます)
ありがとうございます。
経験のない使い方です。漠然と文字列には変換出来そうに思えますが、数値に変換出来るのでしょうか。今後も使いそうな機能なので、もうちょっと勉強してみます。
No.1
- 回答日時:
Vlookup関数に限らず、エクセルでは
数値 と 文字列 は全く違う取扱いになります。
例えば
=1/3 と式を入れて 表示が 0.33 であっても
実際は、0.3333333333・・・
となるのが数値です。
文字列で 0.33 と入れればそれは単に文字です。
>双方とも文字列扱いで、vlookupを動作させるにはどうすればいいでしょうか?
Sheet1のA1セルの数値を文字列に変換します。
=vlookup(Text(A1,"0.00"),Sheet2!A:B,2,0)
と云った形で、文字列に変えますが、小数点以下の表示なども完璧に合わせる事に
なります。
Sheet2のA列を全て数値にした方が便利ではないでしょうか。
一例ですが、空いているセルに 数値で1と入れる、コピーする
A列を選択、形式を選択して貼り付け
乗算 にチェックを入れて実行
A列のすべてに1を掛けますので、勝手に数値になります。
空白は0になります。
ありがとうございます。
データによってはアルファベットもあるので、文字列の方が都合がいいです。
cntrl+1で書式を文字列にするのと、text関数は同じ結果と思っていいですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 入力と同時に桁数を詰める 3 2022/09/11 20:23
- Excel(エクセル) Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索 6 2023/08/11 13:35
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- Visual Basic(VBA) vba 15 2023/04/07 12:33
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
【Excel VBA】複数ある特定の文...
-
Left関数とRight関数を合わせた...
-
[C言語]fputsとfprintfの違い
-
VBの「As String * 128」とは?
-
VBscriptからバッチに変数を渡...
-
MS SQLServer のSQLで文字列の...
-
Excelはなんで先頭の0を消すん...
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
A B C D E の五文字のすべてを...
-
ORCLEでの小数の表示方法の変更...
-
エクセルで文字列の最大値を抽...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
sedなどで、特定の文字列の後の...
-
Excelで指数表現しないようにす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
[C言語]fputsとfprintfの違い
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列の最大値を抽...
-
Excelはなんで先頭の0を消すん...
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
Msgboxの×が押されたとき
-
sedなどで、特定の文字列の後の...
-
【Excel VBA】複数ある特定の文...
-
OnTime 使用時のプロシージャへ...
おすすめ情報