Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6259 / 13644 ツリー ←次へ | 前へ→

【46324】VBAにSUMIFをさせてい。 花丸 07/1/31(水) 0:23 質問[未読]
【46325】Re:VBAにSUMIFをさせてい。 かみちゃん 07/1/31(水) 0:35 発言[未読]
【46326】Re:VBAにSUMIFをさせてい。 花丸 07/1/31(水) 1:10 質問[未読]
【46327】Re:VBAにSUMIFをさせてい。 かみちゃん 07/1/31(水) 1:11 発言[未読]
【46328】Re:VBAにSUMIFをさせてい。 花丸 07/1/31(水) 1:34 質問[未読]
【46329】Re:VBAにSUMIFをさせてい。 かみちゃん 07/1/31(水) 1:43 発言[未読]
【46330】Re:VBAにSUMIFをさせてい。 花丸 07/1/31(水) 2:01 質問[未読]
【46337】Re:VBAにSUMIFをさせてい。 Kein 07/1/31(水) 11:36 発言[未読]

【46324】VBAにSUMIFをさせてい。
質問  花丸  - 07/1/31(水) 0:23 -

引用なし
パスワード
   シート1と2のデータをシート3で集計を行いたい。

VLOOKUPやSUMIFを使わずにVBAでプログラムを組みたいのですが
どうすればよろしいでしょうか?

シート1(Order)のデータ
    A    B   C   D   E    F   G    H   I  J  
1   SKU  Supp Code Manuf RefNo  NAME  Type  Cost Retail Qty
2  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  100
3  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200
4  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200
5  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  100
6  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200



シート2(Sales)のデータ
    A    B   C   D   E    F   G    H   I  J  
1   SKU  Supp Code Manuf RefNo  NAME  Type  Cost Retail Qty
2  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  10
3  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20
4  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20
5  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  10
6  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20



シート3(Stock)のデータ
   A    B   C   D  
1  SKU   Manuf NAME  Qty
2  12345  aaaa社 缶   20
3  12346  bbbb社 水   30
4  12347  bbbb社 牛乳  40
5  12348  cccc社 オレ  50
6  12349  dddd社 チョコ 10


【46325】Re:VBAにSUMIFをさせてい。
発言  かみちゃん  - 07/1/31(水) 0:35 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>シート1と2のデータをシート3で集計を行いたい。
>
>VLOOKUPやSUMIFを使わずにVBAでプログラムを組みたい

シート1と2のデータをどのような計算でシート3に集計したいのかがわかりません。

シート1(Order)のデータ
    A    B   C   D   E    F   G    H   I  J  
1   SKU  Supp Code Manuf RefNo  NAME  Type  Cost Retail Qty
2  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  100
3  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200
4  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200
5  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  100
6  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200



シート2(Sales)のデータ
    A    B   C   D   E    F   G    H   I  J  
1   SKU  Supp Code Manuf RefNo  NAME  Type  Cost Retail Qty
2  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  10
3  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20
4  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20
5  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  10
6  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20



シート3(Stock)のデータ
   A    B   C   D  
1  SKU   Manuf NAME  Qty
2  12345  aaaa社 缶   20
3  12346  bbbb社 水   30
4  12347  bbbb社 牛乳  40
5  12348  cccc社 オレ  50
6  12349  dddd社 チョコ 10


【46326】Re:VBAにSUMIFをさせてい。
質問  花丸  - 07/1/31(水) 1:10 -

引用なし
パスワード
   シート3のQTY計算をSUMIFを使わずに行いたい。SUMIFだと
こんな感じです。
D列 =SUMIF(Order!A:A,A2,Order!J:J)-SUMIF(Sales!A:A,A2,Sales!J:J)

VLOOKUPは
B列 =VLOOKUP(A2,SKU!B:J,8,FALSE)
C列 =VLOOKUP(A2,SKU!B:L,10,FALSE)


▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>シート1と2のデータをシート3で集計を行いたい。
>>
>>VLOOKUPやSUMIFを使わずにVBAでプログラムを組みたい
>
>シート1と2のデータをどのような計算でシート3に集計したいのかがわかりません。
>
>シート1(Order)のデータ
>     A    B   C   D   E    F   G    H    I   J  
> 1   SKU  Supp Code Manuf RefNo  NAME  Type Cost Retail Qty
> 2  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  100
> 3  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200
> 4  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200
> 5  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  100
> 6  12346  100  2  bbbb社  EFGH  水  pack 2.6  5.0  200
> 〜
>
>
> シート2(Sales)のデータ
>     A    B   C   D   E    F   G    H    I   J  
> 1   SKU  Supp Code Manuf RefNo  NAME  Type  Cost Retail Qty
> 2  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  10
> 3  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20
> 4  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20
> 5  12345  100  1  aaaa社  ABCD  缶  Box  1.6  2.5  10
> 6  12346  100  2  bbbb社  EFGH  水  pack  2.6  5.0  20
> 〜
>
>
> シート3(Stock)のデータ
>    A    B   C   D  
> 1  SKU   Manuf NAME  Qty
> 2  12345  aaaa社 缶   20
> 3  12346  bbbb社 水   30
> 4  12347  bbbb社 牛乳  40
> 5  12348  cccc社 オレ  50
> 6  12349  dddd社 チョコ 10
> 〜


【46327】Re:VBAにSUMIFをさせてい。
発言  かみちゃん  - 07/1/31(水) 1:11 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>シート3のQTY計算をSUMIFを使わずに行いたい。SUMIFだと
>こんな感じです。
>D列 =SUMIF(Order!A:A,A2,Order!J:J)-SUMIF(Sales!A:A,A2,Sales!J:J)

シート3のQTYは、その数式で求められないように思いますが・・・
シート3のD列の値が間違っているのでしょう?
ちなみに、上記の数式でシート3のD2セルは、20ではなく、180になるのでは?

>VLOOKUPは
>B列 =VLOOKUP(A2,SKU!B:J,8,FALSE)
>C列 =VLOOKUP(A2,SKU!B:L,10,FALSE)

この数式で使われている「SKU」とは何ですか?

【46328】Re:VBAにSUMIFをさせてい。
質問  花丸  - 07/1/31(水) 1:34 -

引用なし
パスワード
    〜マークは続くと言う意味で行っています。
よってシート1と2は1行目から6行目ではなく、
6行目〜も続くと言う意味です。
説明不足ですいません。

SKUとはコードみたいなものです。


▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>シート3のQTY計算をSUMIFを使わずに行いたい。SUMIFだと
>>こんな感じです。
>>D列 =SUMIF(Order!A:A,A2,Order!J:J)-SUMIF(Sales!A:A,A2,Sales!J:J)
>
>シート3のQTYは、その数式で求められないように思いますが・・・
>シート3のD列の値が間違っているのでしょう?
>ちなみに、上記の数式でシート3のD2セルは、20ではなく、180になるのでは?
>
>>VLOOKUPは
>>B列 =VLOOKUP(A2,SKU!B:J,8,FALSE)
>>C列 =VLOOKUP(A2,SKU!B:L,10,FALSE)
>
>この数式で使われている「SKU」とは何ですか?

【46329】Re:VBAにSUMIFをさせてい。
発言  かみちゃん  - 07/1/31(水) 1:43 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 〜マークは続くと言う意味で行っています。
>よってシート1と2は1行目から6行目ではなく、
>6行目〜も続くと言う意味です。

なるほど、そういうことだったのですね。
ところで、VLOOKUPやSUMIFを使いたくないのはなぜなのでしょうか?
その理由によっては、
 Application.WorksheetFunction.SumIf(...)
というような使い方もだめということになるのですが・・・

>SKUとはコードみたいなものです。

ちょっと冷たい聞き方をしましたね。
SKUというシートが別にあるのでしょうか?
あるならば、提示してください。

【46330】Re:VBAにSUMIFをさせてい。
質問  花丸  - 07/1/31(水) 2:01 -

引用なし
パスワード
   SUMIFを使って行うとデーターを入力する際に
再計算を毎回行われ、データーを入力するのに
時間がかかります。
また、VLOOKUPを使用するとデーター容量が大きくなってしまい
データーを更新する際に時間がかかります。
こういった点からプログラムでできないかを検討しています。

SKUのシートはこんな感じです。
 シート4(SKU)のデータ
     A    B   C   D   E   F   G    H    I   
1  S SKU   SKU  SKUSub Supp Code Manuf NAME   Cost Retail
2  12345-1 12345  1  100  1  aaaa社  缶    1.6  2.5
3  12346-1 12346  1  100  2  aaaa社  水    2.6  5.0
4  12347-1 12347  1  101  1  bbbb社 牛乳   1.6  2.5
5  12348-1 12348  1  102  1  cccc社 オレ   2.4  4.8
6  12349-1 12349  1  103  1  dddd社 チョコ   2.9  6.0

2000 12345-10 12345  10  100  1  aaaa社  缶10   10  20
2001 12346-10 12346  10  100  2  aaaa社  水10   12  24
2002 12347-10 12347  10  101  1  bbbb社 牛乳10   10  20 
2003 12348-10 12348  10  102  1  cccc社 オレ10   25  50
2004 12349-10 12349  10  103  1  dddd社 チョコ10  60  120
▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>> 〜マークは続くと言う意味で行っています。
>>よってシート1と2は1行目から6行目ではなく、
>>6行目〜も続くと言う意味です。
>
>なるほど、そういうことだったのですね。
>ところで、VLOOKUPやSUMIFを使いたくないのはなぜなのでしょうか?
>その理由によっては、
> Application.WorksheetFunction.SumIf(...)
>というような使い方もだめということになるのですが・・・
>
>>SKUとはコードみたいなものです。
>
>ちょっと冷たい聞き方をしましたね。
>SKUというシートが別にあるのでしょうか?
>あるならば、提示してください。

【46337】Re:VBAにSUMIFをさせてい。
発言  Kein  - 07/1/31(水) 11:36 -

引用なし
パスワード
   >SUMIFを使って行うとデーターを入力する際に
>再計算を毎回行われ、データーを入力するのに時間がかかります
ワークシートメニューの「ツール」「オプション」「計算方法」タブで
"手動計算"にチェックしておくといいです。再計算は [F9] を押すことで
行うように"習慣づけてしまう"のです。そうすればストレスがなくなります。
マクロによる数式の入力は、計算方法が手動になっていても強制的に再計算
される仕様となっています。だから 〜.Formula = "=SUMIF ・・・という
ようなコードを組んで、試してみたら良いと思います。
(もちろん手動計算に設定してからです。)

6259 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free