重複を除いた件数を集計する
100-80 | 数式フィールド
完成イメージ
研修参加履歴アプリ
研修の参加履歴を管理するアプリ
重複する参加者を除いた参加人数を集計する
以下のデータでは、参加履歴は5件ありますが、参加者は「山田」「鈴木」「田中」の3人です。
今回のドリルでは、数式フィールドと集計行を使い、重複を除いた参加人数(3人)を集計します。

注意
この方法は、現在のページに表示されているレコードのみを対象に集計します。
krewSheetには1ページに表示できるレコード数は最大500件までという制限があります。
⇒そのため、501件以上のレコードが存在する場合は、すべてのレコードを対象とした集計はできません。
1.krewSheetの一覧を設定する
krewSheetのデザイン画面で必要なフィールド(受講日・社員名)を一覧に配置する

2.数式フィールドを設定する
1. 数式フィールドを追加する

2. 追加した数式フィールドを選択した状態で、「ホーム」タブにある「列設定」を開く
3. その後、数式を編集するためのボタンをクリックする

4. 数式に次の内容を設定する
1/COUNTIF(社員名_Array,社員名)

▼ポイント1
今回は、数式に「1/COUNTIF(社員名_Array,社員名)」と設定しました。
COUNTIF関数は、1つ目の引数に指定した範囲(社員名列)の中に、2つ目の引数(社員名)と同じ値が何件存在するかを求める関数です。

今回は、同じ社員名のレコードが何件登録されているかを取得し、「1÷同じ社員のレコード件数」で計算します。
これにより、集計行にてSUM関数で合計を計算する際に、同じ社員名が複数登録されていても1人としてカウントできるようになります。
例えば、「山田」が3件登録されている場合、各レコードの計算結果は「1/3」(=0.333333...)となります。
これらを集計行で合計すると「1」になるため、山田さんを1人として集計することができます。

▼ポイント2
数式設定時に「範囲指定用列名を表示」にチェックをいれると、列名の末尾に「_Array」が付いたフィールド名が表示されます。
COUNTIF関数のように列全体を対象として計算を行う場合は、この範囲指定用列名を使用します。
今回は社員名列全体を対象に検索することで、同じ社員名のレコードが何件登録されているかを取得しています。

5. 数式列を選択して、リボンのメニュー内の「ホーム」タブから「列ヘッダ」を選択し、カスタム列名に次の内容を設定する。
カスタム列名:参加人数集計

3.集計行を設定する
1. リボンのメニュー内の「データ」タブを開き、「集計行を表示」にチェックをいれる

2. 集計行の設定を開き、「参加者人数集計」のセルを選択のうえ、関数に「Sum」を選択する

3. 集計行の「書式」をクリックし、カテゴリから「数値」を選択し、小数点以下の桁数を「0」にする

4. アプリを更新して確認する
参加者人数を集計することができました。
