• ベストアンサー

VLOOKUPで別ファイルから検索その3

D7セルに下記のような数式を入れました。 =IF(D1="","",VLOOKUP(D1,'K:\資料\[名簿.xls]Sheet1'!$A$2:$F$10000,2,0)) 名簿.xlsは   A     B     C    D    E       F    G 顧客NO. 顧客名 フリガナ 住所 郵便番号 電話番号 備考 を入力した住所録なのですが、試しに5件分ほど作ってみたところ、うまくいきました。 ところが、実際に900件ほど作ってみたところ、D7セルに、#N/Aの表示が出てしまいます。 どうして件数を増やすと機能しないのでしょうか?

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

  • ベストアンサー
noname#99913
noname#99913
回答No.2

単に検索値が見つからないだけでは? 検索の型にFalse(0)を指定すると、完全に一致したものだけを探し、見つからなければN/Aエラー値が返されます。 ところで、式は次のようにしたほうがいいのでは。 =IF(D1="","",VLOOKUP(D1,'K:\資料\[名簿.xls]Sheet1'!$A:$F,2,False)) これだと、A列からF列のすべての行から検索でき、後でデータが増えたとき(10000を超えたとき)に書き直さずに済みます。

yunako0517
質問者

お礼

問題は解決しておりませんが、ひとまず質問を締め切ります。 お二人とも回答ありがとうございました。 またよろしくお願いします。

yunako0517
質問者

補足

回答ありがとうございます。 中身を同じように作っている名簿ファイルがもうひとつあるのですが、そちらのデータを使えばうまくいきました。 中身の違いとしては、入力内容とセル幅とセルの着色の違いくらいで、色はどちらも旧バージョンのエクセルに対応している色を使っています。 セルの書式も変えていないし、入力内容の違いと言えば、住所変更したために書き換えていることくらいです。 どうしてでしょう?

その他の回答 (1)

  • syuyama
  • ベストアンサー率34% (72/209)
回答No.1

ちょっと、なぜうまくいかないのかは分かりませんが、 ためしに以下の関数に変えてみてください。 =IF(D1="","",VLOOKUP(D1,'K:\資料\[名簿.xls]Sheet1'!$A:$F,2,FALSE))

yunako0517
質問者

お礼

回答ありがとうございます。 教えていただいたように書き換えてみましたが、ダメでした。 やはり#N/Aが出てしまいます。

関連するQ&A

  • VLOOKUPで別ファイルから検索その2

    あるセルに下のような数式を入れました。 =IF(D1="","",VLOOKUP(D1,'K:\資料\[名簿.xls]Sheet1'!$A$2:$F$991,2,0)) 今私が使っているのはエクセル2007なのですが、互換性のチェックを行ったところ、『このブックで使用されている機能は以前のバージョンの形式で保存すると、正常に実行されなくなる可能性がある』という表示が出ました。 エクセル2002などでも使えるファイルにしたいのですが、どうすればよいのでしょう?

  • VLOOKUPで別ファイルから検索

    現在売上帳をエクセルVBAで作っています。 その中で、顧客NO.を入力すれば顧客名や住所が表示されるように、VLOOKUPで同ファイル内の別シートの顧客名簿から検索できるようにしているのですが、この顧客名簿を別ファイルで作っても検索されるようにできるのでしょうか? やり方を教えてください。 よろしくお願いします。

  • エクセル「VLOOKUP」の使い方

    エクセル2000です 「名簿&住所録」シートを検索して、その人の電話番号を表示しようとしています。 例. =VLOOKUP("山田 太郎",'名簿&住所録'!F:M,7,FALSE) この"山田 太郎"の部分を、可変(セル「A1」や「A2」)に指定できないでしょうか? 例. =VLOOKUP(A1,'名簿&住所録'!F:M,7,FALSE) ヘルプを見ましたが分からなくて、、、

  • エクセルVBAで、名簿の住所を検索

    エクセルで下記のように顧客名簿を作っています。   A     B     C    D    E       F    G 顧客NO. 顧客名 フリガナ 住所 郵便番号 電話番号 備考 VBAを使って、同じ地域に住んでいる人をオートフィルタで抽出したいのですが、どうすればよいのでしょう? 例えば、『西区』と入力すれば、住所内に『西区』が含まれる人全部が抽出というようにしたいのですが。 入力する単語はその都度変わります。 どなたかアドバイスください。 よろしくおねがいします。

  • エクセルのVLOOKUP関数で他のブックから正しく参照されないセルがある

    台帳xxxx.xlsファイルで住所録.xlsファイルを参照しているのですが最近正常動作しません。 住所録.xls というブックには、メンバーの住所録が入っています。 A列氏名、B列フリガナ、C列電話番号 という項目になっています。 台帳xxxx.xls側には A列連番、B列氏名、C列フリガナ、D列電話番号・・・になっています。 例えば台帳0712.xls というブックには日々のメンバーの動きを記録しており、 Bのセルに氏名を入れればその右側にフリガナ、電話番号が、住所録.xlsから参照されて自動入力されるようになっています。 台帳ファイルは原本を複製して 台帳0713.xls、台帳0714.xls・・・と日々増えていきます。 現在、住所録.xlsは600行を超えてきたのですが、最近、台帳xxxx.xls に氏名を入れるとフリガナ、電話番号の欄がうまく参照されず"0"(ゼロ)と表示されてしまいます。 正しく表示される名前とされない名前が出てきました。 600番台以降の人に多い気がするのですが定かじゃありません。 なぜならその氏名を上位のセルにコピーしても参照結果が"0"だからです。 具体的には、 例えばC列の数式は =IF(B2="","",VLOOKUP(B2,[住所録.xls]sheet!$A:$C,2,FALSE)) で、フリガナが自動入力されるようになっています。 ※氏名が未入力のときは"#N/A"のエラー表示がされないようにしています。 どうして"0"が入ってしまう場合があるのでしょう。 行数に限界があるのか疑問です。 またはもっといい方法があれば教えてください。

  • [EXCEL]VLOOKUP関数がうまくいかないので助けてください

    あ.xls   B  C  1 10   2 12 3 15 い.xls   B  D 1 10 100 2 15 150 3 18 180 あ.xlsファイルのC列に、 あ.xlsファイルのB1セルと、い.xlsファイルのB1を見比べて同じ値なら、 い.xlsファイルのD1の値をあ.xlsファイルC1に値を表示する数式を 入力しようと思います。 「=VLOOKUP(B1,[い.xls]Sheet1!$1:$3,4,false)」と あ.xlsファイルのC1セルに数式を入力しましたが、すべてエラー(#N/A)で 返ってしまいます。 正常に機能するよう、数式を教えてください。

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

    タイトルの件、質問します。 下記の図のとおり 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関数について教えていただきたいのですが、 数式が、=VLOOKUP(D2,Sheet2!A1:B132,2)で、結果も(例、”顧客名”)と正しく表示されているのですが、実際のセルに表示されるのは関数の数式で結果が表示されません。なにか表示の方法があるのでしょうか。officeは2003で、OSはXPです。お分かりのかた力を貸してください。

  • VLOOKUPの検索値について

    エクセルでVLOOKUPの関数を使うときの「検索値」に関する質問です。 この「検索値」が数式結果だと反映されませんよね? そこで範囲指定をして、「値だけコピー貼付」をしたのですが、 やっぱり反映されません。 <sheet1>   A      B      C     D 1 123    りんご    10円    XXX 2 124    みかん    20円    YYY 3 125    めろん    30円    ZZZ 4 126    かき     40円    QQQ   ↑   この「123」や「124」が   別のシートからVLOOKUPで「DのセルがXXXなら123にする」   という数式の結果なんです。 この<sheet1>を利用して、別の<sheet2>に VLOOKUPで「“123”と入力したら“りんご”となる」 というようにしたいのですが、 この“123”“124”が数式結果のため、反映されません。 値だけ貼り付けても反映されません。 上書きで“123”“124”と入力すれば反映されますが 数が多いので困っています。 初心者なので、できるだけわかりやすく教えていただけたら 嬉しいです。

  • vbaにvlookupを組み込む

    お世話になります。 エクセルのマクロにvlookupを組み込みたいのですが,エラーが出てしまいます。 用意したものは「顧客名簿」というシートで,A列に顧客番号(6ケタの数字),B列に顧客名が入っています。C列以降はその他のデータが入っています。 「トップメニュー」というシートにあるマクロボタン「顧客抽出」を押すと,インプットボックスが現れます。これに顧客番号を入力すると,メッセージボックスが現れます。 この時のメッセージボックスに,インプットボックスに入力された番号により「顧客名簿」から顧客名を取り出し,「○○さんのデータを表示しますか」としたいのですが,ここでエラーが出ます。(○○は,「顧客名簿」のB列にある名前です) 実行時エラー 1004 WorksheetFunctionクラスのVLookupプロパティを取得できません。 組んであるマクロは以下の通りです。 Sub 顧客抽出() Dim ans As String, ans2 As String     ans = InputBox("顧客番号を入力", "入力", "")         If ans = "" Then             MsgBox "顧客番号が空白です" & vbNewLine & _                "処理を中止します", vbOKOnly         Else             If WorksheetFunction.CountIf(Worksheets("顧客名簿").Range("A1:B5000"), ans) = 0 Then                 MsgBox "顧客番号が登録されていません", vbOKOnly             Else                 ans2 = WorksheetFunction.VLookup(ans, Worksheets("顧客名簿").Range("A1:B5000"), 2, False)                 If MsgBox(ans2 & " さんのデータを表示しますか", vbYesNo) = vbYes Then                     Sheets("顧客情報").Select                     Range("D4").Value = ans                 Else                     MsgBox "処理を中止します", vbOKOnly                 End If             End If         End If End Sub 途中にある ans2 = WorksheetFunction.VLookup(ans, Worksheets("顧客名簿").Range("A1:B5000"), 2, False) の部分でエラーが出るのですが,解決策が見当たりません。 おそらくRange("A1:B5000")の部分に不具合があると思うのですが,どう対処すればいいでしょうか。 詳しい方,ご教授願います。

専門家に質問してみよう