- ベストアンサー
VLOOKUPで上手く表示されません
以下のような商品の一覧を作成し、A列からコード番号(00000)項目、商品名、単価と表を作成しました。(100品目ほど) ≪例≫ A列 B列 C列 D列 S列 T列 U列 V列 00001 文房具 ノート \120 00001 文房具 ノート \120 01252 飲料水 お茶 \150 08012 #N/A #N/A #N/A 08012 文房具 鉛筆 \100 ⇒ 00002 衣料品 Tシャツ \3000 00002 衣料品 Tシャツ \3000 06509 #N/A #N/A #N/A 06509 書籍 雑誌 \500 00003 食品 ガム \120 関数 T1=VLOOKUP(S1,A1:D6,2,FALSE)=文房具(それぞれの列番号を参照) 上記のように他の列で売り上げた分だけを抽出したいのでVLOOKUPを使ってコード番号を入力すると検索できるように関数を作りましたが上手く出ません。 00001や00002は普通に出るのですが00001の次に08012を入力すると#N/Aが出てしまいます。 商品のコード表を並び替えても00001は出ますが08012は#N/Aが出てしまいます。 どうしたら上手く表示できるのでしょうか???
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
きちんと表示されましたが…。 A列をみると「00001」などとなっていますが文字列になっているのでしょうか? (私はそう設定しました。) そうなるとS列も文字列にしないと同じものとして表示されません。 それとVLOOKUPの式ですが、 T1=VLOOKUP(S1,A1:D6,2,FALSE)=文房具(それぞれの列番号を参照) となっていて、T2に入力した時は、T1をコピーしたのでしょうか? そのときの範囲指定はきちんとA1:D6になっていますか? このA1:D6は絶対変わらない範囲なので、$マークをつけてしまうことをオススメします。 (相対参照から絶対参照になります。) 以上の点に気をつけてもう一度トライしてみてください。 (すでに実施済みでしたらすいません。)
その他の回答 (4)
- oresama
- ベストアンサー率25% (45/179)
元データが空白であれば、 =IF(ISBLANK([元データ.xls]リスト!$A$1),"",TEXT([元データ.xls]リスト!$A$1,"0000#")) 0が入っている(白字や書式が"")場合でしたら、 =IF([元データ.xls]リスト!$A$1=0,"",TEXT([元データ.xls]リスト!$A$1,"0000#")) これでいかがでしょう?
お礼
おお!出来ました。 ありがとうございます。 コレで見るだけの人も見苦しくない表になりました。 考えればすごく簡単なことだったんですね。 煮詰まるとこんな些細なことも思いつかなくなります。 それにしても関数は奥が深い…
- oresama
- ベストアンサー率25% (45/179)
補足の質問内容が今ひとつ不明瞭ですが、 こちらで勝手に解釈させていただきますと、 元データは数列で出来ているものを、 そのままコピペしたので、 (ユーザー書式設定も残っている) あると考えられます。 具体的には、 00001は 1を00001に見せているということです。 そこで、どこかに、列を挿入し、 =TEXT(A1,"0000#") をペーストすれば、 完全に、00001という文字列になりますよ。 的外れでしたら補足をいただければと思います。
補足
回答ありがとうございます。 とりあえず列を挿入せずに直接関数を入れてみました。 元データは他のファイルですがA列の式には TEXT=([元データ.xls]リスト!$A$1,"0000#")にしたところ 元データのリストのコード番号が空白であれば「0000」と表記されてしまいます。 0の場合は、空欄(もしくは白字)にするのはどうすればいいのかを教えていただきたいのですが… コード番号は5桁で表示し、品目としては100くらいあります。
参照の問題のようですね。 式を=VLOOKUP(S1,$A$1:$D$6,2,FALSE) にしてみましょう。$は式の入力途中でF4キーを押すと、そのセル番地に対してついてきますよ。
お礼
回答ありがとうございます。 絶対参照は知っていたのですがF4の使い方は知りませんでした。便利ですね。
- oresama
- ベストアンサー率25% (45/179)
> VLOOKUP(S1,A1:D6,2,FALSE) 範囲が相対参照のままではないですか? $A$1:$D$$6 (絶対参照)に変更してみてください。 それと、 A列、S列は、 書式を文字列にしてありますよね?
お礼
すぐの回答ありがとうございます。 絶対参照にはしてあるのですがうまくいかないのです。 書式は文字列ですか? 表示形式ではユーザー定義で「00000;-000000;[白]G/標準」になってるのですぐに直してみます。
お礼
No.1の回答の後すぐに文字列に直してみました。 すごいです!ちゃんと出ました。ありがとうございます。 文字列にしないといけないんですね… 私は数式なので数値として認識させないといけないのかと勝手に思い込んでいました。
補足
ごめんなさい、再度質問です。 A列~D列も別のところからコピーしているとします。 するとコード番号を文字列にすると「0」と表記されます。 表示形式が文字列でも「0」の場合空白("")もしくは[白]にしたり出来るのでしょうか?