在庫・販売管理用のファイルをExcelにて作成しています。

仕様
・仕入管理/在庫管理/販売管理の3シート
・商品データは在庫管理シートに記録
・商品にはそれぞれ商品番号をつけ管理

まだ運用前なのですが、以下のような運用方法を考えています。
それにあたって、自動化したい作業があるのですが、なかなかできず…。

VBAの知識をお持ちの方,お力をかして頂けないでしょうか?
もしくは関数で同じような動作が実行可能なら、そちらでも構いません。

<仕入れがあった場合>
(1)在庫管理シートに商品を登録(以前に取り扱ったことのある商品の場合は省略)
(2)仕入管理シートに商品の仕入数を記録(VLOOKUP関数で在庫管理シートから商品名等を呼び出します)
(3)在庫管理シートに(2)で入力した仕入数反映(在庫管理シートにプラス) ← ここを自動化したいです

<販売した場合>
(1)販売管理シートに販売した商品、価格、個数、販売相手などを記録(同じく在庫管理シートから商品詳細を呼び出します)
(2)在庫管理シートに(1)で入力した販売数を反映(在庫管理シートからマイナス) ← ここを自動化したいです

この自動化ができれば在庫管理シートがリアルタイムの在庫を表示するようになるので、とても便利なのですが、今現在の状態だと、この「自動化したい部分」を手作業にてやる予定です。
現在は商品の出入がとても少ないので、手作業でも問題ないのですが、今後商品が増えることを考えると実用的ではなく…。

できれば、「入力してすぐ反映」というシステムより、「入力後確認→確定→反映」というシステムにしたいのですが…。(ワガママで申し訳ないです)

私は関数はある程度扱えますが、VBAについては初心者の状態から今勉強中といったところです。

是非皆様のお力を貸して下さい!よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

(3)在庫管理シートに(2)で入力した仕入数反映(在庫管理シートにプラス) ← ここを自動化したいです


仮に
 仕入管理シート
 商品番号 商品名 仕入日  仕入数

 在庫管理シート
 商品番号 商品名 仕入総数  販売総数 在庫数

とあったとします。
仕入総数は =SUMIF(仕入管理!A:A,A2,仕入管理!D:D)
で得られますよね。
総販売数量も同様ですので
在庫数は =C2-D2 です。
この関数を在庫管理シートにたっぷりとコピーしておけば十分です。
    • good
    • 0
この回答へのお礼

hallo-2007様

早速のご回答ありがとうございます。
教えて頂いたやり方でデータを持ってくることができました!!!
VBAを使わなくても簡単にできるんですね★

関数は知ってるだけではなかなか応用できず、難しいです><。
本当にありがとうございました。

お礼日時:2011/04/24 20:11

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Q関数での在庫管理表を作成しようとしているのですが見当がつかず困ってます

現在、エクセルで在庫リストを作っています。
複数条件の表示に悩んでいます。分かりにくい文章だと思いますが教えていただけたら幸いです。

Sheet2に

A4セル  B4セル   C4セル   D4セル  E4セル   F4セル   
 No  製品名  材料1  材料2  数値1  数値2
0001  XXX    PPP   VVV   0.25   12.3
0002  XXX    MMM   VVV   0.15   12.3
0003  XZY    PPP   ZZY   0.10   10.5
0004  XZY    PPP ZZY 0.23   11.2

という表を作り(実際はY列:500行まであります^^;)
挿入→名前→定義
で「在庫リスト」としました。

問題はここからで、上の条件をSheet1でいろいろなパターンで検索するものを作りたいと思っています。

Sheet1には
C3:No 、D3:製品名 、C5:材料1 、D5:材料2 、C7:数値1 、D7:数値2
と書きその下に検索したい物を入れたいと思っています。
例C4セル:0001

で、ここからが本題なのですが、複数条件
例えば
製品名:XXX
と入れたら、14行の所にXXXに該当するもので
 No  製品名  材料1  材料2  数値1  数値2
0001  XXX    PPP   VVV   0.152  12.3
0002  XXX    MMM   VVV   0.152  12.3

を表示させたり

材料2:ZZY 、数値2:11.2
と入れたら
 No  製品名  材料1  材料2  数値1  数値2
0004  XZY    PPP ZZY 0.102  11.2

と表示させたいと思っています。

また数値1で0.1~0.19の間を検索して表示とかもできるのでしょうか?
数値1:10
 No  製品名  材料1  材料2  数値1  数値2
0002  XXX    MMM   VVV   0.15   12.3
0003  XZY    PPP   ZZY   0.10   10.5

というようなものを求めています。
どうか、よろしくお願いします。

現在、エクセルで在庫リストを作っています。
複数条件の表示に悩んでいます。分かりにくい文章だと思いますが教えていただけたら幸いです。

Sheet2に

A4セル  B4セル   C4セル   D4セル  E4セル   F4セル   
 No  製品名  材料1  材料2  数値1  数値2
0001  XXX    PPP   VVV   0.25   12.3
0002  XXX    MMM   VVV   0.15   12.3
0003  XZY    PPP   ZZY   0.10   10.5
0004  XZY    PPP ZZY 0.23   11.2
...続きを読む

Aベストアンサー

お示しのデータが次のようになっているとします。
シート1ではC3にNo、D3に製品名、C5に材料1、D5に材料2、C7に数値1、D7に数値2の文字があり検索に使用するデータはそれぞれの項目の1行下の行に入力するものとします。
A14セルからF14セルにはNoから数値2までの項目名が並んでいるとして、検索の結果はそれ以下の行に表示されるとします。
シート2ではA4セルからF4セルまでに項目名が並び、それ以降の行にデータが入力されているとします。
なお、検索に使用する数値1のデータおよび数値2のデータについては、すなわち、C8セルやD8セルに入力するデータについては、ある範囲を指定して検索する場合には0.9-0.19などと半角英数文字で入力することとします。
非常に操作が複雑になりますので作業列や作業のセルを用意して対応することとします。
シート1のF3セルには次の式を入力します。
=IF(Sheet1!D4="","",D4&"/")&IF(Sheet1!C6="","",C6&"/")&IF(Sheet1!D6="","",D6&"/")&IF(Sheet1!C8="","",IF(ISERROR(FIND("-",C8)),C8&"/","OK/"))&IF(Sheet1!D8="","",IF(ISERROR(FIND("-",D8)),D8,"OK"))
A15セルには次の式を入力し、F15セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。
=IF(OR(COUNTIF(Sheet2!$J$5:$J$1000,ROW(A1))=0,A$14=""),"",INDEX(Sheet2!$A$5:$F$1000,MATCH(ROW(A1),Sheet2!$J$5:$J$1000,0),COLUMN(A1)))
シート2についてはG5セルに次の式を入力しH5セルまでオートフィルドラッグしたのちに、下方にもオートフィルドラッグします。
=IF(OR($A5="",Sheet1!C$8=""),"",IF(ISERROR(FIND("-",Sheet1!C$8)),"",IF(AND(E5>=VALUE(LEFT(Sheet1!C$8,FIND("-",Sheet1!C$8)-1)),E5<=VALUE(MID(Sheet1!C$8,FIND("-",Sheet1!C$8)
+1,10))),"OK","NG")))
これらの列は数値1や数値2のデータについて範囲指定の検索があった時に使用するものです。
I5セルには次の式を入力し下方にオートフィルドラッグします。
=IF(A5="","",IF(Sheet1!$D$4="","",$B5&"/")&IF(Sheet1!$C$6="","",$C5&"/")&IF(Sheet1!$D$6="","",$D5&"/")&IF(Sheet1!$C$8="","",IF(G5="",$E5&"/",G5&"/"))&IF(Sheet1!$D$8="","",IF(H5="",$F5,H5)))
これらの操作が終わった後で検索のデータを入力すれば、それらのデータを満足するデータが15行目以降に表示されます。
式が複雑ですので、必ずこちらが指定した条件で表を作成し、一度検証してから実際のデータに適応してください。

お示しのデータが次のようになっているとします。
シート1ではC3にNo、D3に製品名、C5に材料1、D5に材料2、C7に数値1、D7に数値2の文字があり検索に使用するデータはそれぞれの項目の1行下の行に入力するものとします。
A14セルからF14セルにはNoから数値2までの項目名が並んでいるとして、検索の結果はそれ以下の行に表示されるとします。
シート2ではA4セルからF4セルまでに項目名が並び、それ以降の行にデータが入力されているとします。
なお、検索に使用する数値1のデータおよび数値2のデ...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Qエクセルにて在庫商品名と在庫有無を集計したいです。

エクセルにて在庫商品名と在庫有無を集計したいです。
どなたかご教授頂ければと存じます。

セルB4に商品名「ABCD」セルB5に商品番号「100」と記入されております。

※1 「入荷時の場合」どこにも出荷していない場合、セルK4に商品名「ABCD」セルK5に商品番号「100」と自動反映したい。


※2 「納品の場合」セルE4に商品名「ABCD」セルE5に商品番号「100」と記入すれば、セルK4に商品名「0」セルK5に商品番号「0」と自動反映したい。

※3 「貸出の場合」セルH4に商品名「ABCD」セルH5に商品番号「100」と記入すれば、セルK4に商品名「0」セルK5に商品番号「0」と自動反映したい。

※4 セルE4やE5に入荷と違う商品名や商品番号を入れたとしても、セルK4に商品名「0」セルK5に商品番号「0」と自動反映したい。(H4やH5に記入した場合でも同様)

Aベストアンサー

質問通り解釈すると
K4のセルは、=IF(AND(E4="",H4=""),B4,0)
K5のセルは、=IF(AND(E5="",H5=""),B5,0)

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

QExcel VBAにて

Activate と Select は通常、どう使い分けるものでしょうか?

いまいち、使い分けが理解できません。

ご経験者の方々、知識ある方
アドバイス・ご意見を頂ければ助かります。
宜しくお願いします。

Aベストアンサー

> Windows("第6章.xlsm:2").Activate
ウィンドウはそもそも選択できませんから、
 Activate メソッド
しか用意されてません。

どんなオブジェクトでも共通するメソッドがあるのではなくて
似たような処理をする(言葉にすれば同じことをする)メソッドに
同じ名前が付いている。と考えた方が良いです。

私は、解りやすくするために、説明の為に、.Select は選択、と端的な書き方をしました。

それから、もうひとつのスレにも、同趣旨のことを書きましたが、
本で勉強するなら、その本が導くままに一度最後まで進めた方が良いと思います。
途中で質問すると、却って混乱してしまうかも知れませんから。
例えば、円周率を3、ということにして簡単な説明をしようとしているテキストがあったとして
それを読んだ人が、「円周率は3ですか?」と質問掲示板で質問したところで
ご本人は混乱するだけだと思います。
何が悪いとかそういう話じゃなくて、教わるなら、
ひとりに(ひとつの教え方で)教わった方が初学の場合は成功しやすい
という意味です。

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QExcel VBAにて

FormulaR1C1の用途、または意味が分かりません。

ご経験者の方々、知識ある方の
ご意見・アドバイスを頂ければ助かります。
よろしくお願いします。

Aベストアンサー

> ActiveCell.FormulaR1C1 = hiduke
それは、おそらく、マクロの記録を元にして、コードを編集する方法を解説しているのだと思います。
マクロの記録を相対参照で記録した場合は、セルに値を入力しただけで
 ActiveCell.FormulaR1C1 = 値
のように.FormulaR1C1 プロパティで書かれます。
実際、標準的な記法として値の設定をする正しい記述は
 ActiveCell.Value = hiduke
です。
ですから、本来は
> ActiveCell.FormulaR1C1 = hiduke
↑こういう使い方をするものではありません。

たぶん、
 相対参照でのマクロ記録
  ↓
 自分でコードを書き換えてみよう
 (あまり煩いこと言わないから気楽に試してみよう)
というような場面でしか、あり得ない記述だと思います。
たぶん、そのセクションで覚えて欲しいと筆者が意図するところは
 プロパティを操作してみよう
  ↓
 変数を使ってみよう
  ↓
 入力用にInputBoxを使ってみよう
という、いわば、オリエンテーリングのようなものだと思います。
つまり、その段階では、プロパティがどんなものであるか、ということよりも
自分で書いたコマンドが、ちゃんと、動く体験をしてもらって。、
次の説明に繋げよう、というようなものなのでしょう。
本に沿って学習してゆくお積りなら、今はあまり拘らないでいても良いのかも知れませんね。
(一応、書名、とかは、晒さない方向でお願いします。)

> ActiveCell.FormulaR1C1 = hiduke
それは、おそらく、マクロの記録を元にして、コードを編集する方法を解説しているのだと思います。
マクロの記録を相対参照で記録した場合は、セルに値を入力しただけで
 ActiveCell.FormulaR1C1 = 値
のように.FormulaR1C1 プロパティで書かれます。
実際、標準的な記法として値の設定をする正しい記述は
 ActiveCell.Value = hiduke
です。
ですから、本来は
> ActiveCell.FormulaR1C1 = hiduke
↑こういう使い方をするものではありません。

たぶん、
 相対参照でのマクロ...続きを読む

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

QExcel2003、VBAにて。

Excel2003、VBAにて。
シートを自動で追加し、追加したシートのA1セルに全シート数を設定する方法が分かりません。
どなたか教えてください。

Aベストアンサー

今後のために、、、
やることを細かく順序だてて、それぞれの実現方法をWeb検索してみてください。
すぐサンプルが見つかります。
Web検索できるようになれば、ほとんど自己解決できますよ。
また、「マクロの記録」で調べるのもいいかもしれません。

今回は、以下の処理が必要です。
どこの部分は分かって、どこの部分が分からないのかをハッキリさせると調べ易いですね。
1.シートを追加
2.全シート数を取得
3.A1セルに全シート数を設定

サンプルソースは、、、他の方の回答がありますのでそちらで。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング