こんにちは、ハルです!
「VLOOKUPの数式は合っているはずなのに、なぜか#N/Aになる」
これ、Excelあるあるの中でもトップクラスにイライラする現象ですよね・・
品質管理やデータ整理の仕事をしていると、
一度は経験したことがあるのではないでしょうか?
私自身も、品質データの照合作業をしていた
頃に何度もこのエラーに悩まされました・・・
特に厄介だったのが、
「どう見ても同じ文字の羅列なのに一致しない」
というケースです👈
数式を見直しても間違いが見つからず、
参照範囲も合っている
それでも#N/Aが消えないので、
「VLOOKUPがおかしいのかな?」
と思っていました
ところが原因は、
データの最後に入っていた
たった1文字分の半角スペースでした
原因がわかれば数秒で直せるのですが、
わかるまでは意外と時間を取られます・・
もし、今まさに
「数式は合っているのに#N/Aが消えない…」
という状況なら、この記事を読み終わる頃には解決できると思います👍
【VLOOKUPで#N/Aが出る原因】
例えば検索したい値が
「A101」
だったとします
しかし、参照先データが
「A101□」
(末尾に半角スペース)
になっていた場合、Excelは
別の文字列として認識します
人間の目には同じに見えますが、
Excelは完全一致で判定するため、
「一致するデータが見つからない」
として#N/Aを返します
これがVLOOKUPで発生するエラーの中でも
特によく見かける原因の一つです
さらに、
・前に入ったスペース
・後ろに入ったスペース
・全角スペース
・CSV取込時に混入した不要文字
なども同様の原因になります。
解決策①
置換機能で空白を削除する
急ぎで解決したい場合は、
Excelの置換機能が便利です。
【手順】
1. Ctrl + H を押す
2. 「検索する文字列」に半角スペースを入力
3. 「置換後の文字列」は空欄
4. 「すべて置換」をクリック
これだけで不要なスペースを
一括削除できます👍
解決策②
TRIM関数を使う
データを頻繁に取り込む業務では、
TRIM関数を使う方法もおすすめです!
=VLOOKUP(TRIM(A2),参照範囲,列番号,FALSE)
TRIM関数を使うことで、
検索前に余計な空白を自動で除去できます
毎回置換する手間がなくなるため、
定期的なデータ処理では特に便利ですね!
解決策③
VBAで空白を一括削除する
毎回置換やTRIM関数が面倒な場合は、
マクロで一括処理する方法もあります👈
■ コピペで使える空白削除マクロ
Sub TrimColumnA()
Dim LastRow As Long
Dim i As Long
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
Cells(i, "A").Value = Trim(Cells(i, "A").Value)
Next i
MsgBox "空白削除が完了しました!"
End Sub
■ 使い方
① Alt + F11 を押す
② 挿入 → 標準モジュール
③ 上記コードを貼り付ける
④ マクロを実行する
これでA列の余分な空白を一括削除できます👍
それでも繰り返し発生するなら
"自動化"を考える
ただ、
・毎日データを取り込む
・毎回スペースを削除する
・毎回VLOOKUPを確認する
という作業を続けていると、
結局は同じことの繰り返しになります、、、
私も以前はデータ整理や照合作業に
かなりの時間を使っていました
ですが、よく発生する作業はExcelマクロ(VBA)で自動化するようにしたことで、
作業時間を大幅に減らすことに成功しました!
「人がやる必要のない作業はExcelに任せる」
ようになってからは、
確認作業そのものがかなり楽になりましたね
Excel業務を効率化したい方へ
現在、私が実務で使用しているExcelマクロをココナラで公開しています。
例えば、
・データ照合
・重複削除
・シート結合
など、現場でよく発生する作業を
"ボタン一つ"で実行できるようにしています!
私自身が「毎回面倒だな」と感じていた作業をもとに作ったものなので、
同じような業務をされている方には、
役立つかもしれません👈
今回ご紹介したマクロは
「空白削除だけ」のシンプル版です。
私が実務で使っている完成版は、
・データ照合
・重複削除
・シート結合
などもボタン一つで
実行できるようにしています!
特に「毎日同じExcel作業を繰り返している」という方には、かなり時間短縮になると思います。
▼ 実務効率化マクロ3点セット
(即時ダウンロード版)
まとめ
VLOOKUPで#N/Aエラーが出る場合は、まず「目に見えない空白」を
ぜひ疑ってみてください
・置換機能で削除する
・TRIM関数を使う
・マクロで自動化する
この3つを知っているだけでも、
多くのトラブルは解決できます
また、VLOOKUPだけでなく、
XLOOKUPやその他の照合処理でも
空白はエラーの原因になります
もし今、
「毎回同じExcel作業を繰り返しているな」
と感じているなら、一度その作業を
自動化できないか一度考えてみてください!
最後までお読みいただき、
ありがとうございました🙇♂️