- ベストアンサー
エクセルのcountaの集計方法
エクセルのcountaで集計したとき、セルに関数が入力されていると、それもカウントして集計してしまいます。 関数は集計せず、数値や記号だけをカウントして集計する方法があれば、教えてください。 また、この集計を行う場合、countaで無理なら、他の方法があれば教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
関数の入っているセルが空欄で表示しているセルだけのカウントなら、配列数式でクリアできると思います。 例えばA1からA10まで関数が入っているとして、A11に次の式を入力する。 =SUM((IF(A1:A10="",0,1))) 入力後、ShiftとCtrlを押しながら改行で式の外側が{}で囲われます。これでカウントできると思います。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
TYPE関数に、式の判定する引数(8)にその機能があったようなのですが、見つかりませんでしたね。 >関数は集計せず、数値や記号だけをカウントして集計する方法があれば、 ワークシートの上で、このような場面に出会ったことは一度もありませんが、テクニックだけですが、書いておきます。 ** A列にデータがあるとします。 A1に調べたいセルがあったら、 例えば、ここでは、B列に補助列を設けるとします。 「B1」に、カーソルを置いてください。 挿入-名前-定義 名前(W) 「CheckCell」(任意の名前) 参照範囲(R): 「=GET.CELL(48,A1)+NOW()*0」 と入れて、ダイアログをOKで閉じます。 次に、B1に =CheckCell と入れて、フィルで、ドラッグコピーをします。 式があれば、「1」、そうでなく定数があれば、「0」が立ちますから、 例えば、A1~A5の範囲で、=CheckCell が、B1:B5 なら、 =COUNTA(A1:A5)-SUM(B1:B5) とすれば出てきます。 次に、 ユーザー定義関数でしたら、以下のようになります。 ツール-マクロ-Visual Basic Editor 挿入-標準モジュール で以下を貼り付けます。 Function NotFormulaCount(範囲 As Range) As Long Dim Rng As Range Dim c As Range Dim cnt As Long Set Rng = 範囲 For Each c In Rng If c.HasFormula = False And Not IsEmpty(c) Then '式でないもの、空でないものは、カウントする cnt = cnt + 1 End If Next c NotFormulaCount = cnt End Function セルには、 =NotFormulaCount(A1:A5) のように入力します。 (見やすいように、大文字、小文字を使っていますが、文字の大小は関係ありません)
お礼
回答の内容がちょっと難しく、いますぐ試すことはできませんが、ゆっくりと挑戦してみます。 ありがとうございました。
- harukabcde
- ベストアンサー率15% (94/610)
数値だけを集計するなら =count で出来ますが 記号と関数の違いは関数では判断できないですね
- boy_boy
- ベストアンサー率55% (56/101)
>に関数が入力されていると は数式で空白表示に見せているセルはカウントしない と云う事でしょうか? =SUMPRODUCT((LEN(セル範囲)>0)*1) では駄目でしょうか?
お礼
ありがとうございました。