質問

Excelを使っていて、どうしてもわからない関数があります。
たぶん、とても簡単なことだと思うのですが、
おわかりの方、何卒ご教示くださいませ。
Windowsで最新のOS、Excelも最新バージョンだと思います。

私がやりたいことは・・・

「No.順」と名付けたシートがあります。
Aの列に品物のIDナンバーを手入力してます。(ID-***、みたいな感じ)
Nの列には価格を手入力(数値の書式設定)、
Qの列には入荷コストを手入力(数値の書式設定)、してます。

別の、「SALE」と名付けたシートがあります。
Cの列に品物のIDナンバーを手入力するようにしてます。
このIDナンバーを入力した時点で・・・
「No.順」のNの列に入力した価格を、「SALE」シートのHの列に、
「No.順」のQの列に入力した入荷コストを「SALE」シートのIの列に、
データを引っ張ってきたい、つまり、自動入力させたいのです。

いずれのシートも、1行目にはカテゴリ名を入力しているので、
実際に入力がなされているのは、2行目からになります。

どんな関数をどこに書けばよろしいでしょうか。
どうぞよろしくお願いします。

通報する

回答 (7件)

#4のfeverです(*^_^*)
『SALE』シートの
H2には
=IF(C2="","",VLOOKUP(C2,No.順!$A:$Q,14,FALSE))
I2には
=IF(C2="","",VLOOKUP(C2,No.順!$A:$Q,17,FALSE))
と入力してください。
以降はハンドフィルでコピー&ペーストしてください。

これでもまだ『#N/A』が表示されるのでしたら
『No.順』シートと『SALE』シートのIDナンバーが違う表記になっている可能性があります。
例えば、全角/半角など違っていませんか?

一度、『No.順』シートのIDナンバーをコピーして『SALE』シートの方へ貼り付けてみてください。
これでエラーが返ってこないとしたら、表記に問題ありです。

この回答へのお礼

でっ・・・できましたっ!
H2の式でQの部分をNに直しましたが(^^;)完璧です。
お気にかけていただき、ありがとうございました。

空白部分には「#N/A」が出ますが、他の方々の式を参考にさせていただけば、
何とか解決できそうです。

助かりました。ありがとうございました。

この回答への補足

すみません。空白部分に「#N/A」は出ません・・・。
舞い上がって、勘違いしちゃいました・・・。

#3です。

向こうの回答を無視してると勘違いしてました。(ちゃんとレスされていたのに気付きませんでした)
大変失礼しました。m(_)m

他の方の回答でOKだと思いますが、エラー回避も含めてまとめます。
IDが無い時はN/Aエラーが返るので、IF文で N/A の時は空白となるようにします。長いけど。

H列
=IF(ISNA(VLOOKUP(C2,No.順!$A$2:$O$6,14,FALSE)),"",VLOOKUP(C2,No.順!$A$2:$O$6,14,FALSE))

J列
=IF(ISNA(VLOOKUP(C2,No.順!$A$2:$Q$6,17,FALSE)),"",VLOOKUP(C2,No.順!$A$2:$Q$6,17,FALSE))

これも既に回答が出てますが、4箇所ある $A$2:$Q$6 は実際に合せて直す必要があります。
また、予め「No.順」の範囲に「リスト」等の名前を定義しておき、下記のように定義した名前で指定しておくと、後で行が増えた時に定義した範囲を変更するだけで対応出来るようになります。

=IF(ISNA(VLOOKUP(C2,リスト,14,FALSE)),"",VLOOKUP(C2,リスト,14,FALSE))

この回答へのお礼

こちらこそ、キツイ「お礼」を申し上げて失礼しました。
たぶん、パーフェクトな式を考えてくださったと思うんですが、
あのぅ・・・
 >4箇所ある $A$2:$Q$6 は実際に合せて直す必要があります。
「実際に合わせて」・・・がわかりません。
2という数字は2行目? 6という数字は・・・。
超ビギナーですみません。

それから、参照する「No.順」というシートのセル(NとQ)に入力されているのは、・・・
例えば「=1200/6」みたいに、単価を出すためのカンタンな式を手入力してあり、その答えが返ってくるようになってます。
これはボトルネックになってますか?
もしご覧になってくださっていたら、どうかお助けください。
まだまだ格闘中です。よろしくお願いします。

#2です。あさ通勤前で慌てていたことはありますが、
(1)その後気になったのは、「No.順」シートを、A$2:$Q$4としましたが、私のテスト例が3行だったからです。
$A$2:$Q$○の○のところは表の最終行数を入れてください。
(2)もうひとつA$2:$Q$4のA$2に$が洩れていました。
(コピーした時に範囲指定不足)。$A$2:$Q$50のようにしてください。
有名なパターンの質問でVLOOKUPで絶対出来ますから、上手く行かないときは解説書でも読んで、適合すべき個所を見つけるよう、頑張ってください。

この回答へのお礼

その後までお気遣いくださっていたなんて、感激です。ありがとうございます。
丁重なご説明文でエラーの理由がわかりました。
でも、まだうまくいきません。
単純な関数だと思うんですけど、理系が苦手で、「式」が出てくると目眩が・・・(@@)
でも諦めずにがんばります(^^)

#2のimogasiさんのでOKだと思うのですが(^^ゞ

「No.順」と名付けたシートのA列に入力しているIDナンバーと、「SALE」と名付けたシートのC列に入力したIDナンバーは同じになっていますか?

また、「SALE」の方に入力したナンバーが「No.順」の方に
無いと、エラー値「#N/A」が返されます。

この回答へのお礼

フォローありがとうございます。
IDナンバーは、コピペで入力しているので、同じになっていると思います。
しかし「#N/A」っていうエラーがどうしても返ってきてしまって・・・。格闘中です。

こちらでも回答がなされてますが?
http://pc2.2ch.net/test/read.cgi/bsoft/106034552 …

この回答へのお礼

わざわざどうも。よく見てますね。質問の仕方が悪く、「一般的」な回答をいただいてしまったので、何度も試してみたけどできませんでした。式しか書いてくださっていなかったので、注意点もよくわかりませんでした。(調べてみたら、隣の列を参照する、という式だったので、私のケースには当てはまりませんでした。)「シート名」、「具体的な列番号」を書いて質問するべきだった、と思い、再度こちらで質問させていただいたのです。ご了承ください。

VLOOKUP関数でできます。特徴は他シートの表を
参照していることだけです。
SALEシートのH2に
=VLOOKUP(C2,NO.順!$A$2:$Q$4,14,FALSE)
I2に
=VLOOKUP(C2,NO.順!$A$2:$Q$4,17,FALSE)
といれ、各列を下へ複写する。
C列にデータの入っていない行のH,I列はエラー表示が
出ますが=IF(c2=””、””、VLOOKUP(・・・))等で回避をしてください。

この回答へのお礼

具体的なご回答ありがとうございます。試してみたのですが、どうしても「#N/A」というエラーが出てしまいます・・・。

こんばんは

VLOOKUP()かINDEX()とMATCH()関数の組み合わせ
で可能です。
今回の場合 A,N,Q列と目的のデータが相当離れて
いるので後者の関数の方がよいかもしれません

具体的例では 仮に
[No.順]のデータ範囲を2行目から100行目として
[SALE]のセルN2に
=IF($A2="","",IF(ISNA(MATCH($A2,No.順!$A$2:$A$100,0)),"",INDEX(No.順!N$2:N$100,MATCH($A2,No.順!$A$2:$A$100,0)))
と記載して必要行までコピー
その式をQ列にもコピー

で試してみて下さい($の付く位置に注意)

この回答へのお礼

具体的で丁重なご説明ありがとうございます。
数時間がんばって格闘したんですが、どうしても空白セルが返ってきます・・・。
 ・[SALE]のセルN2に →「SALE」シートのHの列に
 ・その式をQ列にもコピー → 「SALE」シートのIの列にコピー
・・・でよろしいんですよね。
ううーん・・・。

このQ&Aは役に立ちましたか?1 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

このQ&Aを見た人が検索しているワード


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集