No.2ベストアンサー
- 回答日時:
もしかしますと、スペースではなく、印刷されない他の文字が含まれている可能性もあるのではないでしょうか。
印刷されない文字を取り除くためには、CLEAN関数を使用します。
又、コード番号が160の文字は、TRIM関数やCLEAN関数では取り除く事が出来ません。
ですから、例えば検索値の元の値がSheet2のA1セルに表示されている場合には、次の様な数式にされては如何でしょうか。
TRIM(SUBSTITUTE(CLEAN(Sheet2!A1),CHAR(160),))
それから、検索値の方だけではなく、VLOOKUP関数で検索をかける際の、検索範囲に入力されている値の方に、余分なスペースや印刷されない文字等が、含まれている可能性もあるのではないでしょうか。
ですから、例えば検索範囲のリストがSheet1のA2~D7である場合には、作業用Sheetを設けて、作業用SheetのA1セルに、
=IF(Sheet1!A2="","",TRIM(SUBSTITUTE(CLEAN(Sheet1!A2),CHAR(160),)))
という数式を入力し、
作業用SheetのB1セルに、
=IF(Sheet1!B2="","",Sheet1!A2)
という数式を入力してから、
作業用SheetのB1セルをコピーして、作業用SheetのC1~D1の範囲に貼り付けた後、
作業用SheetのA1~D1の範囲をコピーして、作業用SheetのA2~D6の範囲に貼り付ける事で、
検索用のリストを作成し、こちらのリストの方を基にして、VLOOKUP関数で検索をかける様にされては如何でしょうか。
他にも、全角文字と半角文字は異なりますから、ASC関数か或いはJIS関数を使用して、全角文字か半角文字のどちらか一方に、揃えなくてはならない場合もあります。
又、全角のハイフォン(文字コード8541)と全角のマイナス(文字コード8501)は別の文字で、全角のハイフォンはASC関数を使って半角文字にする事が出来ません。
これらの事も考慮した場合には、検索値に使用する数式は、
TRIM(ASC(SUBSTITUTE(SUBSTITUTE(CLEAN(Sheet2!A1),CHAR(160),),CHAR(8541),CHAR(8510))))
に変更し、
作業用SheetのA1セルに入力する数式は、
=IF(Sheet1!A2="","",TRIM(ASC(SUBSTITUTE(SUBSTITUTE(CLEAN(Sheet1!A2),CHAR(160),),CHAR(8541),CHAR(8510)))))
に変更した方が良いかも知れません。
只、Excelでは関数の中に他の関数を使用し、関数を二重、三重にする事をネストと言うのですが、Excelの関数はネストのレベルを7(関数を七重)までにしか出来ません。
ですから、先程の検索値に関しては、作業用Sheetの適当なセル(例えばE1セル)に、
=TRIM(ASC(SUBSTITUTE(SUBSTITUTE(CLEAN(Sheet2!A1),CHAR(160),),CHAR(8541),CHAR(8510))))
と入力しておき、
VLOOKUP関数の部分を次の様にされては如何でしょうか。
=VLOOKUP('作業用Sheet'!E1,'作業用Sheet'!A1:D6,2)
又は
=VLOOKUP('作業用Sheet'!E1,'作業用Sheet'!A1:D6,2,0)
お礼が遅くなってしまい申し訳ありませんでした。
結局うまくいかず、手動で半角スペースを削除いたしました。
ご回答、ありがとうございました。
No.4
- 回答日時:
検索値が文字列(スペースなし)で表の左端が文字列(スペースあり)の場合なら
=VLOOKUP(検索値&"*",表の範囲,列番号,FALSE)
※上記は自分が住所や郵便番号の検索によく利用する方法です。
例(_は半角スペース)
AAA 1
AA_ 2
AB_ 3
ABB 4
AA => VLOOKUP("AA*",表の範囲,列番号,FALSE) => AAAを検索して1が表示
AA_=> VLOOKUP("AA *",表の範囲,列番号,FALSE) => AA_を検索して2が表示
AB => VLOOKUP("AB*",表の範囲,列番号,FALSE) => AB_を検索して3が表示
ABB=> VLOOKUP("ABB*",表の範囲,列番号,FALSE) => ABBを検索して4が表示
AAで2の結果が欲しい場合は、左端の列で昇順の並べ替えを行ってください。
まあ、表の左端のスペースを =TRIM("文字列") で消去した値を左端の列ににコピー&ペーストして
普通にVLOOKUP関数使った方がいいとは思いますけど...
お礼が遅くなってしまい申し訳ありませんでした。
結局うまくいかず、手動で半角スペースを削除いたしました。
ご回答、ありがとうございました。
No.1
- 回答日時:
>どのようにして半角スペースが除けなかったことがわかったのでしょうか?
元データがA1セルにあるなら、まずB1セルに「=A1=TRIM(A1)」と入力して「FALSE」か返るか調べてみてください。
もし「FALSE」が返らない場合は、一番右の文字が半角スペースであるかどうか確認するため「=CODE(RIGHT(A1))」と入力して半角スペースの「32」が返るか調べてください。
お礼が遅くなってしまい申し訳ありませんでした。
結局うまくいかず、手動で半角スペースを削除いたしました。
ご回答、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba 15 2023/04/07 12:33
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルでのデータの統一に関して リストを作成する際、元データをコピペでリストに転記しており、元デー 2 2022/08/31 15:33
- Excel(エクセル) 【関数】ハイフン(-)を月や日に変えたい。スペースを削除したい。 4 2023/07/12 08:49
- Visual Basic(VBA) 複数の列の値を結合して別の列へ返す 2 2022/08/06 16:07
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- PHP Postgresの特定のカラムからスペースを取る方法 1 2023/02/22 13:18
- その他(Microsoft Office) 英数字のみ全角から半角に変換 4 2023/07/28 14:48
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テプラは半角数字が使えますか?
-
EXCEL95 VLOOKUP関数で半角と全角
-
Excel2016 検索の窓を常時表示...
-
半角の『°(単位の度)』
-
関数を使わずに一括で全角を半...
-
契約書や 公文書・私文書などに...
-
半角の×(かける)は?
-
メールアドレスの上ハイフン入...
-
℃の半角表示
-
EXCELの文字列操作で文字数不足...
-
エクセル関数で文字列の中のス...
-
半角スペース
-
EXCELで、セル内の半角カ...
-
Excel 文字列の中から数字だけ...
-
エクセルで、JIS関数、ASC関数...
-
エクセル 全角英文字のみを半...
-
ヘッダー(フッター)の全角・...
-
【VBA】ファイルパスに半角スペ...
-
InputBoxの入力値を半角数字の...
-
お名前(姓)」には「カタカナ(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テプラは半角数字が使えますか?
-
契約書や 公文書・私文書などに...
-
メールアドレスの上ハイフン入...
-
半角スペース
-
半角の『°(単位の度)』
-
半角の×(かける)は?
-
℃の半角表示
-
EXCELの文字列操作で文字数不足...
-
EXCEL95 VLOOKUP関数で半角と全角
-
関数を使わずに一括で全角を半...
-
エクセル関数で文字列の中のス...
-
【VBA】ファイルパスに半角スペ...
-
半角の漢字の入力方法
-
EXCELで、セル内の半角カ...
-
Excel 文字列の中から数字だけ...
-
ビジネスの文書における、数字...
-
1, (1),(1)の使い分け
-
Excel2016 検索の窓を常時表示...
-
Excel セル内の文字と数字をわ...
-
エクセルで、JIS関数、ASC関数...
おすすめ情報