|VLOOKUP関数使っている時に、検索値が範囲の中に絶対あるはずなのに#N/Aになる!っていうことありませんか?実はそれ検索値や範囲が数値に見えるのに、Excelは値として扱っている可能性があります。A6セルに「5」という数字があるからVLOOKUPの結果は「お」が返ってこないとオカシイです。数値なのか文字列なのかExcelって数値と文字列の取扱いがキチンと分けられているんです。上の例ではA列の数字を文字列で入力しました。文字列で入力するのは、先にセルの書式設定で表示形式を「文字列」に選択してから1と入力します。通常、数字なのに文字列として扱われている場合、Excelは以下のように知らせてくれます。セルの左上に緑の三角形が出ます。これはこのセル間違い無いですか?大丈夫ですか?という印です。セルを選択すると、どういう内容かメッセージが出てくる。今回は「数値が文字列として保存されています」です。数値へ戻し方(エラーメッセージがある場合)このメッセージの「数値に変換する(C)」を選ぶと自動的に数値に変換してくれ、VLOOKUPもエラーから元に戻ります。複数行・列ある場合は複数行選択したうえで、「数値に変換する」をクリックすれば一気に直ります。数値への戻し方(エラーメッセージが無い場合)ややこしいのはエラーメッセージが消えている場合です。この場合先ほどの手法が出来ません。セルの書式設定で数値に変えても、実はダメなんです。これはセルの書式設定は表示形式を変更するだけで、セルの内容編集は行った事になっていないからです。いうことはVLOOKUPで計算している範囲内も再計算されない為、文字列のままの認識です。これではエラーが解消されません。面倒くさいですが、いちいちセルを再編集する必要があります。繰り返しキーボードのF2を押すとセルの編集モードになります。そのままEnterキーを押すと、再編集したことになりますので、数値として認識されます。マクロで走らせるもう一つの手法は、マクロでF2→Enterを繰り返しさせる方法です。何万行という行数があれば手動でやるのは流石に大変なので、マクロで全セルを再編集させる事です。再度エラーメッセージを表示させるこれが一番やりやすいです。行い、その後に「元に戻す」をします。するとエラーメッセージを再度表示させる事が出来ます。後は複数行選択し、「数値に変換する」をすれば一気に変換出来ます。上の例では、ただ単純に入力時に文字列になってしまった場合です。それに対して、数式で文字列になってしまっている場合があります。それは数値と数値を&で結合した場合です。この場合もC列の結果は文字列として扱われます。検索値「15」はC6セルにあるので、VLOOKUPの結果は「お」になって欲しいですが、やはり#N/Aとなります。この時は「数値が文字列として保存されています」メッセージが出ないのです。文字列なので標準だと左寄せになっているので、そこで気付けるかもしれません。数値にする文字列を数値に変換する関数があります。それはVALUE関数です。すればC列の結果は数値として扱われるのでVLOOKUPが正常になります。検索値を文字列にするもしくは、C列の計算式が変更出来ないのであれば、検索値を文字列で検索すれば良いです。この例ですと「15」を文字列にしてしまいます。関数はTEXT関数を使います。すればVLOOKUPはエラーになりません。AMもう一つの手法は、マクロでF2→Enterを繰り返しさせる方法です。何万行という行数があれば手動でやるのは流石に大変なので、マクロで全セルを再編集させる事です。この箇所を説明に従って実施しても、うまく処理できないのですが詳しく教えてください。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。▼お小遣い稼ぎしませんか?▼クレジットカード・FX口座を作るだけで簡単に3万円GETです。一切支出はありません。図形Profile関西在住の30代サラリーマン。事務職で毎日Excelと戯れています。システム導入なんて資金が無い!Excelでなんとかやりたい零細中小の社長さん・事務員さんの力になればと思います。