• ベストアンサー

No.1056004の続きで、エクセルについてですが

いつもお世話になります。 今回、Sheet1シートに契約というシートの名前を作り、A列には内容、B列には契約者の名前を作りました。 Sheet2にはそれぞれの商品名のシート名を作り、何日に何個売れたか作っています。 そこで、商品名のシートではF列には納入者の名前を契約というシートのB列リストから選ぶようにして、E列には契約のシートのA列にある内容を表示させたいと思います。 その場合=IF(F1="","",VLOOKUP(F1,契約!$A$1:$E$30,1,FALSE))とすると#N/Aになってしまいます。 F列からE列は呼び出すこと出来ませんか? それとも契約シートのA列を呼び出す 1,FALSE←これに無理がありますか? よろしくおねがいします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

(契約(者?)シート) A列  B列    内容 契約者名前    (商品名シート) A-C列は質問では不明。 E列  F列 内容 契約者名前。 (納入者と契約者は同じですか?紛らわしい表現。) この場合は (1)商品シートの契約者名前を使って、(契約シートを索引し)E列に内容を出したい。 式はE1に入れる。 すなわち (A)契約シートと商品名シートに共通する契約者名 を手がかりにして、 (B)契約シートから一致する商品の(列)データをとって来る訳だが、 ★契約シートの、内容は、契約シートの右列にないといけないルールあり。VLOOKUP関数を使うときの約束ごとです。 契約シートで、内容の列が契約者名前の右にくるように列順序を入替えましょう。 出来なければ契約シートでA列のコピーをどこかに作ります。それがB列から数えて何列目か計算して、第3引数に指定しましょう。

syuhu40
質問者

お礼

(契約シート) A列  B列    内容 契約者名前    (商品名シート) A列  B列   C列   D列   E列  F列 日付 製作個数 納入個数 残個数  内容 契約者名前 としました。 で、ご指摘のとおり、契約シートのA列(内容)とB列(契約者名前)とし商品名シートのE列に=IF(F1="","",VLOOKUP(F1,契約!$A$1:$E$30,2,FALSE))として、F列から呼び出しE列に呼び出すことが出来ました。 ありがとうございます。 ◎契約シートの右列にないといけないルール ◎左からの順番の数です。  検索に使う基になる列が1です。  1はあまり使いません はじめたばかりで、なかなか本を読んでも思うようにならずに、こんなことが出来たら楽になると思うことが毎月出来てくるのが楽しみです。いつも質問ばかりで申し訳ありません。imogasi様にはいつもお助けいただきありがたいと心より思っています。

その他の回答 (2)

回答No.2

>それとも契約シートのA列を呼び出す 1,FALSE←これに無理がありますか? 1 ってことは、ありえません。 だって、1列目は、検索値でしょ。 それをキーに探しに行くんだもん。 VLOOKUPについて、もっと勉強しましょう。 No.1056004 で、理解出来ていないようですね。 と、この場では叱っておきます。

syuhu40
質問者

補足

No.1056004をもう一度読み直してみると 検索に使う基になる列が1です。 1はあまり使いませんとなっていました。 お叱りはごもっともでした。 F列からE列呼び出すのって難しいですか?

  • lonpoco
  • ベストアンサー率44% (27/61)
回答No.1

契約シートのA列とB列を入れ替えて、 =IF(F1="","",VLOOKUP(F1,契約!$A$1:$E$30,2,FALSE)) にすればよいかと思います。

syuhu40
質問者

お礼

そうですよね。ただ、今使ってる契約シートがこのようになっていて、内容をリストで呼び出し契約者が出てくるようにしているのですが、このままで契約者をリストで呼び出して内容が表示されたら楽だと感じ、使いたいと思ったものですから。 早速のお答えありがとうございます。

syuhu40
質問者

補足

申し訳ありません。理解不足でした。お教えいただいたとおりでした。 作ったものを変えることが壊れてしまいそうで勇気がわかず、商品名シートも契約シートもこのままで何とかならないかと考えました・・・。 昨日せっかく答えをいただいていたにもかかわらず、申し訳ありません。

関連するQ&A

専門家に質問してみよう