Excel VBA質問箱 IV

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

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


5030 / 13646 ツリー ←次へ | 前へ→

【52730】sumproduct関数について hato 07/11/29(木) 1:10 質問[未読]
【52731】Re:sumproduct関数について M 07/11/29(木) 6:56 発言[未読]
【52733】Re:sumproduct関数について hato 07/11/29(木) 8:08 質問[未読]
【53005】Re:sumproduct関数について ハト 07/12/11(火) 14:00 回答[未読]
【53018】Re:sumproduct関数について hato 07/12/11(火) 23:31 お礼[未読]

【52730】sumproduct関数について
質問  hato  - 07/11/29(木) 1:10 -

引用なし
パスワード
   i行30列に、順にsumproduct関数の以下のような数式をいれたいのですが、数式内のセルが思ったようになってくれません。
K3:K11と、K(i+14):S(i+14)(の転置)のsumproductを入れようと次のようにしました。

i = 1
Do Until i > 10
  Cells(i, 30).Select
  Selection.FormulaArray = _
    "=SUMPRODUCT(R[3]C[14]:R[11]C[14],TRANSPOSE(R[" & i + 14 & "]C[11]:R[" & i + 14 & "]C[19]))"
    i = i + 1
  Loop

実行すると、i行30列には入りますがそこは
=SUMPRODUCT(AR4:AR12,TRANSPOSE(AO16:AW16)) (1行30列の例)
となってしまいます。

わかりにくくて申し訳ないですが、よろしくお願いします。

【52731】Re:sumproduct関数について
発言  M  - 07/11/29(木) 6:56 -

引用なし
パスワード
   ▼hato さん:
>i行30列に、順にsumproduct関数の以下のような数式をいれたいのですが、
>数式内のセルが思ったようになってくれません。
>K3:K11と、K(i+14):S(i+14)(の転置)のsumproductを入れようと
>次のようにしました。
>
>実行すると、i行30列には入りますがそこは
>=SUMPRODUCT(AR4:AR12,TRANSPOSE(AO16:AW16)) (1行30列の例)
>となってしまいます。

{=SUMPRODUCT(AR4:AR12,TRANSPOSE(AO16:AW16))}
になりますが…

【52733】Re:sumproduct関数について
質問  hato  - 07/11/29(木) 8:08 -

引用なし
パスワード
   すみません、説明が足りませんでした。
確かにそのようになりますが、sumproductの中身がK3:K11と、K(i+14):S(i+14)(の転置)でなくAR4:AR12,TRANSPOSE(AO16:AW16)になってしまいます。
ちゃんとK3:K11と、K(i+14):S(i+14)が参照されるようにするにはどうすればいいでしょうか?

▼M さん:
>▼hato さん:
>>i行30列に、順にsumproduct関数の以下のような数式をいれたいのですが、
>>数式内のセルが思ったようになってくれません。
>>K3:K11と、K(i+14):S(i+14)(の転置)のsumproductを入れようと
>>次のようにしました。
>>
>>実行すると、i行30列には入りますがそこは
>>=SUMPRODUCT(AR4:AR12,TRANSPOSE(AO16:AW16)) (1行30列の例)
>>となってしまいます。
>
>{=SUMPRODUCT(AR4:AR12,TRANSPOSE(AO16:AW16))}
>になりますが…

【53005】Re:sumproduct関数について
回答  ハト  - 07/12/11(火) 14:00 -

引用なし
パスワード
   ▼hato さん:
>i行30列に、順にsumproduct関数の以下のような数式をいれたいのですが、数式内のセルが思ったようになってくれません。
>K3:K11と、K(i+14):S(i+14)(の転置)のsumproductを入れようと次のようにしました。
>
>i = 1
>Do Until i > 10
>  Cells(i, 30).Select
>  Selection.FormulaArray = _
>    "=SUMPRODUCT(R[3]C[14]:R[11]C[14],TRANSPOSE(R[" & i + 14 & "]C[11]:R[" & i + 14 & "]C[19]))"
>    i = i + 1
>  Loop
>
>実行すると、i行30列には入りますがそこは
>=SUMPRODUCT(AR4:AR12,TRANSPOSE(AO16:AW16)) (1行30列の例)
>となってしまいます。
>
>わかりにくくて申し訳ないですが、よろしくお願いします。

ちょっと古い投稿なんでもう解決してるかもしれませんが
IDが気になたので投稿しました(^^;

R[3]C[14]
これは相対参照の表記です
現在のセル位置からのセル位置になりますので

1行30列であれば
1+3→4行
30+14→44列(AR列)
となります。

K3=R3C11 ですから
1行30列にK3と書き込むならば
R[2]C[-19]
となりますね

ただし、K3が固定であるならば
絶対参照で書いたほうがいいでしょう

【53018】Re:sumproduct関数について
お礼  hato  - 07/12/11(火) 23:31 -

引用なし
パスワード
   ハト さん
いつもRC方式では書いてなかったので、このような初歩の初歩に
返信してくださって大変助かりました。この部分の記述はあきらめて
いたのですが、今書き直してうまく行きました。
ありがとうございます!


▼ハト さん:>
>ちょっと古い投稿なんでもう解決してるかもしれませんが
>IDが気になたので投稿しました(^^;
>
>R[3]C[14]
>これは相対参照の表記です
>現在のセル位置からのセル位置になりますので
>
>1行30列であれば
>1+3→4行
>30+14→44列(AR列)
>となります。
>
>K3=R3C11 ですから
>1行30列にK3と書き込むならば
>R[2]C[-19]
>となりますね
>
>ただし、K3が固定であるならば
>絶対参照で書いたほうがいいでしょう

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