- 公開日:
スプレッドシートで特定の文字数をカウントする方法
Google スプレッドシートではセルや範囲を指定して、特定の文字を簡単にカウントすることできます。
この記事では、スプレッドシートで特定の文字をカウントする方法を分かりやすく紹介します。
スプレッドシートで特定の文字をカウントする方法
Google スプレッドシートで特定の文字をカウントする場合、関数を使用するかGoogle Apps Script(GAS)でスクリプトを作成します。
以下より、スプレッドシートで特定の文字をカウントする方法を、様々な用途に分けて詳しく解説します。
検索機能を使用する
特定の文字を含むセルをカウントする場合、検索機能を使うことで簡易的に文字の数を表示することが出来ます。
検索機能を呼び出すために、Ctrlキーを押しながらFキーを押します。
「シートを検索」の窓に、カウントしたい文字を入力します。
「あ」を条件としました。
特定の文字を含むセル数が表示されました。
LEN関数とSUBSTITUTE関数を使用する
セル内の特定文字をカウントする場合、LEN関数とSUBSTITUTE関数を併用します。
以下の記事にある「LEN関数とSUBSTITUTE関数を使用する」で、セル内の特定文字をカウントする方法を詳しく解説しています。
GASを使用する
GASでスクリプトを作成して特定の文字をカウントする場合、メニューバーにある拡張機能からスクリプトを作成し、シート上にカスタムメニューを追加して使用します。
①「拡張機能」、②「Apps Script」を順に選択します。
「新しいプロジェクト」ボタンをクリックします。
「無題のプロジェクト」という名前になっているので、後に分かりやすいように名前を変更します。
名前を変更をクリックします。
①プロジェクトタイトルを入力し、②「名前を変更」ボタンをクリックします。
プロジェクトタイトルを「文字カウント」としております。
下記のスクリプトをコピーして貼り付けます。
選択した範囲内にある特定の文字をカウントできるマクロをカスタムメニューとして追加し、それを使用できるスクリプトです。
// 特定の文字をカウントする関数
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キーを押します。
メニューバーに「カスタムメニュー」が追加表示されました。
カスタムメニューをクリックします。
作成したスクリプト「文字カウント」が表示されています。
文字カウントをクリックします。
①「A2:C11」とセル範囲を入力し、②「OK」ボタンをクリックします。
①カウントする文字「え」を入力し、②「OK」ボタンをクリックします。
スクリプトが実行され、特定文字の出現回数が表示されました。
COUNTIF関数を使用する
特定の文字が入力されたセルをカウントする場合、COUNTIF関数を使用します。
この方法は、あくまでもセル数をカウントする方法となるので、特定の文字がセル内に1文字だけ入力されている場合にのみ有効となります。
以下の記事にて、COUNTIF関数を使用して特定の文字が入力されたセルをカウントする方法を詳しく解説しています。