プロが教えるわが家の防犯対策術!

まえに一列飛ばしで合計を質問させて
頂きましたが、今回は一行飛ばしで合計を
やろうと思いましたがうまくいきません。
おしえてくれませんでしょうか
添付ファイルにみかんの合計 バナナの合計
のようにしたいのです。
宜しくお願い致します。

「一行飛ばしで合計」の質問画像

質問者からの補足コメント

  • 一列飛ばしではなく一列飛ばしですね
    失礼いたしました。

      補足日時:2019/07/23 14:32

A 回答 (3件)

画像のコードだとよく見えない(老眼なので)から、実際と合うかわかりませんけど。



・1列とばしなので変数的には、あるループ変数+1が隣の列になりますよ。
・書き出しは2列なのでReDimでの 1 To 1 はおかしいしResizeも同様かと。

多分こんな感じじゃない?(使用されてない変数は省いてますが)

Dim i As Long, j As Long
Dim x1 As Variant
Dim ans1 As Variant

x1 = Range("d3:k5").Value

ReDim ans1(1 To UBound(x1, 1), 1 To 2)

For i = LBound(x1, 1) To UBound(x1, 1)
For j = LBound(x1, 2) To UBound(x1, 2) - 1 Step 2
ans1(i, 1) = ans1(i, 1) + x1(i, j) 'みかん
ans1(i, 2) = ans1(i, 2) + x1(i, j + 1) 'バナナ
Next
Next

With Range("l3").Resize(UBound(ans1, 1), UBound(ans1, 2))
.Value = ans1
.NumberFormatLocal = "#,##0"
End With
    • good
    • 0
この回答へのお礼

いつも有難うございます。

お礼日時:2019/07/23 16:20

関数でできます。



質問文の例では、
L3セルに『=SUMPRODUCT(ISEVEN(COLUMN(D3:K3))*1,D3:K3)』を入力して下方向にコピペ
M3セルに『=SUMPRODUCT(ISODD(COLUMN(D3:K3))*1,D3:K3)』を入力して下方向にコピペ

注意するのはデータの配置を変更した場合です。ISEVEN関数が偶数列、ISODD関数が奇数列、でTRUEを返す関数なので、それに応じて修正する必要があります。
    • good
    • 0
この回答へのお礼

なかなかしぶいです。有難うございます。

お礼日時:2019/07/23 16:25

こんにちは



>まえに一列飛ばしで合計を質問させて頂きましたが、
>今回は一行飛ばしで合計をやろうと思いました

添付図の例は、「一列飛ばし」ではないの?
これではないみたいですが、「一行飛ばし」ってどういう集計なのでしょうね…?
しかも、縦軸の項目も、りんご、みかん、バナナというのでは、いい加減な例にしても意味をなさな過ぎるし…
    • good
    • 0
この回答へのお礼

失礼いたしました。

お礼日時:2019/07/23 15:21

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