Excel VBA質問箱 IV

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

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


5716 / 13645 ツリー ←次へ | 前へ→

【49253】条件で合計(別シート参照の場合) bananaice 07/5/29(火) 11:03 質問[未読]
【49257】Re:条件で合計(別シート参照の場合) ウッシ 07/5/29(火) 15:38 発言[未読]
【49291】Re:条件で合計(別シート参照の場合) bananaice 07/5/30(水) 17:05 お礼[未読]
【49258】Re:条件で合計(別シート参照の場合) Marron 07/5/29(火) 15:52 発言[未読]
【49292】Re:条件で合計(別シート参照の場合) bananaice 07/5/30(水) 17:09 お礼[未読]

【49253】条件で合計(別シート参照の場合)
質問  bananaice  - 07/5/29(火) 11:03 -

引用なし
パスワード
   VBA初心者です。よろしくお願いします。

シート1 売上

A列   B列 C列 D列 E列 F列
いちご 10月 11月 12月 1月 2月 3月 ・・
佐藤   15  25  10  0  0  65
加藤    0  0  25  0  0  15 
伊藤    10  15  25  15  0  15

小計   45  40  50  15  0  105
「掛率計」 

シート2 掛率
A列   B列 C列 D列 E列 F列
掛率 10月 11月 12月 1月 2月 3月・・
佐藤  1.2  1.2 1.2  1.3 1.4 1.4
加藤  1.4  1.4 1.4  1.4 1.4 1.4
伊藤  1.1  1.1 1.1  1.2 1.2 1.2


シート1には商品名が50以上あります。
「掛率計」行に、
売上が0でなかったら、シート2の掛け率の合計を出したいのです。
例)シート1 10月の掛率計 : 1.2+1.1 =2.3
いちご以下他の商品も同様にしたいのです。
今は計算式で、
=IF(B2<>0,VLOOKUP($A$2,Sheet1!$B$2:$N$13,2,FALSE),0)+IF(B3<>0,VLOOKUP($A$3,Sheet1!$B$2:$N$13,2,FALSE),0)・・・
と記述しておりますが、他の商品へ数式をコピーすると、絶対参照をまた
変えなければいけないので、困っております。。

どうぞ宜しくお願い致します。

【49257】Re:条件で合計(別シート参照の場合)
発言  ウッシ  - 07/5/29(火) 15:38 -

引用なし
パスワード
   こんにちは

>Sheet1!$B$2:$N$13
表例からすると、
>Sheet2!$A$2:$M$13
では?

或いは、シート2の表例がB列から?

>シート1には商品名が50以上
商品ごとの表の位置関係は?
間隔1行とか2行とか。
「いちご」1例だけでは分かりません。

【49258】Re:条件で合計(別シート参照の場合)
発言  Marron  - 07/5/29(火) 15:52 -

引用なし
パスワード
   ▼bananaice さん:
こんにちは。

>A列   B列 C列 D列 E列 F列
>いちご 10月 11月 12月 1月 2月 3月 ・・
>佐藤   15  25  10  0  0  65
>加藤    0  0  25  0  0  15 
>伊藤    10  15  25  15  0  15
>・
>小計   45  40  50  15  0  105
>「掛率計」 
>
>シート2 掛率
>A列   B列 C列 D列 E列 F列
>掛率 10月 11月 12月 1月 2月 3月・・
>佐藤  1.2  1.2 1.2  1.3 1.4 1.4
>加藤  1.4  1.4 1.4  1.4 1.4 1.4
>伊藤  1.1  1.1 1.1  1.2 1.2 1.2
>・
この表を見る限り,シート1も2も規則的に対応したセルに売上と掛率が記入してあるように見られるので,単純に

=IF(B2=0,0,Sheet2!B2)+IF(B3=0,0,Sheet2!B3)+IF(B4=0,0,Sheet2!B4)

でもいいような・・・

>シート1には商品名が50以上あります。
50以上とありますが,どのように50以上が配置されているのか
(いちごの下に続くのか?下にも横にもひろがるのか?)
分からないので,何ともいえないのですが,どちらに続くにせよ,
同じ位置(例えばB2)にそれぞれの値が入るのならば,上記の数式で十分だと思います。
下に続くのであれば,bananaice さん流であれば,

=IF(B2<>0,VLOOKUP($A2,Sheet2!$A2:$G13,2,FALSE),0)
+IF(B3<>0,VLOOKUP($A3,Sheet2!$A2:$G13,2,FALSE),0)
+IF(B4<>0,VLOOKUP($A4,Sheet2!$A2:$G13,2,FALSE),0)

でいけるはずですが・・・
掛率が固定位置であれば

=IF(B2<>0,VLOOKUP($A2,Sheet2!$A$2:$G$13,2,FALSE),0)
+IF(B3<>0,VLOOKUP($A3,Sheet2!$A$2:$G$13,2,FALSE),0)
+IF(B4<>0,VLOOKUP($A4,Sheet2!$A$2:$G$13,2,FALSE),0)

ですかね。

ってVBAで表現したかったのでしょうか?
それならば,無視して下さい。(^^;
関数的な悩みのようでしたので,参考(なるのかな?)までにと思って・・・

【49291】Re:条件で合計(別シート参照の場合)
お礼  bananaice  - 07/5/30(水) 17:05 -

引用なし
パスワード
   ウッシさん、ご回答ありがとうございました!

>>Sheet1!$B$2:$N$13
>表例からすると、
>>Sheet2!$A$2:$M$13
>では?
ご指摘いただいた通りです。
失礼いたしました。

今回の方法は非効率だと思い別の方法にすることにしました。

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

【49292】Re:条件で合計(別シート参照の場合)
お礼  bananaice  - 07/5/30(水) 17:09 -

引用なし
パスワード
   Marron さん、ご回答ありがとうございました!!
>
>=IF(B2=0,0,Sheet2!B2)+IF(B3=0,0,Sheet2!B3)+IF(B4=0,0,Sheet2!B4)
でいけました!
なんだか難しく考えていました。教えていただいたのは、
すっきり解りやすくてよかったです!

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

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