[[20100608140350]] 『SUMPRODUCT関数』(まつ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『SUMPRODUCT関数』(まつ)
 VBAを使って 抽出用シートAG8〜列固定で行を一行ずつずらしたいのですが ExcelですとSUMPRODUCT(((NEW!$E$2:NEW!$E$507=$J8)*((NEW!$D$2:NEW!$D$507=$G8)*…………として下にコピーで抽出できますが VBAではどうすればよいのでしょうか? 

 『NEW』のシートから抽出結果

      AG   AH  
    
 6     あ	     い
 7    コード    価
 8    37	    3,100
 9     6	   74,600 
 10   21	    6,100 
 11  111	  882,700 

 Sub aaa()
 Dim i, last As Integer
 i = 8
 last = Range("AG65530").End(xlUp).Row - 1
 For i = 8 To last
    Range("AG" & i).Value = Evaluate("SUMPRODUCT(((NEW!$E$2:NEW!$E$507=$J8)*((NEW!$D$2:NEW!$D$507=$G8)*((NEW!$U$2:NEW!$U$507=$AG$6)*((NEW!$R$2:NEW!$R$507))))))")
Next i

 End Sub


 その式が何をしているのかわかりませんし
 1行づつずらすというのも意味がわかりません。

 最終的にやりたい事を言葉や表を使って説明できますか?

 (momo)


 申し訳ありません。説明がします。
 『NEW』というシートにデータがあり 抽出したいシート『抽出』のAG列8行目に
                           この部分
                            ↓
 SUMPRODUCT関数で式はSUMPRODUCT(((NEW!$E$2:NEW!$E$507=$J8)*((NEW!$D$2:NEW! 
   この部分
     ↓
  $D$507=$G8)*((NEW!$U$2:NEW!$U$507=$AG$6)*((NEW!$R$2:NEW!$R$507))))))")と入れてデータを抽出させています。
 エクセルではこの式でAG列の8行目以降を右クリックで関数を入れたい行(AG列69行目)までコピーすると列固定で行が
 (上記式のこの部分↓の部分が$J8→$J8 $J9→$J9 .... $J69と)1行ずつずれて下記の表のような抽出結果となります。

 抽出結果

      A(列)・・・・ AG(列)  AH  
 1(行)
 .   
 6(行)           あ	 い
 7             コード     価
 8             37	3,100
 9              6       74,600 
 10            21	6,100 
 11             111       882,700 

 これをマクロではどう書けばよいのかが解らず困っています。
 よろしくお願いします。  

 Sub aaa()
 Dim i, last As Integer
 i = 8
 last = Range("AG65530").End(xlUp).Row - 1
 For i = 8 To last
    Range("AG" & i).Value = Evaluate("SUMPRODUCT(((NEW!$E$2:NEW!$E$507=$J8)*((NEW!$D$2:NEW!$D$507=$G8)*((NEW!$U$2:NEW!$U$507=$AG$6)*((NEW!$R$2:NEW!$R$507))))))")
Next i

 End Sub
(まつ)

 1.単に数式を入れたいのでしたらマクロの記録を取れば出来ます。

 2.Evaluateの結果を値としてセルに入れたいのでしたらEvaluateの中の数式の文字列を変数iで可変にします。

 3.そもそもVBAなので計算式を使わずに処理したいのでしたら処理のロジックを教えてください。

 さて、どれでしょうか・・・?
 (momo) 

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.