Excel VBA質問箱 IV

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

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


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

【58632】COUNTIF関数とSUMIF関数をマクロで使う あい 08/11/1(土) 17:15 質問[未読]
【58634】Re:COUNTIF関数とSUMIF関数をマクロで使う かみちゃん 08/11/1(土) 17:55 発言[未読]
【58635】Re:COUNTIF関数とSUMIF関数をマクロで使う kanabun 08/11/1(土) 18:14 発言[未読]
【58637】Re:COUNTIF関数とSUMIF関数をマクロで使う あい 08/11/1(土) 22:56 お礼[未読]

【58632】COUNTIF関数とSUMIF関数をマクロで使う
質問  あい  - 08/11/1(土) 17:15 -

引用なし
パスワード
   ここを利用するのは初めてなので、不躾な点があったらご容赦下さい。
早速ですが、質問致します。


Sheet1のA列の数字を検索して、Sheet2にその結果を集計したいです。
例えば、

「Sheet2のA1が正の数字の個数、Sheet2のB1が負の数字の個数、Sheet2のC1が正の数字の合計、Sheet2のD1が負の数字の合計、Sheet2のE1が最小値」

といった形に集計したいのです。
Sheet2のA1〜B1がCOUNTIF関数、C1〜D1がSUMIF関数、E1がMIN関数になります。
この際、検索範囲は全部同じになるので、一々範囲を指定するか、Sheet2のA1に入力されている検索範囲をコピペして集計する事になると思います。
今の作業内容としては、Sheet2のA1の検索範囲をコピーして、B1以降のセルに予め入れておいた計算式の中から、検索範囲をマウスで選択してペースト…というのを手作業でやってます。
これが実に面倒な作業で、出来ればF1辺りに検索範囲を入力しておけば(例えば「Sheet1!A2:A12」とか)、ボタン1つでA1〜E1に入っている関数が勝手に検索範囲を参照して結果を出してくれる・・・みたいな事は可能でしょうか?


'F1に「Sheet1!A2:A12」と入力されている
x=Range("F1")
A1=COUNTIF(x,">0")
B1=COUNTIF(x,"<0")
C1=SUMIF(x,">0",x)
D1=SUMIF(x,"<0",x)
E1=MIN(x)


イメージ的にはこんな感じになると思うんですが、コードが分かりません。
出来れば、計算式そのものをセルに入れたいので「WorksheetFunction.CountIf」では無い方が望ましいです。

よろしくお願いします。

【58634】Re:COUNTIF関数とSUMIF関数をマクロで使う
発言  かみちゃん E-MAIL  - 08/11/1(土) 17:55 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>イメージ的にはこんな感じになると思うんですが、コードが分かりません。
>出来れば、計算式そのものをセルに入れたい

質問の内容をしっかり把握できていませんが、
特定の範囲に数式を設定することはできますか?
VBAで解決したいならば、「マクロの記録」で記録するとある程度のコードは、
記録されるのですが、試してみていますか?
試しているならば、そのコードを提示してみませんか?

【58635】Re:COUNTIF関数とSUMIF関数をマクロで使う
発言  kanabun  - 08/11/1(土) 18:14 -

引用なし
パスワード
   ▼あい さん:

おじゃまします。

>'F1に「Sheet1!A2:A12」と入力されている
>x=Range("F1")
>A1=COUNTIF(x,">0")
>B1=COUNTIF(x,"<0")
>C1=SUMIF(x,">0",x)
>D1=SUMIF(x,"<0",x)
>E1=MIN(x)

Sheet2の
A1 セルに =COUNTIF(INDIRECT(F1),">0")
同様に
C1 セルに =SUMIF(INDIRECT(F1),">0")
  :
  :
と入れる操作をマクロ記録してみればいいと思います。
マクロのばあい、R1C1形式で記録されます↓

セル.FormulaR1C1 = "=COUNTIF(INDIRECT(RC[5]),"">0"")"

A1形式で数式セットに直せば、手動操作のまんまになります。

セル.Formula = "=COUNTIF(INDIRECT(F1),"">0"")"

【58637】Re:COUNTIF関数とSUMIF関数をマクロで使う
お礼  あい  - 08/11/1(土) 22:56 -

引用なし
パスワード
   かみちゃんさん、kanabunさん、早速の返信、有難うございます。


求めていたのはINDIRECT関数という事が分かり、早速使用した所問題が解決しました。
有難うございました。

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