Excelのあるシートに以下の表があります。
E列 ・・・・・・ F列 ・・・ G列
17行 2008/1/5 ・・ 売上 ・ 1,500
18行 2008/2/10 ・・売上 ・ 2,100
19行 2008/3/11 ・・売上 ・ 1,700
20行 2008/3/18 ・・売上 ・ 1,000
21行 2008/4/1 ・・・売上 ・ 2,500
23行 2008/3/15 ・・・・・・・ 3,500
この場合G23セルには=SUMIF(E17:E21, ">" & E23,G17:G21)
という式が入っており、結果的に3,500という数字が見えます。
しかし、このG23セルにマクロにて式を書込み同じ3,500という
値を出したいのですが、マクロ上では何と記述すれば同じに
なるのか教えて下さい。
例えばrange("G23").Fomula= "=SUMIF(E17:E21, ">" &E23,G17:G21)
と記述してもエラーになってしまいます。
No.1ベストアンサー
- 回答日時:
Range("G23").Formula = "=SUMIF(E17:E21, "" > "" & E23,G17:G21)"
こうではないかな。
お返事が遅くなり申しわけありませんでした。
お蔭様でうまくいきました。
回答いあただいたRange("G23").Formula = "=SUMIF(E17:E21, "" > "" & E23,G17:G21)" をやってみましたが、エラーがなかなかわかり
ませんでしたが、">"を" > "でやっていたためのエラーでした。
No.3
- 回答日時:
こんにちは。
ある程度のExcel自体を知らないと、話は理解されないと思いますが、
確かに、G23 の23行目が固定した行なら、数式も、A1方式の固定式でよいと思います。だから、
Range("G23").FormulaLocal = "=SUMIF(E17:E21, "">"" &E23,G17:G21)"
となりますが、E17:21, E23, G17:G21 は、すべて、相対参照式で書かれていますから、
数式を入力する場所が、その回では、G23 であり、そのセルに対して、E23 があり、その検索範囲と集計範囲が、E17:21, G17:G21 と、すべて相対的位置関係にあるものだと思うのです。G23 は、次は、G40 かもしれません。
実際に、どのような数式を入れたいのかは分かりませんが、例えば、相対参照位置にあるもので、セルの範囲が、上に遡って5セルなら、このような数式になります。言い換えると、R1C1方式は、相対位置を表すもので、統一した数式で書けます。
With Range("G23")
If .Row > 6 Then
.FormulaLocal = "=SUMIF(R[-6]C[-2]:R[-2]C[-2],"">""& RC[-2],R[-6]C:R[-2]C)"
End If
End With
No.2
- 回答日時:
=SUMIF(E17:E21, ">" & E23,G17:G21)
こういう文字列を作成すればいいわけですから
先ず、両端を、”(ダブルクォーテーション)で囲みます
実際は、半角の「"」です。
”=SUMIF(E17:E21, ">" & E23,G17:G21) ”
そして、問題は、”>” これです。
これは、ダブルクォーテーションで囲まれた状態で表示しなければならないので
””>””
このようにさらに、””で囲まないといけません。
要するに、” を表示したいときは、”” とふたついるということです。
”=SUMIF(E17:E21, ””>”” & E23,G17:G21) ”
で、以下のようにすればいいわけです。
Range("G23").FormulaLocal = "=SUMIF(E17:E21, "">"" & E23,G17:G21)"
以上。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Excel(エクセル) 【エクセル】複雑な関数を教えてください 1 2023/06/05 18:09
- Excel(エクセル) 【Excel】複数列ごとに取得するセルを変更したい 2 2023/03/23 21:04
- Excel(エクセル) スプレッドシートの関数 2 2022/11/16 17:36
- Excel(エクセル) セル内の一部に別セルを差し込む 3 2022/09/18 04:39
- Excel(エクセル) エクセルのマクロを教えてください 2 2022/05/13 10:21
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- その他(データベース) 伝票番号、品番、在庫としてマクロでもAccessでもデータ表を作りたいのですが、ご指導お願いします 1 2022/11/13 23:48
- CGI VBAで条件から範囲を指定して色を塗る方法を知りたいです 1 2022/06/30 16:05
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
エクセル1行おきのセルを隣の...
-
エクセルで、指定の値よりも大...
-
文字列から英数字のみを抽出す...
-
excelで、空白を除いてデータを...
-
自分の左隣のセル
-
条件付き書式の色付きセルのカ...
-
エクセルで特定のセル内にだけ...
-
【Excel】IF文「ある文字を含ん...
-
エクセルで年月日から月日のみへ
-
エラー「#REF」の箇所を置き換...
-
EXCELでマイナス値の入ったセル...
-
【Excel】4つとばしで合計する方法
-
同一セル内の重複文字を削除し...
-
週の労働時間を計算するエクセル
-
エクセルで、A2のセルにA3...
-
セルを結合した時のエクセル集...
-
Excelで大量のセルに一気に関数...
-
エクセル 平日と土日祝の時間...
-
EXCELのcountif関数での大文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
エクセルで、指定の値よりも大...
-
自分の左隣のセル
-
セルを結合した時のエクセル集...
-
Excelで大量のセルに一気に関数...
-
エクセルで、A2のセルにA3...
-
excelで、空白を除いてデータを...
-
エクセルで特定のセル内にだけ...
-
週の労働時間を計算するエクセル
-
エクセルで年月日から月日のみへ
-
条件付き書式の色付きセルのカ...
-
EXCELのcountif関数での大文字...
-
EXCELでマイナス値の入ったセル...
-
エクセルに入力後、別シートの...
-
【Excel】4つとばしで合計する方法
-
同一セル内の重複文字を削除し...
-
エクセルでエンターを押すと任...
-
エラー「#REF」の箇所を置き換...
おすすめ情報