![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
台帳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"が入ってしまう場合があるのでしょう。
行数に限界があるのか疑問です。
またはもっといい方法があれば教えてください。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?8acaa2e)
No.2ベストアンサー
- 回答日時:
「自信なし」ですが…。
#N/Aや""ならともかく、0が返るということは、
「検索はヒットしてるのに、なぜかブランクセルを参照して返してくる」
ということですよね。
ご質問の数式を検討した限りでは、そのように動作する理由というのはちょっと思い当たらないのですが、
もしかすると、以下のチェックで原因が見つかるかもしれません。
A
適当な列で、
=IF(B2="","",VLOOKUP(B2,[住所録.xls]sheet!$A:$C,1,FALSE))
として、正常に動作しない行(氏名)について、適切な氏名が返るかどうかチェックする。
B
適当な列で、
=IF(B2="","",MATCH(B2,[住所録.xls]sheet!$A:$A,FALSE))
として、正常に動作しない行(氏名)について、ヒットしている台帳側の行数を特定し、
当該行のデータに問題がないか確認する。
C
適切なブックを参照しているか確認する。
(どうも変だと思ったら、同名の古いファイルが別にあって、それを参照していたという経験があります)
・まず、「台帳xxxx.xls」 だけを開く。
数式の参照部分が、
'C:\Documents and Settings\***\[住所録.xls]sheet!$A:$C
のようにフルパスで表示されていることを確認する。
・次に、「住所録.xls」 を開く。
数式の参照部分が、
[住所録.xls]sheet!$A:$C
という表示に変わることを確認する。
D
参照範囲の行数を制限してみる。
実は、ご質問の数式を見て唯一気にかかったのがこの点です。
VLOOKUPの検索範囲の指定で、$A:$C のように列全体を指定するのはあまり見かけない設定です。
手元の環境では列全体を指定した場合でも正常に動作しましたが、いつでもうまくいくのかどうかはわかりません。
=IF(B2="","",VLOOKUP(B2,[住所録.xls]sheet!$A$1:$C$2000,2,FALSE))
のように、あらかじめ最終行を(十分に大きな行番号で)指定しておくのが一般的な書き方かと思います。
No.1
- 回答日時:
第1チェックステップは、VLOOKUP関数の第2引数は
検索に使う表ですが、その指定において
(1)番地に$が付いていますか(付いてないと複写で連れて来る)
(2)(検索に使う表について)その当初式を入れるときに、指定した範囲が、データの増加によって指定範囲よりオーバーしてませんか。
この2点まずパスしないと、前へ進めない大切な、良くあるミス事項です。
この回答への補足
回答ありがとうございます。
>=IF(B2="","",VLOOKUP(B2,[住所録.xls]sheet!$A:$C,2,FALSE))
と入れています。
「$A:$C」という指定であればご指摘の2点はクリアしてると思うのですが。何か違っていたら教えてください。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) Excel関数式で該当月日のみ表示し、それ以外の月日を空白にしたい。 1 2022/07/17 11:59
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- その他(Microsoft Office) EXCELの1行を1枚の用紙にそれぞれ印刷したい。 3 2022/10/10 11:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel分数の表示について
-
Excelについての質問です。 B2...
-
EXCELの散布図で日付が1900年に...
-
文字2桁、3桁交じりの文字列...
-
【EXCEL】画像の黄色部分の抽出...
-
マクロエクセルのブロック解除
-
絶対参照
-
Excelで表を作ったところに文字...
-
Excelピボットテーブルの1行目
-
エクセルのクイックアクセスツ...
-
DATE関数で現在の年齢を出した...
-
(マクロ)vlookupの元データを同...
-
PDFの請求明細をエクセルにしたい
-
エクセルのクイックアクセスツ...
-
REGEXREPLACE関数について、
-
職場の人から聞かれており、こ...
-
エクセルの空欄をつめて、次の...
-
ユーザー定義関数をアドイン登...
-
EXCELの質問です 119から足した...
-
エクセルの問題です。絶対値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報