• 締切済み

Excelの範囲内カウント方法について

Excelの指定した範囲内のセルに入力されている国語、数学、社会の個数をカウントしたい場合です。カウントイフの数式+でつなぐ方法しかないんですか?

  • pusuta
  • お礼率61% (636/1042)

みんなの回答

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.9

[No.7]への補足へのコメント、 》 これはマクロですかね?? それが、“ベストアンサー率 34%”という超ベテランの、マクロ音痴の私への真面目なコメントとは到底信じられませぬッ! [数式バー]に示したように、「カウントイフの数式+でつな」がない、僅か1個を使用しただけの、チョー簡単な回答でした。 ちなみに、式中の Range は、赤地のセル A11 に白フォントで明記していたように、範囲 A1:F10 に付けた単なる範囲名なので、当該式は式が長くなるけど(だから、私は名前多用派の一匹狼です(*^_^*))、 =COUNTIF($A$1:$F$10,C13) と同じことです。 もう一つ、ちなみに、 範囲 A1:F10 を選択⇒マウスポインタを[名前ボックス]内に放り込み⇒そこに在った文字列“A1”を文字列“Range”に上書き⇒Enterを「エイヤッ!」と憎々し気に叩き付けて、名前 Range を作成した次第です。 諄くなった序でに、式 =COUNTIF($A$1:$F$10,C13) を入力したセル C14 は右方にオートフィルするだけぇ~、です。

  • kkkkkm
  • ベストアンサー率65% (1619/2458)
回答No.8

回答No.4の補足です。 回答No.4で =SUMPRODUCT((A1:A10=B1:D1)*1) B1:D1に空白があってA1:A10にも空白があるとそれも足してしまいました。 と回答しましたが B1:D1の空白になるセルにたとえばダミーとかA1:A10に出てこない文字列を入れておけば大丈夫です。 ただし、一列もしくは一行だけの対応になると思いますから 複数行だと =SUMPRODUCT((A1:A10={"国語","数学","社会"})*1)+SUMPRODUCT((B1:B10={"国語","数学","社会"})*1) 横方向一行でしたら =SUMPRODUCT((G11:N11=TRANSPOSE({"国語","数学","社会"}))*1) 複数行だと =SUMPRODUCT((G11:N11=TRANSPOSE({"国語","数学","社会"}))*1)+SUMPRODUCT((G12:N12=TRANSPOSE({"国語","数学","社会"}))*1) 複数行や列だと場合によってはCountifで繋げたほうがいいかもですね。 ちなみに強引な作戦の自作関数でしたら =mCountIF(A1:B10,"国語","数学","社会") で、範囲は複数行や複数列でも大丈夫です。

pusuta
質問者

お礼

大変詳しい回答ありがとうございましした。チョット難しそうですがやってみたいと思います。

Powered by GRATICA
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.7

添付図参照(Excel 2019)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓

pusuta
質問者

お礼

この方法は初めて知りました!試してみます。

Powered by GRATICA
pusuta
質問者

補足

これはマクロですかね??

  • NuboChan
  • ベストアンサー率47% (745/1583)
回答No.6

例えば、 Excelの指定した範囲内のセルに入力されている国語、数学、社会の各文字列の個数をカウントするVBAのコード Sub CountSubjects() Dim rng As Range Dim countJapanese As Integer Dim countMath As Integer Dim countSocial As Integer Set rng = Range("A1:C10") '指定した範囲内のセルを選択 countJapanese = WorksheetFunction.CountIf(rng, "国語") '国語の個数をカウント countMath = WorksheetFunction.CountIf(rng, "数学") '数学の個数をカウント countSocial = WorksheetFunction.CountIf(rng, "社会") '社会の個数をカウント MsgBox "国語: " & countJapanese & vbCrLf & "数学: " & countMath & vbCrLf & "社会: " & countSocial 'メッセージボックスに表示 Set rng = Nothing End Sub

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

#2です。補足に関連して。 (1)国語のセル何セル、数学のセル何セル、社会のセル何セルを3セルに入れる関数で出すのは簡単で=COUNTIF(A1:B5,"国語")とい関数で出来るのでは。 (2)国語のセル+数学のセル+社会のセル(科目で重複して出現はそのまま各々+1と数える)    セル数 (3)国語のセル、数学のセル、社会のセルについて異なる科目は何種類か?2回目以降出現は数えない。 このうち、どのタイプの質問をしたのか? AND条件的な関数はあっても、OR条件的な関数は無いことが多い。各々の該当件数を+で足せば仕舞、とエクセルの設計者は考えたのではないかな。 それを嫌がったら、難しい関数やVBA利用だろう。 ーー (2)、(3)は意外に関数では難しい。VBAではやや簡単。 ーー (2)の質問と思ったが。 ユーザー関数なら、VBA関連だが、標準モジュールに下記を作っておく。 Function cf(rng As String, k1 As String, k2 As String, k3 As String) cnt = 0 For Each cl In Range(rng) If cl.Value = k1 Then cnt = cnt + 1 'MsgBox cl.Address End If If cl.Value = k2 Then cnt = cnt + 1 'MsgBox cl.Address End If If cl.Value = k3 Then cnt = cnt + 1 'MsgBox cl.Address End If Next cf = cnt End Function (もうすこし改良が出来る店があるかも。) そしてシートのセルに、関数の入れ方(例)データがA1:C6セル範囲内として)は  =cf("A1:C6","国語","社会","数学") のように入れる。 A1:C6セル あ い う 国語  え うう さ さし すせ そ 数学 た な 国語 社会 社会 たた 国語 の例では、結果は6(セル)。

  • kkkkkm
  • ベストアンサー率65% (1619/2458)
回答No.4

> やっぱマクロですかね。 その後、ごぞごぞしてたら以下の方法でできました。 =SUMPRODUCT((A1:A10={"国語","数学","社会"})*1) 後半を範囲指定した場合 =SUMPRODUCT((A1:A10=B1:D1)*1) B1:D1に空白があってA1:A10にも空白があるとそれも足してしまいました。

  • kkkkkm
  • ベストアンサー率65% (1619/2458)
回答No.3

> 範囲指定で、その後に("国語”,"数学","社会")みたいにできるといいのですが… 回答No.2さんが紹介しているサイトの配列数式を利用するか、強引に自作関数とか… =mCountIF(A1:A10,"国語","数学","社会") 標準モジュールに以下を記載して上記の式で Function mCountIF(ByRef mRng As Range, ParamArray FStr() As Variant) As Long Dim mStr As Variant Dim mCount As Long mCount = 0 For Each mStr In FStr mCount = mCount + WorksheetFunction.CountIf(mRng, mStr) Next mCountIF = mCount End Function ただ VBAを記載したファイル限定か 個人用マクロブックに記載して =PERSONAL.XLSB!mCountIF(A1:A7,"国語","数学","社会") とかで個人用マクロブックが存在するPC限定とかになりますが…

pusuta
質問者

お礼

回答ありがとうございました。やっぱマクロですかね。なんか簡単にできそうなのに、該当する関数がないのでちょっと意外だったんです。

Powered by GRATICA
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2
pusuta
質問者

お礼

すみません。補足の内容が間違ってたんですが変更できなかったのでこちらにしました。国語何個ということではなく、国語、数学、社会と入力されたセルの数の合計を1つの関数でできないかなということです!!

Powered by GRATICA
pusuta
質問者

補足

リンク先ありがとうございました。初めて聞く関数でした。私がやりたいのは、例えばA1:F10の範囲内にランダムに、国語、数学、社会とセルに入力されているのもをそれぞれ、国語何個というように出したいんです。リンク先のように1つ目の範囲、2つ目というものではないのですが、この関数も使えますかね??

  • kkkkkm
  • ベストアンサー率65% (1619/2458)
回答No.1

=SUMPRODUCT((A1:A10="国語")+(A1:A10="数学")+(A1:A10="社会")) とかでも計算できます。

pusuta
質問者

お礼

回答ありがとうございます。やっぱこんな感じでつなぐ方法しかないんですかね~範囲指定で、その後に("国語”,"数学","社会")みたいにできるといいのですが…

Powered by GRATICA

関連するQ&A

  • エクセルのカウントについての質問です。

    エクセルのカウントについての質問です。 例えば B1に入っている数式の結果の数値と一緒になる 数値をC10~C60のセルからカウントしたい場合 どの様な式を立てれば良いか教えて頂けますでしょうか? B1のセルには=10*3の"30"が入力してあり COUNTIF(C10:C60,"30")と入力すればカウントできるのですが COUNTIF(C10:C60,"B1")ではカウントできません ""の中にB1などセルを指定してカウントはできませんでしょうか? また セルをドラッグして””の中のセルを次のように B2、B3、B4...といったように変化をの数式の結果をカウント する方法はありますでしょうか? 宜しくお願いします。

  • Excelのカウントがうまくいきません。

    Excel初心者です。 添付画像のような例の場合のカウントがうまくいかず困っています。 Excelに詳しい方、どうかご教示いただけますようお願い致します。 カウントしたい条件は下記の通りです。 (1)A1~A5の範囲で数値の入っているセルをカウントする。  ⇒今回の例ではA1とA3とA4がカウントの対象。 (2)B1~B5の範囲で「みかん」「りんご」「柿」の  いずれかの単語が入力されているセルをカウントする。  ただし、A1~A5のセルが空白の場合のみ、  これらの単語が入力されているセルをカウントする。  ⇒今回の例ではB2とB5がカウントの対象。  尚且つ、ひとつのセルに複数の単語が入力されている場合は、  単語の数に関わらず、カウントを1とする。  ⇒今回の例ではB5がカウントの対象。 以上の条件を満たす合計をB7に求める数式を悩んでおり、 今回の例ならば、B7の合計は5となるはずなのですが、 なかなかうまくいきません。 どうぞ宜しくお願い致します。

  • エクセルである指定した範囲のカウント

    エクセルで通常カウントは、以下のように、B2:B5と範囲指定しますが、 COUNTIF(B2:B5,">55") ある一定のセルをカウントしようとしたのですが、うまくいきません・・・。 たとえば、E8,G8I8をカウントの対象としたいとき、書式はどのようにすればいいでしょうか? やりたいことは、上記のように、そろってない範囲のセルで、17以上はいくつか?など、ある数値以上になっているセルの数をカウントすることです。

  • EXCELでのカウント

    こんんちは!いつも使っている簡単な関数ならわかるのですが... 範囲→1列(A列やB列) 範囲内で指定の文字が入力されているセルの数をカウントしたい(返したい)んです。 例)B列に「2」「23」「50」「13」「12」と入力されているとしたら   「2」を入力しているセルをカウントしたかったら   「3」と出てくるように... COUNTIF関数だと「2」を指定したら「2」と入力したセルだけカウントされますよね。(例えば上記例だと「1」と帰ってくる。これを「2」を含んでいるセルの数をカウントしたいんです。 教えてください。 宜しくお願いいたします。

  • エクセルのセル内の数字をカウントしたい・・

    エクセルのカウントについて教えて下さい。 「5,6,7」や「10,11,15,20」などのように書かれたセルがあります。 カンマで区切られた数字の個数を自動的に数え別のセルにその結果を書き出したいのですが、 エクセルの数式だけでできますか? できればVBAは使いたくないと思います。 例:「5,6,7」なら"3" 、 「10,11,15,20」なら"4"と言う感じです。 よろしくお願いいたします。

  • エクセルのカウント

    エクセルを使ったカウントをしたいのですが、どなたか関数を使ったよい方法教えていただけないでしょうか。 値項目に連続して入力されているセルの個数を、カウント項目に出力したいのです。 ここで注意したいのが、出力する箇所は55の開始場所に出力したいことと、 値項目に入力されている値は、55か空白のみになります。 どうかよろしくお願いいたします。

  • エクセルである文字の並びの入力があるセルのカウント

    エクセルである文字の並びの指定された列にある何かが入力されたセル数のカウントについて =SUMIF(B4:I300,L51,I4:I300) 現在上の数式を使って指定セルの数値の合計は出せるのですが この数値の合計ではなく、数値が入力されているセルの数をカウントしたいのですが ググってもヒントが出てきません。 上記の数式のまま簡単んな追加で出来るのか? 全く別の数式になってしまうのでしょうか? OS7 エクセル2007です。 よろしくお願いします。

  • 2003EXCEL「○」の個数のカウント

    2003EXCELの「○」の個数のカウントについて質問したいのでよろしくお願いいたします。  例えば10個のセルの中で、○印が入っているセルがいくつあるかを  カウントしたいのですが可能ですか?  数値が入っていて、例えば3以上の数値が入っているセルのカウント  であれば設定方法が載っていたのですが、数値ではなく特定の文字の  場合はどうすれば良いのかが解りません。   よろしくお願いいたします。

  • エクセルでスペース入力セルをカウントしない方法

    counta関数で、セルに何らかの文字、数字が入力されているセルの個数をカウントできますが、スペースが入力されているセルもカウントされてしまいます。 スペース(複数回入力されている場合も)が入力されているセルをカウント対象外とする方法はありますか?

  • カウントの方法を教えて下さい。

    カウントの方法を教えて下さい。 Excel2003を使っています。A1~E30のセルに11~51、12~52、13~53・・・の数字がバラバラに入力されています。 この範囲の中から頭の数字が1、2、3、4、5が付く数をカウントしたいのですが、宜しくお願いします。

専門家に質問してみよう