- ベストアンサー
検索の数式について
商品(product)リストから見積書等にリンクする 様に数式を入力しています =IF(A23="","",VLOOKUP(A23,Product!$A$3:$D$65000,3,FALSE)) リンクは既に出来てはいるのですが商品の数が65536 を超えてしまってすべてを入力できません なぜかセルがこれ以上追加できないのです 仕方なく商品リストのワークシートをもう一つ追加しましたが 上記の数式では追加した分のリストがちゃんとリンク出来ませんでした どうすれば良いでしょうか 65536以上セルを追加することが可能ですか? アドバイスよろしくお願いします
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
No4&6のmerlionXXです。 > ただ僕の説明不足で リンクしている箇所は > 商品名、商品番号、値段の3つなんです > 最初に入力していた > =IF(A23="","",VLOOKUP(A23,Product!$A$3:$D$65000,3,FALSE)) > では3つともがちゃんとリンクせれていました 大変失礼な言い方をしますが、VLOOKUPの式を理解していますか? あなたの例もわたしの書いた式もA23に入力されたものをキーにリストのA列を検索し、合致するところをA列を含んで3つ目の列(C列)にある値を持ってくるという式ですよ。3,FALSEの3がそういう意味です。 商品名、商品番号、値段の3つを表からもってくるのであれば3つ目(C列)からだけではないですよね?そこを2とか4に変えてみてください。
その他の回答 (7)
- O_cyan
- ベストアンサー率59% (745/1260)
>Productには3行目から64600行目に商品リストが 入っています Product2に後の残りを入れたいのですが Product2はまた3行目からの入力になってしまいます 範囲を指定しているところを変更します。 Product!$A$3:$D$40000とProduct2!$A$3:$D$30000を実際の行の範囲にあわせてProductは$A$3:$D$64600でProduct2は$A$3:$D$10000とA3から最後の行数を指定すれば出来ます。 =IF(A23="","",IF(A23<=64600,VLOOKUP(A1,Product!$A$3:$D$64600,3,FALSE),VLOOKUP(A23>=64601,Product2!$A$3:$D$10000,3,FALSE) A23<=64600とA23>=64601はProductとProduct2の3列目の商品ID?の入力の仕方が不明のため取りあえずProductには1から64600が入力されていてProduct2は64601から順に入力されていると仮定して書いてあります。ここのところはProduct・Product2の入力されている値に変えてください。
補足
再びのレスありがとうございます シートのproductの部分は 商品番号、商品名、値段となっていて それぞれ3つが見積書等にリンクされる様になってました もちろん私の説明不足なので仕方ないのですが 教えていただいた数式を入力すると エラーでがあります 以下の様に訂正できますと表示され =IF(A23="","",IF(A23<=64600,VLOOKUP(A1,Product!$A$3:$D$64600,3,FALSE),VLOOKUP(A23>=64601,Product2!$A$3:$D$10000,3,FALSE))) このまま入力すると #N/Aと表示されてリンクされません 実際見て頂ければ早いと思うのですが…
- merlionXX
- ベストアンサー率48% (1930/4007)
No4です。 これでどうでしょう? =IF(A23="","",IF(ISNA(VLOOKUP(A23,Product!$A$3:$D$65000,3,FALSE)),VLOOKUP(A23,'Product (2)'!$A$3:$D$65000,3,FALSE),VLOOKUP(A23,Product!$A$3:$D$65000,3,FALSE)))
補足
再びのレスありがとうございます そのとおり入力すると Productとproduct2の商品名がちゃんと見積書等にリンクされていました ただ僕の説明不足で リンクしている箇所は 商品名、商品番号、値段の3つなんです 最初に入力していた =IF(A23="","",VLOOKUP(A23,Product!$A$3:$D$65000,3,FALSE)) では3つともがちゃんとリンクせれていました
- mshr1962
- ベストアンサー率39% (7417/18945)
#2のmshr1962です。 > このまま入力すると 数式が間違っていると出てしまいます まんまコピーだと駄目ですか? すみません。""が一部抜けてました。 =IF(A23="","",VLOOKUP(A23,INDIRECT(IF(COUNTIF(Product!$A$3:$A$65000,A23),"Product","Product2")&"!$A$3:$D$65000")),3,FALSE))
補足
再びレスありがとうございます 今度は 「この関数に対して少なすぎる因数が入力されています。」と表示されてちゃんとリンクできないです 実物を見てもらってないので 難しいかもしれないですね リンクしている箇所は 商品(product)の中の 商品番号2種類、商品名の3つです
- merlionXX
- ベストアンサー率48% (1930/4007)
追加した商品リストのシート名が Product (2) とした場合、最初のリストで見つからなければProduct (2)を見るようにしてみました。 =IF(A23="","",IF(ISNA(VLOOKUP(A23,Product!$A$3:$D$65000,3,FALSE)),VLOOKUP(A23,'Product (2)'!$A$3:$B$65000,3,FALSE)))
補足
ありがとうございます!簡単そうで良いのですが なぜかこのまま入力してもリンクされないです
- O_cyan
- ベストアンサー率59% (745/1260)
>追加した分のリストがちゃんとリンク出来ませんでした どうすれば良いでしょうか 65536以上セルを追加することが可能ですか? >商品リストのワークシートをもう一つ追加しました IFをネストして2つの商品リストを参照するようにすれば良いと思いますが。 例えばProductに40000までProduct2に40001から70000まで順に商品リストを作れば =IF(A23="","",IF(A1<=40000,VLOOKUP(A1,Product!$A$3:$D$40000,3,FALSE),VLOOKUP(A23>=40001,Product2!$A$3:$D$30000,3,FALSE))) でA23に入力された値を元にProductかProduct2を参照するようにする。
補足
ありがとうございます Productには3行目から64600行目に商品リストが 入っています Product2に後の残りを入れたいのですが Product2はまた3行目からの入力になってしまいます その場合だとどうすれば良いでしょうか?
- mshr1962
- ベストアンサー率39% (7417/18945)
Product2シートを作成しておいて =IF(A23="","",VLOOKUP(A23,INDIRECT(IF(COUNTIF(Product!$A$3:$A$65000,A23),"Product",Product2")&!$A$3:$D$65000")),3,FALSE))
補足
ありがとうございます このまま入力すると 数式が間違っていると出てしまいます まんまコピーだと駄目ですか?
- suzukikun
- ベストアンサー率28% (372/1325)
65535行がExcelの限度なのでどうしようもないです。 ちなみに横はIV列までです。 これ以上必要であればAccessなどのDBソフトを使う方がよいと思います。
お礼
アドバイスを参考にやってみたら 見事成功しました 本当にありがとうございます 感謝します! excelの数式はまったく解らないです もっと勉強します