はじめに
Google スプレッドシートを使っていると、データの形式を統一したい場面がよくあります。たとえば、以下のようなケースです。
- 名前の全角・半角を統一したい
- 日付を YYYY/MM/DD 形式に統一したい
- 空白の行を削除したい
こういった処理を手作業で行うのは面倒ですが、Google Apps Script(GAS)を使えば自動化できます。今回は、GASでスプレッドシートのデータを自動整形するスクリプトを紹介します。
スクリプトの概要
今回のスクリプトでは、以下の処理を実行します。
- 指定した範囲のデータを取得
- 名前の全角・半角を統一
- 日付を YYYY/MM/DD 形式に統一
- 空白の行を削除
- 整形したデータをスプレッドシートに書き戻す
スクリプトのコード
以下のコードを Google Apps Script のエディタに貼り付けて実行してください。
function formatSheetData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var formattedData = data
.map(row => row.map(cell => formatCell(cell))) // 各セルを整形
.filter(row => row.some(cell => cell !== "")); // 空白行を削除
sheet.getDataRange().clearContent(); // 既存のデータをクリア
sheet.getRange(1, 1, formattedData.length, formattedData[0].length).setValues(formattedData);
}
function formatCell(value) {
if (typeof value === "string") {
return toFullWidth(value.trim()); // 全角に統一(必要に応じて変更)
} else if (Object.prototype.toString.call(value) === "[object Date]") {
return Utilities.formatDate(value, Session.getScriptTimeZone(), "yyyy/MM/dd");
}
return value;
}
function toFullWidth(str) {
return str.replace(/[A-Za-z0-9]/g, s => String.fromCharCode(s.charCodeAt(0) + 0xFEE0));
}
スクリプトの説明
formatSheetData()
- スプレッドシートのデータを取得し、各セルを
formatCell()
で整形 - 空白行を削除し、整形したデータをシートに書き戻す
- スプレッドシートのデータを取得し、各セルを
formatCell(value)
- 文字列の場合は
toFullWidth()
を使って全角に統一 - 日付の場合は
yyyy/MM/dd
の形式に変換
- 文字列の場合は
toFullWidth(str)
- 半角のアルファベットや数字を全角に変換
使い方
- Google スプレッドシートを開く
- 拡張機能 → Apps Script を開く
- 上記コードを貼り付けて保存
formatSheetData()
を実行
これで、スプレッドシートのデータが自動で整形されます。
おわりに
GASを使うことで、スプレッドシートのデータ整形を簡単に自動化できます。
ぜひ活用して、作業の効率化を図ってみてください!
コメントを書く