- ベストアンサー
エクセルのVLOOK関数の基本がわかりません
エクセルで下記のような表を作りたいのですがVLOOK関数とかを使えばいいと聞きました。 Helpで検索してもさっぱりわかりませんのでよろしくお願いします。 A列 B列 C列 D列 E列 F列 G列 1 日付 品番 品名 重量 大根 人参 白菜 2 1.10 11 大根 1000 1000 3 1.10 13 白菜 2000 2000 4 1.11 12 人参 750 750 5 1.12 13 白菜 500 500 ↑(1)B列に品番を入力したらC列に品名が自動的に表示される (2)D列に入力したらそのデータがC列の品名により、それぞれ指定した列に自動的に表示される 以上のようなことができるようになりたいのです。よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。まず結論からいうと、(1)はVlookup関数で出来ますが、(2)はif関数ですね。 (1)vlookup関数を使う為には、他の場所に対照表を作っておく必要があります。 例えば、この場合の例では 11 大根 12 人参 13 白菜 とまあこんな感じでしょうか。 そして、このデータを入力した範囲に、名前をつけます。取り合えず「対照表」としましょう。 C列のデータを表時したい蘭(C2以下ですね)にはvlookup関数を入れます。 c2であれば、 =vlookup(b2,対照表,2,true) となります。以下、b3,b4,b5・・・となりますね。 この、「b2」は対照する元のデータ、「対照表」は対照する表のある範囲、「2」は対照表で参照したデータの列(何列目か)、「true」は参照の形式で完全一致を示します。 (2)E、F、G列はそれぞれ違う内容が入りますが、if関数です。 E列であれば、 2 =if(c2="大根",d2,"") 3 =if(c3="大根",d3,"") ・・・ f列であれば 2 =if(c2="人参",d2,"") 3 =if(c3="人参",d3,"") ・・・ g列であれば 2 =if(c2="白菜",d2,"") 3 =if(c3="白菜",d3,"") ・・・ ですね。 if関数の仕組みは、if(c2="白菜",d2,"") なら、c2の内容が「白菜」であればd2の内容を、そうでなければ、空欄を表示しなさいという意味です。
その他の回答 (5)
- 333and333
- ベストアンサー率51% (70/136)
まずは検索するためのコード表を作成しましょう。 どこにでもいいので。 (例)I列 J列 1 品番 品名 2 11 大根 3 12 人参 4 13 白菜 まず、どの品番がどの品名なのか判断する材料が必要です。 次にvlookup関数 =vlookup(検索値,検索範囲,列番号) 検索値=どの値で検索したいのか=B列 検索範囲=どこから検索したいのか=I列とJ列の表 列番号=検索範囲から、どの値を参照したいのか=2(I列が1列目、J列が2列目。この場合、品名を参照したいので2) よって、c2に次の式を入力しましょう =VLOOKUP(B2,$I$2:$J$4,2) ただしこの場合、B列に数字が入力されていない場合エラーとなります(検索する値がはいってないぞ!!と、モンクを言われます) そのため、if文とかけあわせてあげるとエラーがでません。 =IF(B2="","",VLOOKUP(B2,$I$2:$J$4,2)) B2が空白だったら空白にしとけばOKです。 あとは、下方向にコピーで完成です。 次に(2)これはif文で簡単にできますね。 E2のセルに次の式を入力します。 =IF($C2=$E$1,$D2,"") =もし(C2=大根だったら、D2の値をいれなさい。違ったら空白です) これを、下の列にコピーします。 次にF2のセルにE2のセルをコピーし、ダブルクリック。 式中の「E」を「F」に変更し、また下にコピー G列も同じようにどうぞ。 くどい説明になってしまった・・・(^^;
お礼
丁寧なご指導ありがとうございました。質問してあっという間に回答の嵐。 とりあえず締め切らなくてはとポイントを発行してしまいました。10Ptでごめんなさい。手取足取りの内容、感謝感謝です。これでばっちりわかりました。
- yukinojyou7
- ベストアンサー率28% (87/304)
marchiさん、こんばんは まずVLOOKUP関数を使用するには別表が必要です (1)の場合は Y Z 1 11 大根 2 12 人参 3 13 白菜 がまず必要です(列番号は例です) この表も元にC2に =VLOOKUP(B2,$X$1:$Y$3,2,0) と入力するとB2に品番を入力すれば自動的にC2に 品名が入ります 更にエラー処理として =IF(B2="","",VLOOKUP(B2,$X$1:$Y$3,2,0)) とすればB2が空欄の時にC2は空欄で表示されます
お礼
ありがとうございました。この関数のおかげで仕事が少し楽になりそうです。 まわりにPCの初心者しかいないので、この教えてgooは本当に助かります。
- kuchu2
- ベストアンサー率22% (36/160)
これは、説明するの面倒くさいですよね。 多分本気で説明する気のある人なんぞいるのでしょうか。 でも、私も悪人ではない。 ということで参照に飛んでみてください。 いろんな関数の解説が載ってます。 ヒントになるといいのですが・・・。
お礼
たしかに面倒くさい、だけどここには親切な方が多いことを知っていたのでこんな質問してみました。あなたの案内してくださったURLも興味深く拝見しました。ありがとうございました。
- epson01
- ベストアンサー率12% (120/933)
=VLOOKUP(B2,$B&21:$D$23,2,2) です。 B21からB23にはコードを入れておきます。 C21からC23には品名を入れておきます。 数字の振り分けは =IF((B2=11,D2,"") とします。
お礼
こちらも素早いご回答ありがとうございました。 質問文を修正中に送られてしまったので、これでわかってもらえるかな?と不安でした。明快なアドバイス、ありがとうございました。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
(1)コード表を別に作る必要があります。 http://www.support-service.com/excelvlook01.htm http://homepage1.nifty.com/kenzo30/ex_kisotyu/ex_ks_tyukyuxb2.htm http://homepage3.nifty.com/sugaku/vlookup.htm (2)はif文を使います。 例えばE2には =if($C$2=E1,$D$2,"")と入力してG列までコピーします。
お礼
素早いご回答、ありがとうございました。 今後参考になりそうなURL,助かります。
お礼
ありがとうございました。こんなに丁寧に教えて頂けるなんて感激です。 おかげでできました!これができたら入力ミスも防げるし、一枚のシートですべて把握できるので大助かりです。