Excel VBA質問箱 IV

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

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


4685 / 13644 ツリー ←次へ | 前へ→

【55185】Count関数のエラー値について。。。 (。。j) 08/4/21(月) 16:55 質問[未読]
【55186】Re:Count関数のエラー値について。。。 Jaka 08/4/21(月) 17:29 発言[未読]
【55187】Re:Count関数のエラー値について。。。 (。。j) 08/4/21(月) 18:41 質問[未読]
【55190】Re:Count関数のエラー値について。。。 りん 08/4/22(火) 7:40 発言[未読]
【55191】Re:Count関数のエラー値について。。。 VBWASURETA 08/4/22(火) 9:15 発言[未読]
【55192】Re:Count関数のエラー値について。。。 Jaka 08/4/22(火) 11:00 発言[未読]
【55199】Re:Count関数のエラー値について。。。 \(^^)/ 08/4/22(火) 12:08 お礼[未読]

【55185】Count関数のエラー値について。。。
質問  (。。j)  - 08/4/21(月) 16:55 -

引用なし
パスワード
   いつもおせわになっております。

カウント関数使って定数が入ったセルの数を知り、それで合計の金額を割り、指定のセルに平均値を出したいと思っています。

普通に関数で
=SUM(G2:IV2)/COUNT(G2:IV2)
という計算式を指定のセルに書き込んでみましたが、
途中のセルに計算式が入れてあるのがあり、そのためエラー値が出てしまいます。
Count関数で計算式の入っているセルを避け定数(直接書き込んである数字)のセルだけを認識させるにはどのようにすればよいのでしょうか?

宜しくお願いしますm(_ _)m

【55186】Re:Count関数のエラー値について。。。
発言  Jaka  - 08/4/21(月) 17:29 -

引用なし
パスワード
   >普通に関数で
>=SUM(G2:IV2)/COUNT(G2:IV2)
>という計算式を指定のセルに書き込んでみましたが、
Range("A1").Formula = "=SUM(G2:IV2)/COUNT(G2:IV2)"
??

msgbox Application.SUM(range("G2:IV2"))/Application.COUNT(range("G2:IV2"))
??

【55187】Re:Count関数のエラー値について。。。
質問  (。。j)  - 08/4/21(月) 18:41 -

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

すばやく返事いただいたのに申し訳ないのですが、、、アホなので
じぇんじぇん分かりませんxx;

関数の計算式ではできないということでしょうか??

お願いしますっっsm(__;)m

【55190】Re:Count関数のエラー値について。。。
発言  りん E-MAIL  - 08/4/22(火) 7:40 -

引用なし
パスワード
   (。。j) さん、おはようございます。
>関数の計算式ではできないということでしょうか??
配列数式でできなくはないかもしれませんが、ここはVBAのQ&Aですし。

編集→ジャンプ→セル選択→定数&数値
で選択されたセル範囲で平均を出すマクロにしてみました。

Sub test()
  Dim r1 As Range
  '念のためスキップを入れる
  On Error Resume Next
  Set r1 = Application.ActiveSheet.Range("G2:IV2").SpecialCells(xlCellTypeConstants, xlNumbers)
  On Error GoTo 0
  '
  If Not r1 Is Nothing Then
   With Application.WorksheetFunction
     MsgBox .Average(r1), vbInformation
   End With
  Else
   MsgBox "G2:IV2に定数なし", vbExclamation
  End If
End Sub

こんな感じです。

【55191】Re:Count関数のエラー値について。。。
発言  VBWASURETA  - 08/4/22(火) 9:15 -

引用なし
パスワード
   皆さんおはようございます。

Range("A1").Formula = "=SUM(G2:IV2)/COUNT(G2:IV2)"
??

msgbox Application.SUM(range("G2:IV2"))/Application.COUNT(range("G2:IV2"))
??

のJakaさんが書いているのは多分メッセージボックスで
どいう結果が出るの?ということでは?と思いますよ。

二つの関数ともに同じシート関数なので結果としては同じなのかな?と思います。

【55192】Re:Count関数のエラー値について。。。
発言  Jaka  - 08/4/22(火) 11:00 -

引用なし
パスワード
   すみません。
帰り間際だったので、質問文をよく読んでいませんでした。
てっきりVBAでの書き方が解らないだと思って..。

こんなのとか。
(マイナスがある場合は考慮してません。)
=SUMIF(G2:IV2,">0")/COUNT(G2:IV2)

配列だと、
{=SUM(IF(ISNUMBER(G2:L2),G2:L2,0))}

>Count関数で計算式の入っているセルを避け
でなく、エラー値を除いてSUM方式。

【55199】Re:Count関数のエラー値について。。。
お礼  \(^^)/  - 08/4/22(火) 12:08 -

引用なし
パスワード
   ▼Jaka さん、りんさん、VBWASURETAさん、ありがとうございました。

関数式でやりたかったので
JAKAさんのSMUIFの式を使わせていただきます。上手くいきました(・∀・)
本当にありがとうございました。

またよろしくお願いします。

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