『LOOKUPでエラーになる…』(エクセリオン) LOOKUPを使い表示させたいのですが、#N/Aか0しか表示されません。 関数をよく理解していない為、原因が分からないのでご協力願います。 sheet1にベンダーコード・ベンダー名・商品番号・商品名が下記のように入力されています。   ベンダーコード ベンダー名 商品番号 商品名 1    10      あ     100    か 2    20      い     200    き 3    30      う      300    く 4    40      え     400    け 5    50      お     500    こ sheet2に商品の詳細とベンダーコード・製造者名が下記のように入力されています。  商品詳細 ベンダーコード 製造者名 1 zzzzz 10 A 2 xxxxx 10 B 3 ccccc 10 C 4 vvvvv 10 D 5 bbbbb 10 E 6 nnnnn 20 F sheet3にベンダーコード・ベンダー名・商品番号・商品名・製造者名が「LOOKUP」で算出し表示されます。   ベンダーコード ベンダー名 商品番号 商品名 製造者名 1    10      あ     100   か   A 2 10      あ     101   さ G 3 10      あ     102   た H 4 10      あ     103   な I 5 10      あ     104   は J sheet3の商品番号が入力されると、 =LOOKUP(C1,sheet1!C:C,sheet1!A:A) ベンダーコードが表示 =LOOKUP(A1,sheet2!A:A,sheet1!C:C) 製造者名が表示 商品番号からベンダーコード・製造者名を出したいのですが、#N/Aか0としか返ってきません。 どうしてでしょうか?? 商品番号をLOOKUPではなく手入力した場合は正しく表示されます。 LOOKUPを用いるのが間違いなのでしょうか…? エクセル等弱いもので原因が分かりません。 説明が分かりづらく(直しても表が直らなく…)申し訳ありませんが、よろしくお願います。 ---- こんばんは LOOKUPのヘルプには 検査値が見つからない場合、検査範囲内で検査値以下の最大値が、一致する値として使用されます。 検査値が検査範囲に含まれる最小値よりも小さい場合は、エラー値 #N/A が返されます。 と書いてあります。 また、 LOOKUP 関数が正しく機能するように、検索されるデータを昇順で並べ替える必要があります。昇順で並べ替えられない場合は、VLOOKUP、HLOOKUP、または MATCH の各関数の使用を検討します。 とも書いてありますので、MATCHを使った方がいいと思います。 Sheet3のセルA1に =IF(ISNA(MATCH($C1,Sheet1!$C:$C,0)),"",OFFSET(Sheet1!A$1,MATCH($C1,Sheet1!$C:$C,0)-1,0)) としてA1以下、B1以下、D1以下にコピーして下さい。 ただし、今の条件では製造者名は特定出来ないので、E列に設定する式は作れないです。 (ウッシ) ---- ウッシ様ありがどうございます。遅くなりすみません。 >LOOKUP 関数が正しく機能するように、検索されるデータを昇順で並べ替える必要があります。昇順で並べ替えられない場合は、VLOOKUP、HLOOKUP、または MATCH の各関数の使用を検討します。 とも書いてありますので、MATCHを使った方がいいと思います。 一応商品番号順にはなっています。 >Sheet3のセルA1に… 入力しましたが、何も表示されません(汗 =IF(ISNA(MATCH($C1,Sheet1!$C:$C,0)),"",OFFSET(Sheet1!A$1,MATCH($C1,Sheet1!$C:$C,0)-1,0))                   ↑商品番号          ↑ベンダーコード   ↑商品番号 という事で良いんですよね? >ただし、今の条件では製造者名は特定出来ないので、E列に設定する式は作れないです。 どうすれば、製造者名が出る式が出来ますか? よろしくお願い致します。 (エクセリオン) ---- >どうすれば、製造者名が出る式が出来ますか? ベンダーコード(10)からだけでは、製造者名がA、B、C、D、E と5社もあるので特定できないです。 エクセリオンさんはどうしてベンダーコード(10)から、1社に絞れるハズだとお考えですか? そこをご説明いただかないと、回答側としてはどうしたらいいものか分かりません。 (半平太) 2012/12/03 23:38 ---- こんばんは 提示されたシートの内容でテストしてますか? こちらでは結果が表示されています。 Sheet1に無い商品番号をSheet3に入力したら何も表示されません。 製造者名については 半平太さんのご指摘の通りです。 Sheet2の見直しが必要です。 (ウッシ) ---- 横から失礼します 質問文から疑問点があります、整理して下さい 質問文から一部抜粋 >sheet3の商品番号が入力されると、 >=LOOKUP(C1,sheet1!C:C,sheet1!A:A) ベンダーコードが表示 >=LOOKUP(A1,sheet2!A:A,sheet1!C:C) 製造者名が表示 >商品番号からベンダーコード・製造者名を出したいのですが、#N/Aか0としか返ってきません。 >どうしてでしょうか?? >商品番号をLOOKUPではなく手入力した場合は正しく表示されます 手入力の場合正しく表示されるのですから、商品番号をLOOKUP関数でどの様に求めているのでしょう? 求めた値と sheet1!C:C の値が 文字・数値の違いがあるのではないですか? >=LOOKUP(A1,sheet2!A:A,sheet1!C:C) 製造者名が表示 この式は正しいですか? セルA1はベンダーコードで、sheet2!A:Aは商品詳細 ですが正しいですか? また、sheet1!C:Cは商品番号ですが これで 製造者名が表示されますか? 正しい答えになるかどうかは別にして =LOOKUP(A1,sheet2!B:B,sheet2!C:C) >商品番号からベンダーコード・製造者名を出したいのですが、#N/Aか0としか返ってきません。 エラーになるか、何らかの値が出ると思われますが 本当に0がでるのですか? sheet3の 商品番号の求め方、 製造者名が表示の式 =LOOKUP(A1,sheet2!A:A,sheet1!C:C) が正しいかどうか? 本当に0がでるのですか? この3点について回答いただければと思います ---- 半平太様・ウッシ様・By様 >ベンダーコード(10)からだけでは、製造者名がA、B、C、D、E と5社もあるので特定できないです。 言われてみればそうですね…すみませんでした。 ウッシ様の計算式・By様よりご指摘頂いた所を直し、sheet2を作り直し表示が出来ました。 色々ありがとうございました。 (エクセリオン)