エクセルでは、不要な行列は削除することができます。
また、一時的に不要になった行列は、非表示にすることができますし、必要に応じて再表示することも簡単にできます。
【非表示にする前】
【非表示にした後】 ※「クラス」フィールドの「退学」を非表示。
「NO」フィールドの連番は、非表示になった行「5」「7」「9」行目は、欠番になっています。
また、合計は、再計算されていません。順位は「1」「5」「7」位が欠番で見えていません。通常、非表示になっている行も計算対象のままなので、表示されているデータの計算結果とは合わなくなっています。
では、「NO」の連番、合計、順位の値が、非表示行を除外し、可視セルに対する内容に更新されるような関数を設定していきましょう。
目次
1.非表示行を除外して、連番をふり直す
非表示行を除外して、連番をふるには、「SUBTOTAL」関数を使います。
「SUBTOTAL」関数を使うと、表示されているデータだけの集計結果を求めることができます。
集計の方法は、合計以外にもセルの個数を数えたり、平均を求めたりと様々な集計方法が指定できます。
今回は、【B】列の名前のデータの個数を数えて、それらを集計していくので、「SUBTOTAL」関数に「COUNTA」関数を組み合わせて数式を入力していきます。
【非表示行を除外して計算する集計方法】
集計方法 | 関数 |
103 | AVERAGE (平均) |
102 | COUNT (数値データの個数を数える) |
103 | COUNTA (データの個数を数える) |
104 | MAX (最大値) |
105 | MIN (最小値) |
106 | PRODUCT (数値の積を求める) |
107 | STDEV.S (標準偏差の推定値を返す) |
108 | STDEV.P (標準偏差を返す) |
109 | SUM (合計) |
110 | VAR.S (分散の推定値(不変分散)を返す) |
111 | VAR.P (分散を返す) |
【操作】
①セル【A3】をクリックして、次の数式を入力してEnterキーで確定。
集計方法は、データの個数を数える「103」に設定します。
=SUBTOTAL(103,$B$3:B3)
※参照範囲の「$B$3:B3」は、セル【B3】を起点として、セル【B4】まで、【B5】まで・・・のセルの個数を数えるという意味になります。非表示行はカウントされません。
②セル【A3】の数式をオートフィルで10行目までコピー。
連番がふられます。
2.非表示行を除外した合計に更新する
非表示行を除外して、合計を再計算するには、「SUBTOTAL」関数を使います。
①セル【D12】をクリックして、次の数式を入力して、Enterキーで確定する。
集計方法は、合計の「109」に設定します。
=SUBTOTAL(109,D3:D10)
②セル【A12】に合計が求められました。
3.非表示行を除外したデータだけの順位を求める
非表示行を除外したデータ(点数)をみて順位を出すには、まず、表示されているデータ(点数)のみを「IF」関数と「SUBTOTAL」関数を使って取り出します。
この作業のために、【F】列に作業列を作成しておきましょう。
①セル【F3】をクリックして、次の数式を入力して、Enterキーで確定する。
=IF(SUBTOTAL(102,D3)=1,D3,”” )
※集計方法の「102」は、数値データの個数を数える関数です。表示されているデータの個数を数えるので、表示されていれば計算結果は「1」、非表示の場合は「0」となります。
よって、表示されていれば「1」と等しいので、セル【D3】の「点数」を【F】列に返す、非表示ならば「1」と等しくないので、空白を返すという意味になります。
②セル【D3】は表示されているので、セル【F3】には、セル【D3】の値「95」と表示されました。
③セル【F3】の数式をセル【F10】までオートフィルでコピーします。
セル【E3】にセル【F3】の計算結果に対しての順位を「RANK.EQ」関数で求めます。
④セル【E3】をクリックして、次の数式を入力して、Enterキーで確定。
=RANK.EQ(F3,$F$3:$F$10,0)
⑤セル【E3】の数式をセル【E10】までオートフィルでコピーします。
⑥「クラス」が退学の行を非表示にして、結果を確認します。
「NO」は連番に、「合計」は660→420に再計算、「順位」も再計算されていることが確認できます。
4.まとめ
エクセルの使い方 基礎から応用まで①~㉕ 無料オンライン講座へ↓↓