各項目毎の集計計算をしたいのですが
例
R1C1=項目区分1
R1C2.FormulaR1C1="=SUMIF(C3,""Zn"",C2)" のような計算式をセットしたい
R2C1=""
R2C2=2
R2C3=Z1
R3C1=""
R3C2=3
R3C3=Z1
R4C1=項目区分2
R4C2.FormulaR1C1="=SUMIF(C3,""Zn"",C2)" のような計算式をセットしたい
R5C1=""
R5C2=4
R5C3=Z2
R6C1=""
R6C2=5
R6C3=Z2
Cells(1,2).FormulaR1C1= "=SUMIF(C3,""Zn"",C2)"
但し Cells(1,2)のROW 部分は項目区分を入力したROWアドレスとなります。
上記部分の n部分を変数指定はできるのでしょうか?
または Zn を変数指定はできるのでしょうか?この場合のZnは数値となります。
理由
区分の範囲が不特定の為(追加削除がある) 項目区分名のカラム2に計算式をセットしておきたい
どうかご教授をお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Sub Test2()
Dim n As Long
Dim rng As Range
Set rng = Range("C1", Cells(Rows.Count, 3).End(xlUp).Offset(, -2))
Application.ScreenUpdating = False
For Each c In rng
If c.Value Like "項目区分#" Then
n = Replace(c.Value, "項目区分", "") '...*
n = StrConv(n, vbNarrow) '...*
c.Offset(, 1).Formula = "=SUMIF(C:C,""Z" & n & """, B:B)"
End If
Next
Application.ScreenUpdating = True
End Sub
Formulaプロパティなら、R1C1方式でも、A1方式でも、数式は同じです。
""Z" & i は、CStr とか、Trimとか入れる必要があるのかは、ここでは無視します。エラーが発生したら考えればよいです。普通、VBAを得意とする人は、こういう場合、ワークシートに数式は入れないです。全部、マクロで数字を入れていきます。
No.2
- 回答日時:
>または Zn を変数指定はできるのでしょうか?この場合のZnは数値となります。
Zn は文字列"Z"と数値 n をくっつけた文字列ではなくて
Z1,Z2,Z3..これが「変数」、という意味でしょうか。
つまり
Sub test1()
Dim Z1 As Long
Dim Z2 As Long
Dim Z3 As Long
Z1 = 2
Z2 = 5
Z3 = 8
MsgBox "=SUMIF(C3," & Z1 & ",C2)"
End Sub
こういう事がしたく、Z1の1を変数指定できるかという意味?
もしそうなら配列変数を使います。
Sub test2()
Dim Z(1 To 3) As Long
Dim n As Long
Z(1) = 2
Z(2) = 5
Z(3) = 8
n = 1
MsgBox "=SUMIF(C3," & Z(n) & ",C2)"
End Sub
または、
>但し Cells(1,2)のROW 部分は項目区分を入力したROWアドレスとなります。
変数Z()の要素が、数式を入力するセルからの相対位置で求められるなら
変数を使うまでもなく、相対参照を使った数式にすれば良いです。
Cells(x, 2).FormulaR1C1 = "=SUMIF(C3,R[1]C[1],C2)"
大変有り難うございます。
& でくくるは他のHPで判りましたが "の数と 間の空白でにひっかかっていました。
"" ""でなくていいんですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 a1,a2, a3をベクトル空間Vのベクトルとする。a1+a2,a2+a3,a3+a1が一次独立のと 2 2022/10/02 15:55
- 工学 CR発振回路 C1=C2=C=0.001【uF】 R1=R2=R3=16【kΩ】 R4は出力電圧が正 2 2023/05/10 19:13
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- Excel(エクセル) Excelについて質問があります。 関数の数値入力についてなのですが、 b1にー c1に数値 がある 1 2023/05/28 12:13
- Excel(エクセル) エクセル関数について 2 2022/05/30 14:36
- Excel(エクセル) スプレッドシートについて A1÷B1の値をC1に、A2÷B2をC2、A3÷B3をC3…といった感じで 1 2022/05/17 20:24
- 数学 座標平面上に放物線 C1: y=ax^2+b^x+4 がある。 C1と直線 y=1に関して対称で あ 1 2023/07/16 22:27
- Excel(エクセル) Excelについて質問があります。 関数の数値入力についてなのですが、 b1にー c1に数値 がある 2 2023/05/28 12:30
- Excel(エクセル) Excel 数式を教えてください 2 2022/06/02 12:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
バッチでcsvファイルの指定のカ...
-
リストビューの項目の内容を変...
-
ListViewのカラムの色の変更
-
VB6でActiveReport1.5Jを使って...
-
google formsで回答者をスプレ...
-
クリスタルレポートに値を渡す
-
VB6リストボックスでの文字...
-
COBOLについて
-
DataViewで複数条件の...
-
fgetcsvでCSVを取得した際のnul...
-
C# ListBoxの項目にLabelを表示
-
DataGridView 右詰め
-
php mysql で WHERE句内に変数...
-
Bool型のTrue、Falseの書き方
-
C# リストビューの値を取得
-
FormulaR1C1でSUMIF変数指定
-
差し込み後、元データを変更し...
-
エクセルで最後の文字だけ置き...
-
フィルターかけた後、重複を除...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
バッチでcsvファイルの指定のカ...
-
COBOLについて
-
リストビューの項目の内容を変...
-
php mysql で WHERE句内に変数...
-
DataViewで複数条件の...
-
fgetcsvでCSVを取得した際のnul...
-
Zend_DBを使ったselectで文字が...
-
google formsを使ったタスク依...
-
初心者)DataGridViewの入力桁...
-
FormulaR1C1でSUMIF変数指定
-
DataGridView 右詰め
-
COBOL プログラミング
-
ListViewのカラムの色の変更
-
jQueryで、カラム幅を変更でき...
-
PHPでDBからデータを抽出してHT...
-
テキスト幅にあわせた表の作り...
-
VB6でActiveReport1.5Jを使って...
-
DataGridViewのデータをComboBo...
-
[WHS]定数宣言の際にリテラル文...
おすすめ情報