【説明画像あり】VLOOKUPで、情報が呼出せない

このQ&Aのポイント
  • VLOOKUP関数を使用して情報を呼び出す際にエラーが発生し、要求した情報が表示されない問題が発生しています。
  • 呼出先のブックに指定したNOが存在する場合は正常に情報が表示されますが、一部のNOにおいてはエラーが発生し、情報が表示されません。
  • エラーの原因は、呼出先ブックのセルの表示形式が問題となっており、特定の表示形式では情報が呼び出されないことがわかりました。具体的な表示形式についての解決策を教えていただきたいです。
回答を見る
  • ベストアンサー

【説明画像あり】VLOOKUPで、情報が呼出せない

タイトルの件、質問いたします。 まず、下記のような、関数を組んでいます。 呼出ブック【図1、図2】:B2セル↓↓ =IF(ISERROR(VLOOKUP(SUBSTITUTE($B$1,"-",""),[検索先.xls]Sheet1!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE($B$1,"-",""),[検索先.xls]Sheet1!A:C, ※本関数は、教えてgoo回答者様にご教授いただきました。 呼出ブックのB1セルに、検索先ブック_Sheet1【図3、図4】のNOを入力すると、B2セルに情報が呼び出されます。 例:呼出ブックB1セルに 20012 と入力すると 呼出ブックB2セルに 佐藤 と表示される 例:呼出ブックB1セルに 20013 と入力すると 呼出ブックB2セルに 鈴木 と表示される しかし、 図3のとおり 検索先ブックの、A3【20012】、A4【20013】は、呼出されますが 検索先ブックの、A2【20011】       は、呼出されません。←【問題】 理由は、図5のとおり A2とA3、A4セルを、よく見ると、違いがあります。 A2セル    には、何のエラーもありませんが A3セル、A4セルには、緑色の三角のマークがあります。 図3のとおり、A3セル、A4セルには、!マークがありクリックすると 【数値が文字列として保存されています】とあります。 図4のとおり、セルの書式設定で調べると、確かに表示形式が、文字列となっています。 エラーの指示に従い、A3、A4セルを、【数値に変換する】にすると A2セルのように、エラーがなくなります。しかし、Vlookup関数が、きかなくなり、呼出ブックに 番号を入力しても、呼び出されなくなります。 セルの書式設定で、表示形式を、【文字列】、【標準】、【数値】として変換しますが、まったく、呼び出せません。 検証した結果、 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 表示形式を何に変更するというより、 緑サンカクの、エラー表示があるものは、呼出される 【どんな、表示形式でも:文字列、標準、数値】 緑サンカクの、エラー表示がないものは、呼出されない【どんな、表示形式でも:文字列、標準、数値】 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ご存知の方、vlookup関数が、呼出せる、セルの書式設定を教えてください。宜しくお願いします。 【エクセルバージョン】 2007、2003では確認していませんが、今後は、運用します。 ファイル系先は、xlsで保存しています。 【図4の詳細】 A B 1 20011 佐藤 2 20012 鈴木 3 20013 高橋

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

今までの数式は,緑の付いている「文字列」を呼び出せる数式にしてあります。 これはあなたのこれまでのご相談の添付画像で,「ゼロから始まっている(緑の付いた)数字」が特に目立ったからです。 ゼロから始まる数字は,原則として緑を付けて文字列にしておかないと,ゼロから記入できません。 しかしこの数式では,今回ご質問のように緑のついていない数字のセルは呼び出せません。 逆に緑の付いていない数字を呼び出したい場合,数式の方を変えないといけません。 「どっちも区別なく呼び出せる」VLOOKUPの使い方はありません。 対策としては 方法1)全ての数字を緑付きの文字列に統一する【推奨】 方法2)今の数式を更に複雑にして,緑が付いた場合と緑が付いてない場合をそれぞれ想定してどっちが来ても呼び出せるように仕込みを増やす【簡単ですが推奨できません】 方法3)実はゼロから始まる数字を呼び出すというこれまでのサンプルがウソだったので,今回のサンプルの20012のようにゼロから始まらない「数値」に統一する【全てやり直すならこれも良い】 のどれかになります。 【推奨】 緑の付いていないA列を列選択 データメニュー(またはデータタブ)の区切り位置を開始, 何も指定せず次々送り,ウィザードの3/3画面で明示的に「文字列」の設定にマークしてOKする 緑が付いたことを確認する 数式は今まで通りで使う 【すべてやり直す】 緑の付いているA列を列選択 データメニュー(データタブ)の区切り位置を開始, 何も指定せず次々送り,ウィザードの3/3画面で明示的に「標準」の設定をマークしてOKする 緑が消えたことを確認する 数式は IF(ISERROR(VLOOKUP(SUBSTITUTE($B$1,"-","")*1,[検索先.xls]Sheet1!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE($B$1,"-","")*1,[検索先.xls]Sheet1!A:C, とする。 おまけ: この場合に「ゼロから始まる数字」をセルに表示するには セルの書式設定の表示形式のユーザー定義で 00000000 などのように設定を付けて表示させる 参考: 単純に前回の応用で, =IF(ISERROR(VLOOKUP(SUBSTITUTE($B$1,"-","")*1,[検索先.xls]Sheet1!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE($B$1,"-","")*1,[検索先.xls]Sheet1!A:C, &IF(ISERROR(VLOOKUP(SUBSTITUTE($B$1,"-",""),[検索先.xls]Sheet1!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE($B$1,"-",""),[検索先.xls]Sheet1!A:C, と更に式を倍に増やせば,緑でも緑無しでもどっちが来ても対応できます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

エクセルのほんとに基本的なことが判ってないので、無駄な労力を費やしている。 こういうのはスクールでも行ってじっくり学ぶか、経験を積むうちに会得するか、するのだろう。 ーー エクセル関数で (1)対象にするのは、「セルの値」です。 (2)セルの情報は、セルの値のほかに、表示形式や、数式や、コメントや、入力規則ほか色々あります。 (3)このうち、エクセル関数で対象にするのは「セルの値」だけです。 結果もそのセルの「セルの値」だけしか、返し様が無いのだ。 (4)だからセルの表示形式で、文字列に見せても、解決にならない。 セルの値の数値を文字列に変えるにはTEXT関数などがあり、数字文字列を数値に直すかんすうもある。 しかし計算ソフトが主流のエクセルでは、数字文字列を数値化するお節介場面が相当あるので、つい両者の違いに鈍感に也勝ち。 VLOOKUPは記を気化してくれない比較をおこなう。 (5)関数の対象とは、関数の「引数」といわれるもの(関数の位置)で指定するデータで、主にセルの番地で表されるセルの値です。 ーー そのほかに、 (6)エクセルのセルの値には、主なものは、数値と文字列で、日付も数値で表されます。 この区別が大切なことを気づいていない。 ーー VLOOKUPの検索表で行ごとにバラバラなら統一するほか無い。 (1)元データを修正するか、(2)関数で統一するか。 別列に文字列をだすか、式の第1引数の部分で変換するか。 例 G1:H2に 111 a 123 b <-G2は’123ー数値 ーー A2:A3にデータがあるとして B2の式は =VLOOKUP(VALUE(A2),$G$1:$H$2,2,FALSE) 123 b <--数の123 123 b  <-'123 で文字列 (3)検索表に両方持つか G1:H3 111 a 123 b <--G2は数値 123 b <--G3は文字列(’付き) ーー 上と同じく 123 b <ーーA6は値 123 b <--A6は文字列 ーー 式は=VLOOKUP(A6,$G$1:$H$3,2,FALSE) ーーー 検索表のセル番地は$を漬けておいたほうが良い。

回答No.1

数値(計算できる値)と数字(文字列)の違いを認識しましょう 数式で表すと =1="1" はFALSEとなり、検索できないと考えます で、ど知らかに統一する必要があると思います。 計算する可能性があるなら数値で統一し、必要ないなら数字にしてはどうでしょうか? セルの書式設定で書式を変更しても数値と数字の変換は完成しませんので、 別列に計算後、コピー&値の貼り付けなど、もう一捻り必要となります。

関連するQ&A

  • VLOOKUP関数について教えてください。

    たとえば、「定期預金」という文字列をSHEET1から検索すると、セルA5に見つけたとします。 そしてそのセルから、右に3、下に10の位置にあるセル(D15)の数値を、SHEET2に表示させたい場合はどのような計算式を入れればいいのでしょうか? (B5だったらE15の数値というように) またこのような場合、VLOOKUP以外の関数のほうがよければ教えてください。よろしくお願いします。

  • VLOOKUPについて!

    VLOOKUP関数を使用する時、検索値に1111や1112や000を入力して値を返したいのですが、1111や1112はセルの書式設定の表示形式で標準でいいと思うのですが、000の場合は書式設定の表示形式で文字列にしないといけないと思うのですが、そうすると入力するセルの書式設定はどのようにしておけばよいのですか? 標準だと、000の時0と表示されて#N/Aとなりますし、 文字列だと、1111や1112の時#N/Aになってしまいます。 お願い致します。

  • Vlookupで画像と文字の組み合わせを利用したい

    Excel2003 で図のように オートシェイプと文字を組み合わせたセル(A1:B3)を vlookup関数でD1に数字(1列目)を入力してE1に 表示させたいのですが、可能でしょうか?

  • Vlookupの使い方

    下記のような写真の図でVlookupは使えるのでしょうか? たとえば 検索列が一番左になく、vlookupで文字が一致した場合、その列より左にある列の文字を返すというのは可能なのでしょうか? たとえば   A B     C D No 順位  名前  売上 1   4   佐藤  5 2   3   加藤   6 3   2   木村   7 4   1   小暮   8 名前でVlookupで一致した人の順位を表示する、などできるのでしょうか? 教えてください。 下記のエクセル図でどのようにすればいいでしょう? 施設名で検索し、一致した施設のNoや順位の列を表示することは可能でしょうか? Vlookupで無理な場合、何かやりかたがあるでしょうか? 教えてください

  • 別ブックから数字を置換えてデータを呼出【画像あり】

    タイトルの件、質問します。 下記の図のとおり 2つのブックがります【呼出ブック、名簿ブック】  ■名簿ブックは、通常は開いていません。  ■2つのファイルの保存場所は、違う場所を想定しています。  ■NOの規則性は、全くありません。 ●呼出ブック【Sheet1】のB1セルに、 001-001-001 と【ハイフンを付けて】入力すると ● ⇒呼出ブックのB2セルに 名簿ブックから、名前が ● ⇒呼出ブックのB3セルに 名簿ブックから、住所が 呼出される。 ※数字、記号は、全て半角です。 【参考】 NOが001001001【名簿ブック】とハイフンを付けずに、同じ形式を入力すると 下記の数式で表示できます。 呼出ブックB2セル⇒ =VLOOKUP(B$1,[名簿.xls]Sheet1!A:C,2,FALSE) 呼出ブックB3セル⇒ =VLOOKUP(B$1,[名簿.xls]Sheet1!A:C,3,FALSE) ※上記数式は、教えてgoo回答者様に、ご教授いただきました。 ※名簿ブックは、呼出ブックと違う場所にあり、ファイルは閉じています。 【エクセルバージョン】 2003以下

  • VLOOKUPの検索値の集計について

    複数シートのデータをVLOOKUPを使って、sheet1(B2~B50)に検索表示させ、更にその値を縦集計し、sheet1(B1)に表示させたいのですが、検索値が文字列のため集計ができません。 VLOOKUPの式に、文字列を数値に変換するように組み込む方法があれば教えてください。 (元データの表示形式は「標準」になっております。) sheet1(B2~B50)には、現在このような式を入れています↓ =IF(COUNTIF(sheet2!$A$2:$E$50,sheet1A!$2),VLOOKUP(sheet1!$A2,sheet2!$A$2:$E$50,2,FALSE)*1,"")&IF(COUNTIF(sheet3!$A$2:$E$50,sheet1!$A2),VLOOKUP(sheet1!$A2,sheet3!$A$2:$E$10,2,FALSE)*1,"")

  • エクセル VLOOKUP について

    エクセルのVLOOKUP関数について質問です。 VLOOKUPでは文字列検索で、指定の値(文字列)を含むという検索値はできないのでしょうか? 現在A列に検索したいワードを含む文章が入っており、ワードを含む列の2番目のセル(Bの列)を 別シートへ呼び出そうとしたのですが、エラーになってしまします。 例えば、「りんご」という言葉を含む文章、含まない文章がある列で、検索値を「りんご」にして VLOOKUP関数を使用する事はできないのでしょうか? エラーになってしまうので、別シートにりんごと入力したセルを作成し、セル番号で指定してみたり、 書式設定を確認したりとしたのですが、成功しません。 もちろんFALSE(0)でもTRUE(1)でも試したのですが、できませんでした。 無理ですか?どこか自分が間違っていそうな点をご指摘いただけませんでしょうか?

  • エクセル VLOOKUPについて

    こんばんは。 VLOOKUPを使って下記のA列の数字の中に、B列の数字が含まれているかどうか、 検索したいのですがうまくできません。A列とB列の数字が数値型と文字列で異なる為かと考え、 全部数値型に設定しましたがだめでした。 A列の数字の前に「00」がついただけで検索はうまくいかないものなのでしょうか。宜しくおねがいします。    A          B 003333     3333 004444     4444 005555     5555

  • VLOOKUP関数

    式は正しくできあがったと思うのですが、 参照する値が最初からA列に入っているのですが 後からB列にVLOOKUP関数を入れてもエラーになってしまい、A列の参照する値をもう一度上書きするとB列に正しい値が表示されます。 参照元と参照先の表示形式も同じですし、半角、全角を間違えている事もありません。 セルによっては、A列にただ上書きするだけでB列が表示されるものと、A列に参照元の値をコピペしないとB列が表示されないものがあります。 正しい値が表示されるので、式自体は間違えていないと思うのですが、何がおかしいのかわかりません。 よろしくお願いします。

  • Vlookupの応用?

    通常、VLOOKUPを使い、検索する場合は、 =VLOOKUP(検索値,範囲,列位置,検索の型)となると思います。 このうち、検索値と範囲(の左端)、列位置をどこかのセルから取得するにはどのようにすればよいでしょうか? たとえば、 A1セルには1と入力(A列を参照)、B1セルには2と入力(B列を参照)、C1セルには3と入力すると、 A3セル=VLOOKUP(A3,B:Z,3,false) となるようにしたいのですが、どのようにすればよいでしょうか。 お願いします。

専門家に質問してみよう