• ベストアンサー

countif で #VALUE!

複数シート間で、I4のセルに含まれる○の数をカウントするために次の式を作成したのですが、#VALUE!が出ます。 なぜでしょうか? =COUNTIF(sheet1:sheet10!I4,"○")

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 COUNTIF関数の範囲には、シートをまたいだ指定は出来ないようです。 おそらく、SUMIF関数も出来ません。 一方、SUMやCOUNT、COUNTAはシートをまたいだ指定が出来ます。 したがって、以下のような方法があります。 もし、I4には、"○"以外の文字が入らないということなら、 =COUNTA(sheet1:sheet10!I4) でカウント出来ます。 "○"以外の文字が入る場合は、作業セルを使用します。 例えば、各シートのJ4に、 =IF(I4="○",1,0) と入力します。 そして、カウントする関数を、 =SUM(sheet1:sheet10!J4) とします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

ユーザー関数を作ってみました。 結果を出すセルに=cnt("sheet1","sheet5","○")のように入れます。 複数シートのA1(原題I4を変更)に○を入れカウントしました。 ただし「:」(なになにから何々まで)は画面のシート タブの位置関係でその間に挟まれたものに付いてカウントします。 Function cnt(a As String, b As String, c As String) Dim ss1 As Worksheet Set ss1 = Worksheets(a) s1 = ss1.Index Dim ss2 As Worksheet Set ss2 = Worksheets(b) s2 = ss2.Index ' MsgBox s2 ct = 0 For i = s1 To s2 If Worksheets(i).Cells(1, 1) = c Then ct = ct + 1 End If Next i cnt = ct End Function

すると、全ての回答が全文表示されます。

関連するQ&A