• 公開日:

スプレッドシートで特定の文字数をカウントする方法

Google スプレッドシートではセルや範囲を指定して、特定の文字を簡単にカウントすることできます。

この記事では、スプレッドシートで特定の文字をカウントする方法を分かりやすく紹介します。

スプレッドシートで特定の文字をカウントする方法

Google スプレッドシートで特定の文字をカウントする場合、関数を使用するかGoogle Apps Script(GAS)でスクリプトを作成します。

以下より、スプレッドシートで特定の文字をカウントする方法を、様々な用途に分けて詳しく解説します。

検索機能を使用する

特定の文字を含むセルをカウントする場合、検索機能を使うことで簡易的に文字の数を表示することが出来ます。

Ctrl+Fを押す。

検索機能を呼び出すために、Ctrlキーを押しながらFキーを押します。

カウントしたい文字を入力

「シートを検索」の窓に、カウントしたい文字を入力します。

特定の文字を含むセル数が表示される

「あ」を条件としました。

特定の文字を含むセル数が表示されました。

LEN関数とSUBSTITUTE関数を使用する

セル内の特定文字をカウントする場合、LEN関数とSUBSTITUTE関数を併用します。

以下の記事にある「LEN関数とSUBSTITUTE関数を使用する」で、セル内の特定文字をカウントする方法を詳しく解説しています。

スプレッドシートのセル内で特定の文字をカウントする方法

GASを使用する

GASでスクリプトを作成して特定の文字をカウントする場合、メニューバーにある拡張機能からスクリプトを作成し、シート上にカスタムメニューを追加して使用します。

「Apps Script」を順に選択

「拡張機能」、②「Apps Script」を順に選択します。

「新しいプロジェクト」ボタンをクリック

「新しいプロジェクト」ボタンをクリックします。

名前を変更をクリック

「無題のプロジェクト」という名前になっているので、後に分かりやすいように名前を変更します。

名前を変更をクリックします。

名前を変更します

プロジェクトタイトルを入力し、②「名前を変更」ボタンをクリックします。

プロジェクトタイトルを「文字カウント」としております。

GASスクリプトをコピーして貼り付けます

下記のスクリプトをコピーして貼り付けます。

選択した範囲内にある特定の文字をカウントできるマクロをカスタムメニューとして追加し、それを使用できるスクリプトです。


// 特定の文字をカウントする関数
function countSpecificCharacterInRange(range, character) {
  var count = 0;
  // 2次元配列で範囲のデータを取得
  var data = range.getValues();
  
  // 範囲内の各セルをループ
  for (var i = 0; i < data.length; i++) {
    for (var j = 0; j < data[i].length; j++) {
      var cellValue = data[i][j];
      if (typeof cellValue === 'string') {
        // セル内の特定の文字をカウント
        for (var k = 0; k < cellValue.length; k++) {
          if (cellValue[k] === character) {
            count++;
          }
        }
      }
    }
  }
  return count;
}

// カスタムメニューを追加
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('カスタムメニュー')
      .addItem('文字カウント', 'countCharacter')
      .addToUi();
}

// メニューアイテムが選択された時に実行される関数
function countCharacter() {
  var ui = SpreadsheetApp.getUi();
  
  // ユーザーに範囲を選択させる
  var response = ui.prompt('範囲を入力してください(例: A1:B10)');
  var rangeNotation = response.getResponseText();
  
  if (rangeNotation) {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var range = sheet.getRange(rangeNotation);
    
    // ユーザーにカウントする文字を入力させる
    var characterResponse = ui.prompt('カウントする文字を入力してください');
    var character = characterResponse.getResponseText();
    
    if (character && character.length === 1) {
      var count = countSpecificCharacterInRange(range, character);
      ui.alert('文字 "' + character + '" の出現回数: ' + count);
    } else {
      ui.alert('無効な入力です。1文字を入力してください。');
    }
  } else {
    ui.alert('無効な範囲です。');
  }
}
「プロジェクトを保存」をクリック

「プロジェクトを保存」をクリックします。

F5を押す。

現在のシートに戻り、ページを更新させるためにF5キーを押します。

カスタムメニューをクリック

メニューバーに「カスタムメニュー」が追加表示されました。

カスタムメニューをクリックします。

文字カウントをクリック

作成したスクリプト「文字カウント」が表示されています。

文字カウントをクリックします。

セル範囲を入力します

「A2:C11」とセル範囲を入力し、②「OK」ボタンをクリックします。

カウントする文字を入力します

カウントする文字「え」を入力し、②「OK」ボタンをクリックします。

特定文字のカウント数が表示される

スクリプトが実行され、特定文字の出現回数が表示されました。

COUNTIF関数を使用する

特定の文字が入力されたセルをカウントする場合、COUNTIF関数を使用します。

この方法は、あくまでもセル数をカウントする方法となるので、特定の文字がセル内に1文字だけ入力されている場合にのみ有効となります。

以下の記事にて、COUNTIF関数を使用して特定の文字が入力されたセルをカウントする方法を詳しく解説しています。

スプレッドシートのCOUNTIF関数の使い方