• ベストアンサー

早く書類を仕上げたいのです。

早く書類を仕上げたいのです。 エクセルのことでお伺いします。 毎月納品書を作成しているのですが、毎月決まったような商品名をいちいち入力したり コピーしたりしながら毎月やって参りましたが結構面倒で時間をとってしまいます。 そこで予め商品名にナンバリングして、納品書にその番号をいれると商品名が出てくるのをみますが その様式はどうやってすればいいのでしょうか。 初心者じみた質問ですがどなたか教えてください。

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

  • ベストアンサー
  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.3

wakowell様の回答にありましたVLOOKUPを使ってサンプルを作ってみました。 すでにお持ちと思いますが、商品に関する情報をリストにしたエクセルの表(データベース)を用意します。 データベースには各種情報が記載されていると思いますが、納品書に転送するデータは商品名、単価、備考の三つとしました。 サンプルに使ったデータベースはつぎのとおりです。 お持ちのデータベースの項目の並びはサンプルとは違うと思います。そのときは、式を修正します。 -----B列--------C列----------D列--------E列  3--商品番号----商品名-------単 価------備 考  4----001-----いろはにほ-----5,900-----るをわかよ  5----002-----ろはにほへ-----7,800-----をわかよた  6----003-----はにほへと-------100-----わかよたれ  7----004-----にほへとち-----7,700-----かよたれそ  8----005-----ほへとちり-----6,600-----よたれそつ  9----006-----へとちりぬ-------700-----たれそつね 大切な条件としまして、VLOOKUP関数を使うためには、商品番号は昇順(上から1,2,3,4,51,52,101,102.....)に記述されていなければなりません。 サンプルに使った納品書はつぎのとおりです。 -------C列-------D列---------------H列----------------J列 20---商品番号---商品名-----数量----単価------金額------備考 21-----001----いろはにほ----10---\7,600----\76,000----るをわかよ 22 23-----003----はにほへと-----5-----\100-------\500----わかよたれ 24 25-----011----るをわかよ----10---\9,000----\90,000----ならむうゐ 納品書の「C21」に「001」と記入したとき「D21」に、データベースから商品番号「001」の行の商品名「いろはにほ」持ってくる式はつぎのとおりです    [D21]=IF($C21="","",VLOOKUP(納品書!$C21,データベース!$B$4:$E$42,2,1)) 同様に「H21」に単価を、「J21」に備考を持ってくる式はそれぞれ、    [H21]=IF($C21="","",VLOOKUP(納品書!$C21,データベース!$B$4:$E$42,3,1))    [J21]=IF($C21="","",VLOOKUP(納品書!$C21,データベース!$B$4:$E$42,4,1)) となります。 IF($C21="","" は、商品番号の欄に何も記述されていないときは商品名の欄をブランクにするという意味です。これがないと、「0」が出てくることがあります。 セルの中にスペースが書き込まれていると、何も表示されないのでブランクと見分けがつきません。商品番号欄にはスペースや、表示されない文字(たとえば改行)を書き込まないでください。 $C21がブランクではないとき(数字でなければなりません。数字以外の文字が記述されているとエラーになります。)は、VLOOKUP関数により、データベースシートの$B$4~$E$42の範囲の先頭列「B列」を検索して$C21の値と同じ、001を見つけようとします。001はB4にありますので、検索はマッチします。...$B$4:$E$42,2,1)式の,2,は、先頭列「B」列を1として、そこから左へ2番目の列、すなわち、「C」列を指定していますので、同じ行の「C」列つまり「C4」に記述されている「いろはにほ」が検索結果として、納品書の「D21」に送られます。 単価と、備考を持ってくる式も同様です。 セルのアドレスに$がついたものがありますが、オートフィルをしたときにずれないようにするためです。

nakanakasa
質問者

お礼

お礼が大変遅くなり申し訳ありませんでした。 体調をくずしたのと、そのせいで今までたまっていた目の前の仕事を片付けるのがせいいっぱいで。。 こんなに詳しく教えていただき見たときにそれだけで大変うれしさが。 今からやってみますが、まずはお礼をと思った次第です。(遅すぎですが) 頑張ってみます。ありがとうございました!

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! No.1さんが的確な回答をされていますので余計なお世話になるかも知れませんが・・・ 具体的にどのような納品書か判らないので、勝手に↓のような感じで表を作ってみました。 Sheet2に「NO」「商品名」「単価」を表にしておきます。 そして、Sheet1のB2セルに =IF($A2="","",VLOOKUP($A2,Sheet2!$A$2:$C$10,COLUMN(B1),0)) という数式をいれ、フィルハンドル(セルの右下にマウスポインタを移動させると黒い「+」マークになるところがあります。)で C2セルまでドラッグ(オートフィルでコピー)します。 そして、B2・C2を範囲指定して、C2セルのフィルハンドルで下へドラッグすると 画像のような感じになります。 もちろん金額のセルは数式が入っています。 今回はE2セルに =IF(COUNTBLANK(A2:D2),"",C2*D2) という数式をいれ、オートフィルで下へコピーしています。 これでA列に「NO」・D列に数量を入力すれば希望に近い形にならないでしょうか? 今回は数式の具体的な説明は差し控えますが、 理解し難いところがあれば補足にでも書いてください。 尚、今回はA列にNOを入力する方法ですが、 No.1さんが仰っているように入力規則のリストを使えばA列は必要なくなり、同様のことができます。 以上、長々と失礼しました。m(__)m

nakanakasa
質問者

お礼

お礼が遅くなってしまい大変申し訳ない事をしてしまいました。 丁寧に回答いただき参考にさせていただきます。今やっと仕事に(体調をくずして)復帰したので今からなのですががんばります! また教えてくださればうれしいです。 ありがとうございました。

noname#142920
noname#142920
回答No.1

こんにちは。30代既婚女性です。 VLOOKUPとか入力規則とかでできると思います。 参考URLでざっと読んでみて、やってみてくださいませ。

参考URL:
http://allabout.co.jp/gm/gc/3143/
nakanakasa
質問者

お礼

お礼が大変遅くなり申し訳ありませんでした。 早くに回答をいただきながらその日に体調をくずしてしまい。。。 皆様に感謝しています。 勉強になります!!ありがとうございました。

関連するQ&A