- Home » 
 
- エクセル練習問題:目次 » 
 
- データをカウントする
 
更新:2025/9/23;作成:2012/9/6
  
  
    - 問題1:受験者数と欠席者数を求めなさい。  問題1の解答
    
      
      
      
      
      
      
      
        
           | 
          B | 
          C | 
          D | 
          E | 
          F | 
        
        
          | 2 | 
          名前 | 
          性別 | 
          1回目のテスト | 
           | 
          受験者数 | 
        
        
          | 3 | 
          相沢一郎 | 
          男 | 
          82 | 
           | 
           | 
        
        
          | 4 | 
          井上浩二 | 
          男 | 
          50 | 
           | 
          欠席者数 | 
        
        
          | 5 | 
          上野有紀 | 
          女 | 
          欠席 | 
           | 
           | 
        
        
          | 6 | 
          内野武 | 
          男 | 
          97 | 
           | 
           | 
        
        
          | 7 | 
          上田祥子 | 
          女 | 
          欠席 | 
           | 
           | 
        
        
          | 8 | 
          江田早苗 | 
          女 | 
          60 | 
           | 
           | 
        
        
          | 9 | 
          榎本高貴 | 
          男 | 
          75 | 
           | 
           | 
        
        
          | 10 | 
          小田和樹 | 
          男 | 
          82 | 
           | 
           | 
        
      
    
 - 問題2:70以上を合格とします。合格者の数を求めなさい。  問題2の解答
 - 問題3:男の合格者数を求めなさい。  問題3の解答
 
 
  - データのどこに着目するかで、色々な数式が考えられます。
 
COUNT関数、COUNTIF関数を使う
- 受験者には得点(数値)が入力されていて、欠席者には「欠席」と文字列が入力されていると、判断しました。
 - 数値の数をカウントするにはCOUNT関数が使えます。
受験者数は =COUNT(D3:D10) で求めることができます。
  
- 構文:=COUNT(値1,[値2],・・・)
COUNT関数 に説明がありますので参照してください。
       
 - 欠席者数は「欠席」という文字の入力されているセル数を数えればよいので、COUNTIF関数が使えます。
欠席者数は =COUNTIF(D3:D10,"欠席") で求めることができます。
  
- 構文:=COUNTIF(範囲,検索条件)
COUNTIF関数 に説明がありますので参照してください。
       
 
COUNTA関数を使う
  - 受験者と欠席者とを合わせた数はCOUNTA関数で求めることができます。
  構文:構文:=COUNTA(値1,[値2],・・・)
  COUNTA関数 に説明がありますので参照してください。
   - 全員の数から欠席者の数を差し引いて受験者数を求める・・・といった考え方もできます。 
  受験者数 =COUNTA(D3:D10)-COUNTIF(D3:D10,"欠席") 
   -  全員の数から、受験者数を差し引いたものが欠席者となるので、
  欠席者は =COUNTA(D3:D10)-COUNT(D3:D10) として求めることもできます。
   
SUMPRODUCT関数を使う
  - COUNT関数、COUNTA関数と使い分けるのが面倒・・・といったら、SUMPRODUCT関数を使う手もあります。 
 - 受験者には得点=数値が入力されているので、ISNUMBER関数で数値のセルをTRUEで返し、SUMPRODUCT関数でTRUE*1=1として、合計を求めています。
  F3セル =SUMPRODUCT(ISNUMBER(D3:D10)*1) としました。
  なお、=SUMPRODUCT((D3:D10<>"欠席")*1) と「欠席」でないとして計算することもできます。
   - F5セル =SUMPRODUCT((D3:D10="欠席")*1) として、「欠席」のセル=TRUE=1 で計算しています。
  
 
配列関数を使う
  - 配列数式を利用することもできます。
  
 - Excel for Microsoft365,Excel2021以降のバージョンでは動的配列数式が利用できます。
  F3セルには =SUM((D3:D10<>"欠席")*1) 
  F5セルには =SUM((D3:D10="欠席")*1)
  と入力しています。
  Excel2019以前では[Ctrl]+[Shift]+[Enter]で入力して
  {=SUM((D3:D10<>"欠席")*1)} といった形式にする必要があります。
  
 
COUNTIF関数を使う
- 70点以上が合格なので、COUNTIF関数で求めることができます。
  構文:=COUNTIF(範囲,検索条件)
  COUNTIF関数 に説明がありますので参照してください。
    
  
   - F3セルに =COUNTIF(D3:D10,">=70") と入力します。
  ">=70" とダブルクォーテーションでくくるのがポイントです。
  
   - 条件の数値がセルの入力されている場合は & を使って ">="&F6 とします。
  
 
配列関数を使う
  - 配列数式を利用することもできます。
  
  
 - Excel for Microsoft365,Excel2021以降のバージョンでは動的配列数式が利用できます。
  「欠席」が70以上と認識されるため、「70以上のセル」 And「欠席でないセル」の数を計算します。
  F3セルには =SUM((D3:D10>=70)*(D3:D10<>"欠席"))
  と入力しています。
  Excel2019以前では[Ctrl]+[Shift]+[Enter]で入力する必要があります。
  
 
FILTER関数を使う(Excel2021以降)
- FILTER関数を使う(Excel2021以降)を使って求めることもできます。
  詳細な使い方は FILTER関数でデータを抽出する をご覧ください。 - F3セルに =COUNT(FILTER(D3:D10,D3:D10>=70)) と入力します。 
  
 - 【数式の解説】
  =FILTER(D3:D10,D3:D10>=70) では下図のように70以上の数値と「欠席」が抽出されます。
  抽出されてデータから数値のみをカウントするので、COUNT関数で計算します。
  
 
COUNTIFS関数を使って複数条件でカウントする
- 複数条件のカウントはCOUNTIFS関数で求めることができます。(Excel2007以降で使用できます)
  構文:COUNTIFS(条件範囲1,検索条件1,[条件範囲2,検索条件2]・・・)
  COUNTIFS関数 に説明がありますので参照してください。
        
   - F3セルに =COUNTIFS(C3:C10,"男",D3:D10,">=70") と入力します。
  
 
配列関数を使う
  - 配列数式を利用することもできます。
  
  
  
 - Excel for Microsoft365,Excel2021以降のバージョンでは動的配列数式が利用できます。
  F3セルには =SUM((D3:D10>=70)*(C3:C10="男"))
  と入力しています。
  Excel2019以前では[Ctrl]+[Shift]+[Enter]で入力する必要があります。
  
 
FILTER関数を使って求める 
  - FILTER関数での抽出条件は (C3:C10="男")*(D3:D10>=70)と論理式で書きます。
  =COUNT(FILTER(D3:D10,(C3:C10="男")*(D3:D10>=70))) 
  といった式でも求めることができます。 
  
 
スポンサードリンク
Home|エクセル練習問題:目次|データをカウントする
PageViewCounter

Since2006/2/27